BayesianClassifierクラスを使用してスパムを分類しています。問題は、複合語が認識されないことです。
たとえば、led zeppelinを一致として追加した場合、それを含む文は一致として認識されますが、一致として認識されません。
一致を追加するために、SimpleWordsDataSource の addMatch() を使用しています
一致を求めるために、BayesianClassifierのisMatch()を使用しています
これを修正する方法についてのアイデアはありますか?
わかりました、洞察に感謝します。さらにソースコードを添付します。
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
今、私は BayesianClassifier の teacherMatch メソッドを使用していますが、異なる結果が得られました。led zeppelinを含む文は一致として分類されますが、これは問題ありません。しかし、 led itを含む文も一致として分類されますが、これは間違っています。
関連するコードは次のとおりです。
BayesianClassifier classifier = new BayesianClassifier();
classifier.teachMatch("led zeppelin");
classifier.isMatch("I listen to led zeppelin");//true
classifier.isMatch("I listen to led");//true