我的目标很简单:我有一组字符串或句子,我想在文本语料库中找到最相似的一个。
例如,我有以下文本语料库:“图书馆的正面装饰着由艺术家米勒德设计的”生命之字“壁画。”
我想找到原始语料库的子字符串,它非常类似于:“库外观是绘制的”。
因此,当输出时,我应该得到的是:“库前装饰”。
我想出的唯一办法就是用可变长度的子串把原来的句子分开(例如。在3,4,5字符串的子字符串中),然后使用来自spacy
python模块的类似spacy
的东西来评估我的目标文本与所有子字符串的相似之处,然后保留值最高的子字符串。
这似乎是一种效率很低的方法。还有什么更好的办法吗?
发布于 2019-03-19 12:32:51
它可能在某种程度上起作用,但我不认为空间相似性方法(平均字向量)能特别好地工作。
您正在执行的任务涉及释义检测/识别和语义文本相似性,并且有许多现有的工作。它经常用于诸如剽窃检测和机器翻译系统的评估,因此您也可以通过查看这些领域找到更多的方法。
如果你想要的东西对英语来说很快就能发挥作用,有一个建议是terp,它是为MT评估而开发的,但在释义检测方面效果很好:
https://github.com/snover/terp
大多数方法都是为了比较两个句子,所以这并不能解决你潜在的部分句子匹配问题。也许找出最相似的句子,然后在句子中寻找比整个句子更匹配的子字会更有意义?
https://stackoverflow.com/questions/55220015
复制相似问题