我参与了一个将搜索名称列表的SQL / .NET项目。我正在寻找一种方法来返回类似人名的一些结果。如果搜索“Tom”,结果将包括Thom,Thomas等。这是文件还是Web服务并不重要。示例设计:
Table "Names" has Name and NameID
Table "Nicknames" has Nickname, NicknameID and NameID
示例输出:
You searched for "John Smith"
You show results Jon Smith, Jonathan Smith, Johnny Smith, ...
是否有适合此类任务的数据库(公共或付费)来填充昵称和名称之间的关系?
答案 0 :(得分:35)
我正在为通过Google遇到此问题的任何人添加其他来源。该项目为此目的提供了非常好的查找。
https://github.com/carltonnorthern/nickname-and-diminutive-names-lookup
它比pdNickName更简单,更不完整,但另一方面它免费且易于使用。
答案 1 :(得分:10)
谷歌搜索“昵称数据库”出现pdNickName(付费)。
此外,我认为您只需要一个表来完成这项工作,而不是两个,具有NameID,Name和MasterNameID。所有昵称都进入Name列。一个名称被认为是“规范”名称。所有昵称记录都使用MasterNameID列指向该记录,规范名称指向自身。
您的两个表架构不包含其他信息,并且根据您填写昵称表的方式,您可能需要额外的代码来处理规范案例。
答案 2 :(得分:7)
我刚刚找到这个网站。
看起来你很容易编写脚本。
http://www.behindthename.com/php/extra.php?terms=steve&extra=r&gender=m
我只是希望我可以自动缩小到英语..
答案 3 :(得分:5)
另一个商业名称匹配数据库是:http://www.basistech.com/name-indexer/
它看起来很专业(虽然可能很贵)。
他们声称支持以下语言:
阿拉伯语,中文(简体),中文(繁体),波斯语(波斯语/达里语),英语,日语,韩语,普什图语,俄语,乌尔都语
答案 4 :(得分:4)
以下是a github repo with csv of related names,您可以回复:
前几行显示格式:
aaron,ron
abel,abe
abednego,bedney
abijah,ab,bige
abigail,ab,abbie,abby,gail
abner,ab,abbie,abby
abraham,abe,abram,bram
absalom,ab,abbie,app
答案 5 :(得分:2)
有一个名为pdNicknames的数据库(在http://www.peacockdata2.com/products/pdnickname/找到)。它包含您需要的一切,费用为500美元。
答案 6 :(得分:2)
与Stan James的csv类似的格式,但折叠了两种查找方式: 昵称的姓名:https://github.com/MrCsabaToth/SOEMPI/blob/master/openempi/conf/name_to_nick.csv 昵称:https://github.com/MrCsabaToth/SOEMPI/blob/master/openempi/conf/nick_to_name.csv
答案 7 :(得分:0)
要选择类似的声音名称,请使用:(请参阅MSDN)
SELECT SOUNDEX ('Tom')
答案 8 :(得分:0)
这是一个不错的选择:https://github.com/onyxrev/common_nickname_csv
id, name, nickname
1, Aaron, Erin
2, Aaron, Ron
3, Aaron, Ronnie
4, Abel, Ab
5, Abel, Abe
6, Abel, Eb
7, Abel, Ebbie
8, Abiel, Ab
9, Abigail, Abby
10, Abigail, Gail