文档相似性:矢量嵌入与Tf-Idf性能?

Ale*_*sis 7 nlp machine-learning tf-idf word2vec doc2vec

我有一个文档集合,每个文档都随着时间的推移而快速增长.任务是在任何固定时间找到类似的文件.我有两种可能的方法:

  1. 矢量嵌入(word2vec,GloVe或fasttext),对文档中的单词矢量求平均,并使用余弦相似度.

  2. 词袋:tf-idf或其变体,如BM25.

其中一个会产生明显更好的结果吗?是否有人对文件相似性进行了tf-idf与平均word2vec的定量比较?

是否有另一种方法,允许在添加更多文本时动态优化文档的向量?

小智 8

  1. doc2vec或word2vec?

根据文章,doc2vec或paragraph2vec的性能对于短篇文档来说是不好的.[学习非常短文本的语义相似度,2015,IEEE]

  1. 短篇文件......?

如果要比较短文档之间的相似性,可能需要通过word2vec对文档进行矢量化.

  1. 怎么构造?

例如,您可以使用tf-idf构建具有加权平均向量的文档向量.

  1. 相似性度量

另外,我建议使用ts-ss而不是余弦或欧几里德来表示相似性.

请参阅下面的文章或github中的摘要."用于测量文档和文档聚类中相似度的混合几何方法"

https://github.com/taki0112/Vector_Similarity

谢谢


goj*_*omo 4

您必须尝试一下:答案可能会根据您的语料库和特定于应用程序的“相似性”感知而有所不同。有效性可能会根据典型的文档长度而有所不同,因此,如果“随着时间的推移快速增长”也意味着“任意增长”,那么这可能会极大地影响随着时间的推移而起作用的内容(需要针对较长的文档进行调整)。

\n\n

另请注意,“段落向量”\xe2\x80\x93,其中向量像词向量一样进行共同训练以表示文本范围 \xe2\x80\x93 可能会优于简单的词平均 -向量,作为相似性/分类任务的输入。(许多对“Doc2Vec”的引用专门指“段落向量”,尽管术语“Doc2Vec”有时也用于将文档转换为单个向量的任何其他方式,例如单词的简单平均向量。)

\n\n

您可能还想查看“ Word Mover's Distance ”(WMD),它是使用词向量来衡量两个文本之间相似性的度量,尽管不是通过任何简单的平均值。(但是,计算成本可能很高,尤其是对于较长的文档。)对于分类,最近有一项名为“监督词移动距离”的改进,它会重新加权/转换词向量,使它们对已知类别更加敏感。有了足够的关于哪些文档应该比其他文档更接近的评估/调整数据,类似的技术可能可以应用于通用相似性任务。

\n