编辑距离算法可以衡量两个字符串之间的距离。
问题:哪些措施与检测实际上相同的两个不同人名最相关? (由于误导而不同)。诀窍是它应该尽量减少误报。例如:
Obaama 奥巴马 =>应该合并
奥巴马 IBAMA =>不应该合并。
这只是一个简单的例子。他们的程序员和计算机科学家是否更详细地解决了这个问题?
答案 0 :(得分:5)
我可以建议 information-retrieval技术这样做,但它需要大量文档才能正常工作。
使用标准IR技术索引数据。 Lucene是一个很好的开源库,可以帮助您。
获得名称后(例如Obaama):检索Obaama 一词中出现的集合。设置为D1
。
现在,对于D1 1 中的每个单词w
,搜索Obaama AND w
(使用您的IR系统)。设为D2
。
得分|D2|/|D1|
是估算w
与Obaama
的关联程度,w=Obama
最有可能接近1 2 。
您可以手动标记一组示例,并找到期望单词的值。
使用标准的词典相似度技术,您可以选择过滤出绝对不是拼写错误的单词(如Barack
)。
经常使用的另一个解决方案需要查询日志 - 在搜索的单词之间找到相关性,如果obaama与查询日志中的obama相关 - 它们是连接的。
1:您可以先通过第二个过滤器来提高性能,并且只检查按字典顺序“足够相似”的候选人。
2:通常也使用标准化,因为更频繁的单词更可能与任何单词在同一文档中,无论是否相关。
答案 1 :(得分:2)
您可以查看同时使用NerSim的demo(SecondString)。您可以找到相应的论文,或者考虑一下这篇论文:Robust Similarity Measures for Named Entities Matching。