最有效的编辑距离来识别名称中的拼写错误?

sei*_*cle 6 algorithm nlp edit-distance spelling

编辑距离的算法给出了两个字符串之间距离的度量.

问题:哪些措施与检测两个实际上相同的不同人名最相关?(由于误导而不同).诀窍是它应该尽量减少误报.例:

Obaama Obama =>应该合并

奥巴马Ibama =>不应该合并.

这只是一个简单的例子.他们的程序员和计算机科学家是否更详细地解决了这个问题?

ami*_*mit 5

我可以建议这样做的信息检索技术,但它需要大量的文档才能正常工作.

使用标准IR技术索引数据.Lucene是一个很好的开源库,可以帮助你.

一旦你得到一个名字(例如Obaama):检索Obaama这个词出现的集合.让这个集合成为D1.
现在,对于wD1 1中的 每个单词搜索Obaama AND w(使用您的IR系统).设定为D2.

得分|D2|/|D1|是估计w连接的数量Obaama,并且最有可能接近1为w=Obama2.
您可以手动标记一组示例,并找到期望单词的值.

使用标准的词典相似性技术,您可以选择过滤掉绝对不是拼写错误的单词(Like Barack).

经常使用的另一种解决方案需要查询日志 - 找到搜索词之间相关性,如果obaama与查询日志中的obama相关 - 它们是连接的.


1:您可以通过首先执行第二个过滤器来提高性能,并仅检查词典上"足够相似"的候选者.

2:通常也使用标准化,因为更频繁的单词更可能与任何单词在同一文档中,无论是否相关.