在对文本进行分类时自动将类别相互链接

时间:2011-08-18 08:32:54

标签: algorithm text categorization n-gram

我一直致力于一个项目,对大量短文本进行数据挖掘,并根据预先存在的大类别名称对这些短文本进行分类。为此,我必须弄清楚如何首先从数据创建一个好的文本语料库,以便为分类提供参考文档,然后将分类的质量提高到可接受的水平。这部分我已经完成了(幸运的是,对文本进行分类是很多人已经做过大量研究的事情)。

现在我的下一个问题是,我正试图找出一种通过计算方式将各种类别相互联系起来的好方法。也就是说,弄清楚如何识别“汽车”和“雪佛兰”在某种程度上是相关的。到目前为止,我已经尝试利用Cavnar和Trenkle所描述的N-Gram分类方法来比较我为每个类别创建的各种参考文档。不幸的是,似乎我能够摆脱这种方法的最佳方法是大约50-55%的类别之间的正确关系,这些是最好的关系,总体来说它大约是30-35%,这是非常低的。

我也尝试了其他几种方法,但我无法获得高于40%的相关链接(不相关关系的一个例子是与“卡车”强烈相关的类别“卡车”类别“化妆”或“尿布”类别,而与“雪佛兰”相关的弱(或根本没有)。

现在,我已经尝试寻找更好的方法来做到这一点,但它似乎我找不到任何(但我知道其他人做得比我好)。有人对这个有经验么?关于创建类别之间关系的可用方法的任何提示?现在我尝试的方法要么根本没有提供足够的关系,要么包含太高比例的垃圾关系。

1 个答案:

答案 0 :(得分:0)

显然,进行匹配的最佳方式在很大程度上取决于您的分类,“参考文档”的性质以及您希望创建的预期关系。

但是,根据提供的信息,我建议如下:

  1. 首先根据参考文档为每个类别构建基于单词(而非基于字母)的unigram或bigram模型。如果每个类别中只有少数几个(似乎您可能只有一个),您可以使用半监督方法,并为每个类别提供自动分类的文档。构建模型的相对简单的工具可能是CMU SLM toolkit
  2. 计算模型中每个术语或短语的mutual-information(infogain),与其他类别相关。如果您的类别相似,则可能需要仅使用相邻类别来获得有意义的结果。这一步将为分数提供更好的分数。
  3. 根据top-infogain术语或短语将类别相互关联。这可以通过使用类别模型之间的欧几里德或余弦距离,或通过使用更精细的技术(如基于图形的算法或分层聚类)来完成。