Я использую класс BayesianClassifier для классификации спама.Проблема в том, что составные слова не распознаются.
Например, если я добавлю led zeppelin в качестве совпадения, предложение, содержащее его, не будет распознано как совпадение, даже если оноmust.
Для добавления совпадения я использую addMatch () из SimpleWordsDataSource
И для запроса совпадения я использую isMatch () из BayesianClassifier
Есть идеи, как это исправить?
Заранее спасибо!
ОКСпасибо за понимание.Я прилагаю больше исходного кода.
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
Теперь я использую метод teachMatch в BayesianClassifier и у меня другие результаты.Предложение, содержащее led zeppelin , классифицируется как совпадение, что в порядке.Но предложение, включающее led , также классифицируется как совпадение, которое является неправильным.
Вот соответствующий код:
BayesianClassifier classifier = new BayesianClassifier();
classifier.teachMatch("led zeppelin");
classifier.isMatch("I listen to led zeppelin");//true
classifier.isMatch("I listen to led");//true