我希望根据文本中出现的关键字进行文本分类,因为我没有使用朴素贝叶斯进行文本分类的示例数据。
示例:
我的文件中有一些单词“家庭,母亲,父亲,孩子......”,文件的类别是家庭。或者“足球,网球,得分...”这个类别是运动
这种情况下最好的算法是什么?。这个问题有没有api java?
答案 0 :(得分:2)
您拥有功能标签,即功能上的标签而非实例。有一些方法可以利用这些方法,但通常假设除了特征标签之外还有一个实例标签(即文档上的标签)。这种范式被称为双重监督。
无论如何,我知道至少有两种方法可以单独学习标记功能。第一个是Generalized Expectation Criteria,它惩罚模型参数以偏离先验信念(例如,“moether”应该通常与“family”相关联)。这种方法的缺点是有点复杂,但在Mallet工具包中有一个包装精良的开源Java实现的优点(具体见here)。
第二种选择基本上是使用Naive Bayes并对已知的单词/类关联给出大的先验 - 例如,P(“family”|“mother”)= .8,或者其他。所有未标记的单词将被分配一些先前的,可能反映的类分布。然后,您将根据类的流行程度和标记的术语信息有效地做出决策。结算proposed a model like this recently,并提供了一个网络工具。
答案 1 :(得分:1)
您可能需要辅助数据集。您不能依赖您的数据集来传达" dad"和父亲"和丈夫"有类似的含义。
您可以尝试使用我的同时检测近似同义词,但这不是很可靠。
可能wordnet等是消除歧义的好地方。
答案 2 :(得分:0)
您可以下载freebase主题集:http://wiki.freebase.com/wiki/Topic_API。