Word2Vec - 文档相似度

数据挖掘 机器学习 nlp word2vec
2022-02-15 09:39:46

假设我有 2005 - 2015 年不同文档的文本数据。我想比较文档之间的相似性。所以我拿 2006 年的文件和 2005 年的文件比较,拿 2007 年的文件和 2006 年的文件比较……一直到 2015 年,与 2014 年相比。tt1

我为每一年计算了一个独立于其他年份的 Word2Vec 模型,并为每个 Word 获得了高维数组。所以我从 2005 年到 2015 年有 10 个 Word2Vec 模型。

我从这里比较文档相似性的最佳方法是什么。

以前我使用 TF-IDF,我可以为每个文档创建一个大矩阵,其中行中包含单词,列中包含文档。处结合他的 TermDocumentMatrix并计算余弦相似度。tt1

但是 Word2Vec 提供了很多高维数组,我想不出如何比较从W2V 模型。tt1

任何帮助都会很棒!

2个回答

您可能想查看“近似最近邻居”分析,尤其是来自 Spotify 的 annoy 包:

https://github.com/spotify/annoy

它不像精确比较那样精确,但它可能足够接近,可以满足您的需求。

尽管@oneextrafact 提到了几个最近邻工具。该工具的问题是您需要为外部数据库索引逻辑操作,就像您提到的那样,您希望使用过期时间构建一些逻辑。我会推荐你​​是提取一个文档向量。尽管有几种方法可以通过训练 doc2vec 或使用预训练的 BERT 来做到这一点。如果您想使用 word2vec,那么我将推荐以下方法。

  1. 训练 word2vec
  2. 使用文本排名从每个文档中提取重要短语。
  3. 为文本排名分数(0-1)设置阈值并检索这些短语并标记这些短语
  4. 提取这些词的词嵌入并对向量求和或求和
  5. 现在该向量表示该文档的嵌入。将该向量与文档文本、ID 和年份一起放在 Elastic 搜索版本 7 及更高版本中
  6. 弹性搜索支持最近邻搜索以及过滤日期等其他逻辑。
其它你可能感兴趣的问题