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

时间:2012-08-12 07:34:26

标签: algorithm nlp spelling edit-distance

编辑距离算法可以衡量两个字符串之间的距离。

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

Obaama 奥巴马 =>应该合并

奥巴马 IBAMA =>不应该合并。

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

2 个答案:

答案 0 :(得分:5)

我可以建议 information-retrieval技术这样做,但它需要大量文档才能正常工作。

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

获得名称后(例如Obaama):检索Obaama 一词中出现的集合。设置为D1
现在,对于D1 1 中的每个单词w,搜索Obaama AND w (使用您的IR系统)。设为D2

得分|D2|/|D1| 是估算wObaama的关联程度,w=Obama最有可能接近1 2
您可以手动标记一组示例,并找到期望单词的值。

使用标准的词典相似度技术,您可以选择过滤出绝对不是拼写错误的单词(如Barack)。

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


1:您可以先通过第二个过滤器来提高性能,并且只检查按字典顺序“足够相似”的候选人。

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

答案 1 :(得分:2)

您可以查看同时使用NerSimdemoSecondString)。您可以找到相应的论文,或者考虑一下这篇论文:Robust Similarity Measures for Named Entities Matching