【发布时间】:2021-11-21 05:38:44
【问题描述】:
我尝试了不同的方法来句子相似度,即:
-
spaCy 模型:
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。
然而,虽然这些模型通常可以正确检测等效句子的相似性,但在输入否定句子时它们都失败了。例如,这些相反的句子:
- “我喜欢下雨天,因为它们让我感到轻松。”
- “我不喜欢下雨天,因为它们不会让我感到放松。”
返回与模型en_use_md 的相似度为 0.931。
但是,可以认为非常相似的句子:
- “我喜欢下雨天,因为它们让我感到轻松。”
- “我喜欢下雨天,因为它们让我感到平静。”
返回一个较小的相似度:0.914。
我的问题是:有没有办法解决这个问题?在计算相似度时是否有其他模型/方法可以考虑句子的肯定/否定性质?
【问题讨论】:
-
关于转换器:distilbert-base-uncased、bert-base-uncased 没有经过训练来检测相似性。此外,具有相反含义的句子仍然可以相似。也许你可以尝试一个释义模型或寻找一个数据集,你可以使用它来微调一个关于句子含义的转换器。
标签: python nlp spacy huggingface-transformers sentence-similarity