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