句子相似度模型不能捕捉相反的句子

Sentence similarity models not capturing opposite sentences(句子相似度模型不能捕捉相反的句子)
本文介绍了句子相似度模型不能捕捉相反的句子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试了不同的方法来句子相似度,即:

  • 空间模型en_core_web_mden_core_web_lg

  • 变形金刚:使用包sentence-similaritysentence-transformers,我尝试了distilbert-base-uncasedbert-base-uncasedsentence-transformers/all-mpnet-base-v2等模型。

  • 通用语句编码:使用包spacy-universal-sentence-encoder,模型en_use_mden_use_cmlm_lg

然而,虽然这些模型通常正确地检测到等值句子的相似性,但它们在输入否定句子时都失败了。例如,这些相反的句子

  • 我喜欢雨天,因为它让我感到放松。&
  • 我不喜欢下雨天,因为它不会让我感到放松。&q;

返回与模型的相似度en_use_md

然而,可以被认为非常相似的句子非常相似

  • 我喜欢雨天,因为它让我感到放松。&
  • 我喜欢雨天,因为它们让我感到平静。&

返回较小的相似度:0.914

我的问题是:有什么办法可以解决这个问题吗?有没有其他模型/方法在计算相似度时考虑到句子的肯定/否定性质?

推荐答案

您的问题很中肯,我相信每个人在某个时候都想过这个问题。

如果您想评估两个句子之间的逻辑联系,在一些预先确定的嵌入上使用余弦相似度或欧几里德距离是不够的。

两个句子之间的实际逻辑联系可以通过RTE任务(识别文本蕴涵)来确定。

多体裁自然语言推理(MultiGenre Natural Language Inference,MultiNLI):是一个专门针对TE(自然语言推理上下文中的文本蕴涵)任务而构建的数据集。本质上有三个标签(矛盾、中立和蕴涵)。

在宾夕法尼亚大道的另一端,人们开始排队等候 白宫之旅。

人们在宾夕法尼亚大道尽头排起了长队。

在这种情况下,这两个句子之间存在蕴涵。

HuggingFace也有一些为MNLI预先构建的模型。您可以检查distilbert-base-uncased-mnliroberta-large-mnli等专门针对此任务进行微调的模型,并将上述模型视为任务的起点。

这篇关于句子相似度模型不能捕捉相反的句子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)