【问题标题】:Document similarity with doc2vec与 doc2vec 的文档相似性
【发布时间】:2018-10-15 12:44:07
【问题描述】:

通过 github 中的这个 Gensim 示例,https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-wikipedia.ipynb 它在末尾提供了示例来查找短语或关键字的相似之处,例如“lady gaga”或“机器学习”。但是,我希望在纯文本文件中找到与实际文档的相似性,可以这样做吗?我该怎么做?假设文本文件以 txt 格式位于我的本地笔记本电脑上。

【问题讨论】:

  • 是的,可以通过使用 gensim 包本身的 lda 来完成
  • 但不想要 lda,我需要 doc2vec 相似性
  • 如果我理解正确,您只需将wiki = WikiCorpus("enwiki-latest-pages-articles.xml.bz2") 更改为您的文本文件路径!

标签: python nlp gensim doc2vec


【解决方案1】:

将查询文档标记为与训练数据相同。将这些标记传递给Doc2Vec 模型的infer_vector() 方法以获取查询文档的向量。将该向量传递给most_similar(),以获得与该向量相似的已知文档的排名列表。

有在单元格 10 中以这种方式使用 infer_vector() 的示例,并在 gensim 随附的另一个演示笔记本中转发:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb

【讨论】:

  • 谢谢,但我不知道如何标记查询文档(文本文件)?请帮忙
  • 使用与用于标记任何培训文档的代码相同的代码。 (如果所做的只是.split() 在空格上,那可能就足够了。但是如果将其他大小写扁平化、单词删除等应用于训练数据,那么也将其应用于查询文档。)跨度>
  • 如果您根据doc2vec-wikipedia.ipynb 笔记本专门构建了模型,使用gensim 中的WikiCorpus 类,请查看该类中的preprocess_text() 方法,它可能会你需要什么:radimrehurek.com/gensim/corpora/…
  • 感谢@gojomo,但现在这个笔记本有问题,当我使用这个'pre. scan_vocab(documents)' doc2vec 是否有类似的属性替换 (scan_vocab)
  • 最近gensim 版本中的其他重构可能破坏了笔记本的这一行。除非您需要优化 min_count 以达到特定的词汇量,否则您可以跳过这些单元格 [5]-[6]。即使您确实需要特定的幸存词汇量,也可以使用一个新的max_final_vocab 参数来代替。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 2018-08-14
相关资源
最近更新 更多