我已经应用Doc2vec将文档转换为向量。之后,我在聚类中使用了向量,并找出了与每个聚类的质心相近的5个最近/最相似的文档。现在我需要找到这些文档中最主要或最重要的术语,以便我可以找出每个集群的特征。 我的问题是有没有办法找出Doc2vec中文档中最主要或类似的术语/单词。我正在使用python的gensim包用于Doc2vec实现
答案 0 :(得分:3)
@ TrnKh' answer很好,但使用Doc2Vec
时可以使用其他选项。
一些gensim Doc2Vec训练模式 - 默认PV-DM(dm=1
)或PV-DBOW加上单词训练(dm=0, dbow_words=1
)训练doc-vectors和word-vectors到同一训练模式坐标空间,在某种程度上,这意味着doc-vectors接近相关的单词向量,反之亦然。
因此,您可以获取单个文档的向量,或者您已合成的平均/质心向量,并将其提供给模型以查找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)
答案 1 :(得分:1)
要找出群集中最主要的词,您可以使用这两种经典方法中的任何一种。我个人发现第二个非常有效和有效。
Latent Drichlet Allocation(LDA):一种主题建模算法,它将在给定文档集合的情况下为您提供一组主题。您可以将群集中的类似文档集视为一个文档,并应用LDA生成主题并查看跨文档的主题分布。
TF-IDF:TF-IDF计算给定文档集合的单词对文档的重要性。因此,要查找最重要的关键字/ ngram,您可以为文档中显示的每个单词计算TF-IDF。那么TF-IDF最高的词就是你的关键词。所以:
请查看第5.1节,了解有关使用TF-IDF的详细信息。