我目前正在从事一个项目,我必须将大量用户生成的名称与规范格式的相同名称的单独列表进行匹配。问题是用户生成的名称包含大量拼写错误、缩写以及简单的无效数据,因此很难与规范数据进行交叉引用。关于这样做的方法有什么建议吗?
这不必实时完成,在这种情况下,准确性比速度更重要。
目前对此的想法是:
- 使用现有的搜索实现(如 Lucene 或 Sphinx)在规范数据库中对用户输入的名称进行模糊搜索,我认为它使用类似 Levenshtein 距离之类的东西。
- 交叉引用 SOUNDEX 散列(据说是根据名称的发音而不是拼写计算)而不是使用实际名称。
- 以上的一些组合
有人对这些或他们自己的想法有任何反馈吗?
我担心的一个问题是,上述方法都不能很好地处理缩写。谁能指出一些机器学习方法的方向,以实际搜索扩展的缩写(或告诉我我疯了)?提前致谢。