【问题标题】:human-interpretable, meaningful clusters using doc2vec使用 doc2vec 的人类可解释的、有意义的集群
【发布时间】:2018-09-23 12:29:36
【问题描述】:

我正在使用 doc2vec 对一组教育文档进行聚类。

作为人类,我认为这些属于以下类别:

  • 电脑相关
  • 语言相关
  • 合作
  • 艺术

等等

我想知道是否有办法将 doc2vec 聚类“引导”成一组人类可解释的聚类。

我一直在尝试的一个策略是过滤掉所有“无意义”的单词,只训练 doc2vec 看起来有意义的单词。但是,当然,这似乎可能会破坏训练。

我刚刚想到了一些可能有用的事情:

  • 对整个文档进行训练(不要过滤掉单词)以创建 doc2vec 空间

  • 从每个文档中过滤掉无意义的词(“帮助”、“学生”等是在这个空间中意义不大的词)

  • 将过滤后的文档投射到 doc2vec 空间中

  • 然后使用 k-means 等进行处理

如果有任何建设性的建议或后续步骤,我将不胜感激。

最好的

【问题讨论】:

    标签: text cluster-analysis word2vec text-classification doc2vec


    【解决方案1】:

    你的计划很好;你应该尝试它来评估结果。集群可能不会紧密地映射到您预先设想的分组,但通过查看每个集群的示例文档,您可能能够形成自己的粗略概念,即用人工设计的描述性术语集群“是”什么。

    一开始不要尝试过多的猜测预处理(如消除单词)。在您使用最简单的方法作为基准后,尝试这些变化——这样您就可以评估(即使只是通过临时观察)它们是否按预期提供帮助。 (例如,如果像 'student' 这样的词确实平等地出现在所有文档中,它不会对 Doc2Vec 最终文档坐标产生太大影响......所以你不必自己做出判断,它只会被自动淡化。)

    我假设 Doc2Vec 是指“段落向量”算法,由 Python gensim 中的 Doc2Vec 类实现。一些 PV-Doc2Vec 模式,包括默认的 PV-DM (dm=1) 和更简单的 PV-DBOW,如果您还启用了并发词训练 (dm=0, dbow_words=1),将词向量训练到与文档向量相同的空间.因此,与集群中的文档向量或集群的质心最接近的词向量可能可用作集群的可解释描述。

    (在词向量空间中,也有研究试图通过以某种方式限制训练来使词向量的各个维度更易于解释,例如要求向量仅具有非负维度的备用。参见例如this NNSE work 和其他类似的论文。大概这也适用于 doc-vectors,但我不知道任何论文或图书馆可以做到这一点。)

    您还可以应用其他主题建模算法(例如 LDA)来计算离散的“主题”,这些“主题”通常可以很好地解释,并报告每个文档中最强的主题。 (您可以在完整的文档主题权重上进行聚类,或者可能只是天真地将每个文档分配给其最强的主题,作为一种简单的聚类。)

    【讨论】:

    • 非常感谢,虽然我对它们有点熟悉,但我不太清楚如何做所有这些事情。给你发了私信。
    猜你喜欢
    • 2018-02-05
    • 2014-11-04
    • 2015-03-30
    • 2021-10-14
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    相关资源
    最近更新 更多