假设我有一组短语 - 大约 10 000 - 平均长度 - 7-20 个单词,我想在其中找到一些给定的短语。我正在寻找的短语可能有一些错误——例如遗漏一两个词、一些词错位或一些随机词——例如我的数据库包含“当我骑着我的红色自行车时,我看到了克里斯汀”,而我非常想要“当我骑着我的蓝色自行车时,看到了 Christine”,或者“我骑着我的自行车,我看到了 Christine 和 Marion”。有什么好的方法可以解决这个问题?我知道 Levenhstein 的距离,我也认为这个问题可能没有简单、好的解决方案。
问问题
1005 次
1 回答
1
一个好的文本搜索引擎会提供你描述的功能,fsh。一种典型的方法是创建一个匹配的查询,如果任何单词出现,并使用基于彼此接近出现的术语数量的权重排序结果,并与其出现的概率成反比,因为不常见的单词会更少很可能偶然同时发生。有一个关于这种事情的完整理论叫做信息检索,但也许你知道。此外,您希望通过规范化大小写、标点符号等并应用一些基本的语言转换(词干)来确保单词级别的模糊性,并且在某些情况下引入同义词词典,尤其是在有领域知识的情况下可以调节它。
如果你有兴趣弄乱这些东西,试试开源搜索引擎,Vik 的这篇文章从 2009 年的角度给出了一个合理的调查,而米德尔顿和 Baeza-Yates的这篇文章很好地详细介绍了话题。
于 2011-09-18T22:01:31.723 回答