Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带复合词的量词4j_Java_Bayesian - Fatal编程技术网

Java 带复合词的量词4j

Java 带复合词的量词4j,java,bayesian,Java,Bayesian,我正在使用BayesianClassifier类对垃圾邮件进行分类。问题是复合词没有被识别 例如,如果我添加led齐柏林飞艇作为匹配,包含它的句子将不会被识别为匹配,即使它应该被识别 为了添加匹配,我使用SimpleWordsDataSource的addMatch() 对于请求匹配,我使用BayesianClassifier的isMatch() 有没有办法解决这个问题 好的,谢谢你的洞察力。我正在附加更多的源代码 SimpleWordsDataSource wds = new SimpleWo

我正在使用BayesianClassifier类对垃圾邮件进行分类。问题是复合词没有被识别

例如,如果我添加led齐柏林飞艇作为匹配,包含它的句子将不会被识别为匹配,即使它应该被识别

为了添加匹配,我使用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

现在我使用贝叶斯分类法的teachMatch方法,得到了不同的结果。 包含led齐柏林飞艇的句子被归类为匹配,这是正常的。但是一个包含led的句子也被归类为匹配,这是错误的

以下是相关代码:

BayesianClassifier classifier = new BayesianClassifier();
classifier.teachMatch("led zeppelin");
classifier.isMatch("I listen to led zeppelin");//true
classifier.isMatch("I listen to led");//true
(我写了分类器4J)

你需要用更多的数据来训练它

贝叶斯分类器的工作原理是创建什么是匹配,什么不是匹配的统计模型


如果你给它足够的数据,它会知道“led和齐柏林飞艇”是匹配的,但是“led”本身并不是没有代码的。你提供的信息毫无价值。