我有一个存储和跟踪访问者的应用程序。调度员(用户)在设置访问时根据需要在系统中创建这些访问者。问题是大多数时候访问者唯一重要的唯一标识符如下:
同一个人存在重复记录的风险是固有的,调度程序可能会输入新的访问者记录,而不是搜索系统中存在该名称的人。
当我遇到有人以相同的名字进入访客时,我会显示一个警告对话框,其中包含有关此人可能的各种建议,但即使这样也不够好。
我可以输入'Jim Jones',这个人可能在系统中以'James Jones'或'Jimmy Jones'的形式存在。我看到有可用的名称识别软件包,但它们很昂贵,而且肯定比我想要的更重。
有人知道在哪里可以找到一个免费或开源的词典文件,我可以通过编程方式查找潜在的名称变体吗?软件或在线服务会很好,但即使只是数据转储或简单的文本文件也可以。
我知道即使这不会阻止重复的访客记录,我只是想尽量保持这一点,因此它不是一个关键功能。
答案 0 :(得分:2)
查看Moby项目(http://icon.shef.ac.uk/Moby/mwords.html),了解常见的名字和姓氏。您可以使用metaphone和soundex等工具对类似名称进行预计算,并使用它来识别潜在的匹配项。你还提到了有点难以管理的公司名称,因为它们可以由许多东西组成,因为可以查看12-dicts单词列表(http://wordlist.sourceforge.net/)2 + 2lemma该软件包中提供的列表提供了多个共享根的表单,可以与simiar拼写解决方案结合使用,以提供更好的结果。