与句子嵌入的文本相似性

数据挖掘 词嵌入 相似 类似文件
2021-09-30 18:56:59

我正在尝试计算不同长度的文本之间的相似性。我目前的方法如下:

  1. 使用 Universal Sentence Encoder,我将文本转换为一组向量。
  2. 我对这些向量进行平均以创建最终的特征向量。
  3. 我使用余弦相似度比较特征向量。

对于大小大致相同的文本,这给了我很好的结果,但我想知道如果文本长度不同,是否有更好的方法用于步骤#2。

2个回答

一种方法是使用Word Mover 的距离 (WMD)WMD 是一种用于查找不同长度文本之间距离的算法,其中每个单词都表示为一个单词嵌入向量。

WMD 距离衡量两个文本文档之间的差异,作为一个文档的嵌入词需要“旅行”以到达另一个文档的嵌入词的最小距离量。

例如:

在此处输入图像描述 资料来源:“从词嵌入到文档距离”论文

WMD 可以修改为Sentence Mover's Distance,比较不同句子嵌入之间的距离。

随着语言模型的进步,最近将句子表示成向量的情况越来越好。在您的情况下,这可能会给您带来一些好的结果。例如,BERT可用于获取句子嵌入。看看以下 BERT 对句子相似度的用法: BERT 用于句子相似度

你可以使用预训练的 BERT 模型,你可以传递两个句子,你可以让 at 获得的向量C通过一个前馈神经网络来判断句子是否相似。如果您已标记数据集,则此方法可以工作。如果没有,请考虑以下事项:

BERT 单句

你将可变长度的句子传递给 BERT 网络,在标记处获得C的向量成为句子的向量。然后,您可以按照您一直使用的方式使用余弦相似度。