J'utilise la classe BayesianClassifier pour classer les spams. Le problème est que les mots composés ne sont pas reconnus.classifier4J problème
Par exemple si j'ajoute led zeppelin comme une correspondance, une phrase qui le contient ne sera pas reconnue comme une correspondance même si elle devrait.
Pour ajouter un match que je utilise addMatch() de SimpleWordsDataSource
Et pour demander un match que je utilise isMatch() de BayesianClassifier
Toutes les idées sur la façon de résoudre ce problème?
Merci d'avance!
Ok, merci pour la perspicacité. Je joins plus de code source.
SimpleWordsDataSource wds = new SimpleWordsDataSource();
BayesianClassifier classifier = new BayesianClassifier(wds);
wds.addMatch("queen");
wds.addMatch("led zeppelin");
wds.addMatch("the beatles");
classifier.isMatch("i listen to queen");// it is recognized as a match
classifier.isMatch("i listen to led zeppelin");// it is NOT recognized as a match
classifier.isMatch("i listen to the beatles");// it is NOT recognized as a match
Maintenant, je suis en utilisant la méthode teachMatch de BayesianClassifier et j'ai des résultats différents. Une phrase contenant led zeppelin il est classé comme un match, ce qui est ok. Mais une phrase comprenant conduit est également classée comme une correspondance, ce qui est faux.
Voici le code correspondant:
BayesianClassifier classifier = new BayesianClassifier();
classifier.teachMatch("led zeppelin");
classifier.isMatch("I listen to led zeppelin");//true
classifier.isMatch("I listen to led");//true
Non sans code. Les informations que vous avez fournies ne valent rien. – duffymo