2011-05-06 26 views
2

我有一个将存储和跟踪访问者的应用程序。这些访问者在设置访问时根据需要由调度程序(用户)在系统中创建。问题是,大部分的时间是访问者的唯一重要的唯一标识符如下:名称匹配字典,用于查找名字和姓氏变体

  • 公司名称

的重复记录现有风险因为同一个人是固有的,调度人员可以输入一个新的访问者记录来替代为该名称存在的人搜索系统。

当我遇到有人以同样的名字进入一个访问者时,我会显示一个警告对话框,提供这个人可能是谁的各种建议,但是即使那样也不够好。

我可以输入'Jim Jones',这个人可能在系统中存在'詹姆斯琼斯'或'吉米琼斯'。我看到有可用的名称识别软件包,但它们很昂贵,而且肯定比我所寻找的要重。

有人会知道在哪里可以找到一个免费或开源词典文件,我可以通过编程方式访问以查找潜在的名称变体?软件或在线服务会很好,但即使只是一个数据转储或简单的文本文件也可以。

我知道即使这不会阻止重复的访客记录,我只是试图保持在最低限度,所以它不是一个关键功能。

+0

我想从上面的设计说明中澄清一下,当我说一个调度程序可能会输入一个新的访客记录来代替搜索系统时,我的意思是说这种行为是通过设计的。用户群将被假定为具有最小的计算机技能,因此需要干净简单的手持流量。 – 2011-05-06 12:47:56

回答

2

查看Moby项目(http://icon.shef.ac.uk/Moby/mwords.html)了解常见的姓氏和名字。您可以使用metaphone和soundex等工具对类似名称进行预先计算,并使用它来识别潜在匹配。你也提到公司名称,因为它们可以由很多东西组成,因此它们有点难以管理,因为这可能会检查出12个词的单词列表(http://wordlist.sourceforge.net/)2 + 2列表在该软件包中提供的列表提供了多种形式,这些形式具有共同的基础,可以与类似的拼写解决方案结合使用以提供更好的结果。

+0

感谢发布,我会检查这些链接,并让你知道如何解决。澄清我不关心寻找公司。 “公司”字段不会是搜索字段,但会显示为唯一区分具有完全相同名称的两位访客。 – 2011-05-06 12:53:45

+0

嗯......在我下载Moby词典时解开文件时遇到了麻烦。自述没有任何帮助。 – 2011-05-06 13:07:28

+0

那么Moby字典是一个开始,但不是我正在寻找的东西。它有一系列令人印象深刻的名字,但是如果没有比较清单,我真的不能做很多事情。我测试过的Metaphone和Soundex算法不起作用,因为它们只会找到声音类似的名称,这不是我正在寻找的名称。如果我的搜索字词是'威廉',它应该能够搜索'比尔','比利','威尔','威利','威利'等变体......有了这样的列表,我可以轻松地编写一个查询来查找名称变体列表中的所有访问者。 – 2011-05-06 13:47:20