проблема classifier4J - PullRequest
       0

проблема classifier4J

2 голосов
/ 18 июля 2010

Я использую класс 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

1 Ответ

4 голосов
/ 12 октября 2010

(я написал classifier4j)

Вам нужно обучить его большему количеству данных.

Байесовские классификаторы работают путем создания статистических моделей того, что считается совпадением, а что нет.

Если вы дадите ему достаточно данных, он узнает, что «led и zeppelin» - это совпадение, но «led» само по себе не является

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...