Python 如何在doc2vec中查找文档中最相似的术语/单词?

Python 如何在doc2vec中查找文档中最相似的术语/单词?,python,cluster-analysis,gensim,word2vec,doc2vec,Python,Cluster Analysis,Gensim,Word2vec,Doc2vec,我已经应用Doc2vec将文档转换为向量。之后,我在聚类中使用向量,并计算出每个聚类的质心最近/最相似的5个文档。现在,我需要找到这些文档中最主要或最重要的术语,以便我能够找出每个集群的特征。 我的问题是,有没有办法找出Doc2vec文档中最主要或最简单的术语/单词。我正在使用python的gensim包进行Doc2vec实现,要找出集群中最主要的词,您可以使用这两种经典方法中的任何一种。我个人认为第二种方法在这方面非常有效 潜在Drichlet分配(LDA):一种主题建模算法,在给定文档集合

我已经应用Doc2vec将文档转换为向量。之后,我在聚类中使用向量,并计算出每个聚类的质心最近/最相似的5个文档。现在,我需要找到这些文档中最主要或最重要的术语,以便我能够找出每个集群的特征。
我的问题是,有没有办法找出Doc2vec文档中最主要或最简单的术语/单词。我正在使用python的gensim包进行Doc2vec实现,要找出集群中最主要的词,您可以使用这两种经典方法中的任何一种。我个人认为第二种方法在这方面非常有效

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

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

    • 根据包含该关键字的文档数,计算文档中出现的每个单词的IDF
    • 连接相似文档的文本(我称之为超级文档),然后计算这个超级文档中出现的每个单词的TF
    • 计算每个单词的TF*IDF。。。然后塔达。。。您有与每个集群关联的关键字
    请参阅第5.1节,了解有关使用的更多详细信息


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

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

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

        • 根据包含该关键字的文档数,计算文档中出现的每个单词的IDF
        • 连接相似文档的文本(我称之为超级文档),然后计算这个超级文档中出现的每个单词的TF
        • 计算每个单词的TF*IDF。。。然后塔达。。。您有与每个集群关联的关键字
        请参阅第5.1节,了解有关使用的更多详细信息

      @TrnKh's不错,但在使用
      Doc2Vec
      时,还有一个附加选项可用

      一些gensim Doc2Vec训练模式–默认的PV-DM(
      DM=1
      )或添加单词训练的PV-DBOW(
      DM=0,DBOW_words=1
      )将文档向量和单词向量训练到同一坐标空间,在某种程度上意味着文档向量是近相关的单词向量,反之亦然

      因此,您可以获取单个文档的向量,或合成的平均/质心向量,并将其提供给模型以查找最相似的单词。(为了明确这是一个原始向量,而不是向量键的列表,您应该使用
      most_similor()
      的形式,它指定了一个明确的
      正的
      示例列表。)

      例如:

      docvec = d2v_model.docvecs['doc77145']  # assuming such a doc-tag exists
      similar_words = d2v_model.most_similar(positive=[docvec])
      print(similar_words)
      
      @TrnKh很好,但在使用
      Doc2Vec
      时,还有一个附加选项可用

      一些gensim Doc2Vec训练模式–默认的PV-DM(
      DM=1
      )或添加单词训练的PV-DBOW(
      DM=0,DBOW_words=1
      )将文档向量和单词向量训练到同一坐标空间,在某种程度上意味着文档向量是近相关的单词向量,反之亦然

      因此,您可以获取单个文档的向量,或合成的平均/质心向量,并将其提供给模型以查找最相似的单词。(为了明确这是一个原始向量,而不是向量键的列表,您应该使用
      most_similor()
      的形式,它指定了一个明确的
      正的
      示例列表。)

      例如:

      docvec = d2v_model.docvecs['doc77145']  # assuming such a doc-tag exists
      similar_words = d2v_model.most_similar(positive=[docvec])
      print(similar_words)
      

      请提供文档的示例文本和代码。请提供文档的示例文本和代码。