Я связан с SQL / проект.NET, который будет перерывать список имен. Я ищу способ возвратить некоторые результаты на подобных именах людей. При поиске "Tom" результаты включали бы Тома, Thomas, и т.д. Это не важно ли это быть файлом или веб-сервисом. Дизайн в качестве примера:
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, ...
Есть ли какие-либо базы данных там (общественность или заплачены) подходящий для этого типа задачи заполнить отношения между псевдонимами и именами?
Поиск в Google "База данных никнеймов" обнаружил pdNickName (за плату).
Кроме того, я думаю, для этого задания вам понадобится только одна таблица, а не две, с NameID, Name и MasterNameID. Все псевдонимы заносятся в столбец «Имя». Одно имя считается «каноническим». Все записи псевдонимов используют столбец MasterNameID, чтобы указывать на эту запись, причем каноническое имя указывает на себя.
Ваша схема с двумя таблицами не содержит дополнительной информации, и, в зависимости от того, как вы заполняете таблицу псевдонимов, вам может потребоваться дополнительный код для обработки канонических случаев.
Чтобы выбрать похожее название, используйте: (см. MSDN )
SELECT SOUNDEX ('Tom')
Существует база данных под названием pdNicknames (находится по адресу http://www.peacockdata2.com/products/pdnickname/ ) . В нем есть все, что вам нужно, по цене 500 долларов.
Я только что нашел этот сайт.
Похоже, вы могли бы довольно легко написать сценарий.
http://www.behindthename.com/php/extra.php?terms=steve&extra=r&gender=m
Я просто хотел бы автоматически сузить это до английского ..