0

我已经应用 Doc2vec 将文档转换为向量。之后,我在聚类中使用了向量,并找出了与每个集群的质心最近/最相似的 5 个文档。现在我需要找到这些文档中最主要或最重要的术语,以便弄清楚每个集群的特征。我的问题是有什么方法可以找出 Doc2vec 中文档中最主要或最相似的术语/单词。我正在为 Doc2vec 实现使用 python 的 gensim 包

4

2 回答 2

5

@TrnKh 的回答很好,但是使用Doc2Vec.

一些dm=1gensim Doc2Vec 训练模式——默认的 PV-DM(dm=0, dbow_words=1近相关的词向量,反之亦然。

因此,您可以获取单个文档的向量,或您合成的平均/质心向量,并将其提供给模型以查找most_similar()单词。(要清楚这是一个原始向量,而不是向量键列表,您应该使用most_similar()指定显式positive示例列表的形式。)

例如:

docvec = d2v_model.docvecs['doc77145']  # assuming such a doc-tag exists
similar_words = d2v_model.most_similar(positive=[docvec])
print(similar_words)
于 2017-09-05T17:41:55.850 回答
1

要找出集群中最主要的词,您可以使用这两种经典方法中的任何一种。我个人发现第二个非常有效且有效。

  • 潜在 Drichlet 分配 (LDA):一种主题建模算法,可以在给定文档集合的情况下为您提供一组主题。您可以将集群中的一组相似文档视为一个文档,并应用 LDA 生成主题并查看跨文档的主题分布。

  • TF-IDF:TF-IDF 计算一个词对给定文档集合的文档的重要性。因此,要找到最重要的关键字/ngram,您可以为文档中出现的每个单词计算 TF-IDF。TF-IDF 最高的词就是你的关键词。所以:

    • 根据包含该关键字的文档数量计算文档中出现的每个单词的 IDF
    • 连接相似文档的文本(我称之为超级文档),然后计算该超级文档中出现的每个单词的 TF
    • 计算每个单词的 TF*IDF...然后 TA DAAA...您的关键字与每个集群相关联。

    请查看此处的第 5.1 节,了解有关使用TF-IDF的更多详细信息。

于 2017-09-05T16:14:15.777 回答