文档聚类的第一步的选项

时间:2014-02-11 12:29:19

标签: machine-learning nlp data-mining text-mining

我检查了几个文档聚类算法,例如LSA,pLSA,LDA等。似乎它们都需要将要聚类的文档表示为文档字矩阵,其中行代表文档,列代表出现在文件中的文字。矩阵通常非常稀疏。

我想知道,除了使用文档字矩阵之外,还有其他任何选项来表示文档吗?因为我相信我们表达问题的方式会对我们解决问题的方式产生重大影响。

3 个答案:

答案 0 :(得分:3)

正如@ffriend指出的那样,你无法真正避免使用术语 - 文档矩阵(TDM)范例。聚类方法对向量空间中的点进行操作,这正是TDM编码的内容。但是,在该概念框架内,您可以采取许多措施来提高TDM的质量:

  • 功能选择和重新加权尝试删除或减轻不提供有用信息的特征(单词)(在所选算法没有这些功能的情况下表现得更好或更好,或者如果它们的计数减少) 。您可能想要阅读有关互信息(及其多种变体)和TF-IDF的更多信息。
  • 降维是指使用较少的列在TDM中尽可能准确地编码信息。奇异值分解(LSA的基础)和非负的张量因子分解在NLP社区中很流行。理想的副作用是TDM变得稀疏得多。
  • 特征工程尝试构建一个TDM,其中列的选择受语言知识的驱动。例如,您可能希望使用双字母而不是单词,或仅使用名词(需要词性标注器),或仅使用名词及其相关的形容词修饰符(例如大猫,需要依赖性解析器)。这是一个非常经验的工作,涉及大量的实验,但往往会产生更好的结果。
  • 分布假设使得如果可能获得表示文档中每个单词含义的向量。已经开始尝试从其包含的单词(组合)的表示中构建整个文档的表示。这是我自己post describing the idea的无耻链接。
  • 关于形式和逻辑语义的大量工作我并不熟悉。可以将文档编码为一组谓词而不是一组单词,即TDM的列可以是谓词。在该框架中,您可以进行推理和组合,但词汇语义(单个词的含义)很难处理。

对于非常详细的概述,我推荐Turney和Pantel的“从频率到意义:语义的向量空间模型”。

答案 1 :(得分:1)

您的问题是您希望文档群集,而不是术语群集或维度减少。因此,我建议您避开LSA系列方法,因为它们是预处理步骤。

定义基于特征的文档表示(可以是或包括术语计数但不需要),然后应用标准的聚类方法。我建议从k-means开始,因为它非常简单,并且有很多很多实现。

答案 2 :(得分:1)

好的,这是一个非常普遍的问题,很多答案都是可能的,没有一个是肯定的 因为它是一个正在进行的研究领域。到目前为止,我所读到的答案主要涉及所谓的“向量空间模型”,而你的问题被称为提出这种“统计”方法的方式。然而,如果你想避免操纵明确的术语 - 文档矩阵,你可能想要仔细研究贝叶斯范式,它依赖于贝叶斯范式。 相同的分布假设,但利用不同的理论框架:你不操纵任何更远的原始距离,而是概率分布,并且,最重要的是,你可以根据它们进行推理。

你提到过LDA,我猜你的意思是Latent Dirichlet Allocation,这是最着名的贝叶斯模型进行文档聚类。它是矢量空间模型的另一种范式,也是一个获胜的范例:它已被证明可以给出非常好的结果,这证明了它目前的成功。当然,人们可以争辩说你仍然通过多项参数使用各种术语 - 文档矩阵,但它显然不是最重要的方面,贝叶斯研究人员很少(如果有的话)使用这个术语。

由于它的成功,有许多软件在网上实现LDA。这是一个,但还有很多其他: http://jgibblda.sourceforge.net/