首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复合词classifier4J

复合词classifier4J
EN

Stack Overflow用户
提问于 2010-07-18 00:16:04
回答 1查看 1.8K关注 0票数 2

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

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

为了添加匹配,我使用了addMatch()的SimpleWordsDataSource

对于请求匹配,我使用的是BayesianClassifier的BayesianClassifier()

有什么办法解决这个问题吗?

好的,谢谢你的见解。我要附加更多的源代码。

代码语言:javascript
复制
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方法,得到了不同的结果。包含“齐柏林飞艇”的句子被归类为“匹配”,这是可以的。但一个句子,包括铅,它也被归类为匹配,这是错误的。

以下是相关代码:

代码语言:javascript
复制
BayesianClassifier classifier = new BayesianClassifier();
classifier.teachMatch("led zeppelin");
classifier.isMatch("I listen to led zeppelin");//true
classifier.isMatch("I listen to led");//true
EN

回答 1

Stack Overflow用户

发布于 2010-10-12 05:21:27

(我写了classifier4j)

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

贝叶斯分类器的工作原理是创建统计模型,将哪些被认为匹配,哪些不匹配。

如果你给它足够的数据,它会发现“铅和齐柏林飞艇”是匹配的,但“铅”本身并不是

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3273782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档