1

我目前正在从事一个项目,我必须将大量用户生成的名称与规范格式的相同名称的单独列表进行匹配。问题是用户生成的名称包含大量拼写错误、缩写以及简单的无效数据,因此很难与规范数据进行交叉引用。关于这样做的方法有什么建议吗?

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

目前对此的想法是:

  1. 使用现有的搜索实现(如 Lucene 或 Sphinx)在规范数据库中对用户输入的名称进行模糊搜索,我认为它使用类似 Levenshtein 距离之类的东西。
  2. 交叉引用 SOUNDEX 散列(据说是根据名称的发音而不是拼写计算)而不是使用实际名称。
  3. 以上的一些组合

有人对这些或他们自己的想法有任何反馈吗?

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

4

1 回答 1

1

首先,我将在Peter Norvig 关于拼写更正的帖子中讨论的技术添加到您的列表中。

其次,我想问一下您在谈论哪种“用户生成的名称”。处理完这两个问题后,我相信您用于街道名称的启发式方法与用于人名的启发式方法有些不同。(举个简单的例子,“Dr”扩展为“Drive”还是“Doctor”?)

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

于 2009-12-10T00:40:50.583 回答