句子相似度模型不能捕捉相反的句子
问题描述
我尝试了不同的方法来句子相似度,即:
空间模型:
en_core_web_md
和en_core_web_lg
。变形金刚:使用包
sentence-similarity
和sentence-transformers
,我尝试了distilbert-base-uncased
、bert-base-uncased
或sentence-transformers/all-mpnet-base-v2
等模型。通用语句编码:使用包
spacy-universal-sentence-encoder
,模型en_use_md
和en_use_cmlm_lg
。
- 我喜欢雨天,因为它让我感到放松。&
- 我不喜欢下雨天,因为它不会让我感到放松。&q;
返回与模型的相似度en_use_md
。
然而,可以被认为非常相似的句子非常相似:
- 我喜欢雨天,因为它让我感到放松。&
- 我喜欢雨天,因为它们让我感到平静。&
返回较小的相似度:0.914。
我的问题是:有什么办法可以解决这个问题吗?有没有其他模型/方法在计算相似度时考虑到句子的肯定/否定性质?
解决方案
您的问题很中肯,我相信每个人在某个时候都想过这个问题。
如果您想评估两个句子之间的逻辑联系,在一些预先确定的嵌入上使用余弦相似度或欧几里德距离是不够的。
两个句子之间的实际逻辑联系可以通过RTE
任务(识别文本蕴涵)来确定。
在宾夕法尼亚大道的另一端,人们开始排队等候 白宫之旅。
人们在宾夕法尼亚大道尽头排起了长队。
在这种情况下,这两个句子之间存在蕴涵。
HuggingFace也有一些为MNLI预先构建的模型。您可以检查distilbert-base-uncased-mnli
、roberta-large-mnli
等专门针对此任务进行微调的模型,并将上述模型视为任务的起点。
相关文章