代码之家  ›  专栏  ›  技术社区  ›  pankaj jha

如何在doc2vec中找到文档中最相似的术语/单词?[副本]

  •  0
  • pankaj jha  · 技术社区  · 7 年前

    2 回复  |  直到 7 年前
        1
  •  6
  •   gojomo    7 年前

    @TrnKh的 answer Doc2Vec .

    一些gensim Doc2Vec训练模式或默认PV-DM( dm=1 )或PV-DBOW,增加文字训练( dm=0, dbow_words=1 )将文档向量和文字向量训练到同一个坐标空间中,在某种程度上,这意味着文档向量是接近相关的文字向量,反之亦然。

    因此,您可以获取单个文档的向量,或合成的平均/质心向量,并将其提供给模型以查找 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)
    
        2
  •  1
  •   TrnKh    6 年前

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

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

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

      • 连接相似文档的文本(我称之为超级文档),然后为这个超级文档中出现的每个单词计算TF
      • 计算每个单词的TF*IDF。。。然后塔达。。。你有与每个集群相关联的关键词。

      TF-IDF .