本文介绍了句子相似度模型不能捕捉相反的句子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试了不同的方法来句子相似度,即:
空间模型: 变形金刚:使用包 通用语句编码:使用包
然而,虽然这些模型通常正确地检测到等值句子的相似性,但它们在输入否定句子时都失败了。例如,这些相反的句子: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
等专门针对此任务进行微调的模型,并将上述模型视为任务的起点。
这篇关于句子相似度模型不能捕捉相反的句子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!