我正在编写一个桌面用户界面(.Net WinForms)来帮助摄影师清理他的图像元数据。有一个66k +短语列表。任何人都可以建议一个好的开源/免费.NET组件,我可以使用它采用某种算法来识别合并的潜在候选人?例如,可能存在两个或更多个条目,这些条目实际上是相同的单词或短语,仅通过空格或标点符号或甚至轻微的错误拼写而不同。该应用程序最终将依赖于用户对短语进行整合,但是有效地自动查找潜在候选人将非常有用。
答案 0 :(得分:24)
让我向您介绍Levenshtein距离公式。太棒了:
http://en.wikipedia.org/wiki/Levenshtein_distance
在信息理论和计算机科学中,Levenshtein距离是用于测量两个序列之间的差异量的字符串度量。术语编辑距离通常用于指Levenshtein距离。
就个人而言,我在医疗保健环境中使用此功能,其中检查提供者名称是否重复。使用Levenshtein过程,我们给了他们一个置信度,并允许他们确定它是真正的重复还是独特的东西。