模糊数据交叉引用数据库

时间:2009-12-09 23:05:50

标签: search lucene sphinx fuzzy-search cross-reference

我目前正致力于项目,我必须将大量用户生成的名称与规范格式的相同名称的单独列表进行匹配。问题是用户生成的名称包含许多拼写错误,缩写,以及简单的无效数据,这使得很难与规范数据进行交叉引用。有关方法的任何建议吗?

这不一定要实时完成,在这种情况下,准确性比速度更重要。

目前的想法是:

  1. 使用现有的搜索实现(如Lucene或Sphinx)对规范数据库中的用户输入名称进行模糊搜索,我认为这样就使用了Levenshtein距离。
  2. SOUNDEX哈希上的交叉引用(据说是根据名称的声音计算而不是拼写),而不是使用实际名称。
  3. 上述
  4. 的某些组合

    任何人对自己的这些或想法都有任何反馈意见吗?

    我担心的一个问题是上述方法都不能很好地处理缩写。任何人都可以指出我的方向,一些机器学习方法实际搜索扩展缩写(或告诉我,我疯了)?提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先,我会在列表中添加Peter Norvig's post on spelling correction讨论的技术。

其次,我会问你在谈论什么样的“用户生成的名字”。处理完两者后,我相信你用于街道名称的启发式方法与人名的启发式方法有所不同。 (举一个简单的例子,“Dr”是否扩展为“Drive”或“Doctor”?)

第三,我将看一个使用测试的组合,以建立用于组合各种技术结果的系数集。