2

我想根据文本中出现的关键字进行文本分类,因为我没有样本数据来使用朴素贝叶斯进行文本分类。

例子:

我的文档有一些单词,例如“家庭,母亲,父亲,孩子……”,文档的类别是家庭。或者“足球,网球,得分……”,类别是运动

在这种情况下,最好的算法是什么?。这个问题有没有 api java?

4

3 回答 3

2

您拥有的是特征标签,即特征上的标签而不是实例。有几种方法可以利用这些方法,但通常假设除了特征标签之外还有实例标签(即文档上的标签)。这种范式被称为双重监督

无论如何,我知道至少有两种方法可以单独从标记的特征中学习。第一个是广义期望标准,它惩罚模型参数偏离先验信念(例如,“moether”通常应该与“family”相关联)。此方法的缺点是有些复杂,但优点是在Mallet工具包中具有良好打包的开源 Java 实现(具体请参见此处)。

第二种选择基本上是使用朴素贝叶斯,并为已知的单词/类关联提供大量先验——例如,P("family"|"mother") = .8,或其他。所有未标记的单词都将被分配一些先验,大概反映了类分布。然后,您将有效地仅根据类的普遍性和标记的术语信息做出决策。Settles最近提出了一个这样的模型,并且有一个可用的网络工具。

于 2012-10-11T13:42:35.153 回答
1

为此,您可能需要一个辅助数据集。您不能依靠您的数据集来传达“爸爸”、“父亲”和“丈夫”具有相似含义的信息。

你可以尝试做我的共现来检测近义词,但这不是很可靠。

可能 wordnet 等是消除这些词歧义的好地方。

于 2012-10-11T16:38:28.403 回答
0

您可以下载 freebase 主题集合:http ://wiki.freebase.com/wiki/Topic_API 。

于 2012-10-11T14:12:14.243 回答