machine-learning - 文档聚类第一步的选项

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

我检查了几种文档聚类算法,例如LSA、pLSA、LDA等,似乎它们都需要将要聚类的文档表示为文档-词矩阵,其中行代表文档,列代表文档中出现的单词。而且矩阵往往非常稀疏。

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

最佳答案

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

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

要获得真正详细的概述,我推荐 Turney 和 Pantel 的“从频率到含义:语义的向量空间模型”。

关于machine-learning - 文档聚类第一步的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21701884/

相关文章:

python - roc_auc_score() 和 auc() 的结果不同

python - 复制命令 fasttext 查询并保存 FastText 向量

c# - 通过 DMX 从服务器获取数据挖掘模型名称

machine-learning - 你如何实现可变长度的递归神经网络?

python - 如何正确删除 Scikit-Learn 的 DPGMM 的冗余组件?

machine-learning - Cloud ML Engine 中部署的重新训练的 inception_v3 模型始终输出相同的预测

python - spacy en_core_web_lg 缺少停用词

nlp - CJK 语言发音 API

R:使用 SMOTE 包 "invalid ' 标签时出现问题'"

algorithm - 如何从非实验数据(数据挖掘?)