Ага! Все-таки Devereaux, а не Deveraux, как на КП написано!
Ну что ж… Я встречал еще и «Деверё» :)
Так что, от моего изобретения большая польза :D И оно не только дырку в стене закрывает.
Во всяком случае, думаю, если бы все эти написания присутствовали в этой БД, то анализатор нашел бы все пары сходных. А дальше пусть франко-бельгийцы голову ломают — как там по русски правильно писать.
Кстати, была еще идея сделать кластерный анализ по результатам его работы. Чтобы выдавал не разрозненные пары, а некие конгломераты сходных имен. Так, чтобы на концах списка находились самые отличающиеся, а в середине — максимально похожие на все остальные.
Ну так я же и писал, что французский я ни разу не знаю.
Во всяком случае, спасибо за это сообщение. Оно является прекрасной иллюстрацией написанному мной насчет перевода «на глаз, а не на слух».
В Интернете в блогах и всяких ЖЖ я встречал именно Деверю, и я думаю, что писали это люди в отличие от меня разбирающиеся во французском языке. В Вике, в статье про фильм — Деверо. Но фильм снимали как раз американоязычные кинодеятели. Они могли и ошибиться. А Вы пишете, что правильно — Девро.
Т.е. это имя уже могло быть написано, минимум, в трех вариантах.
Смысл как раз в том, чтобы найти сходные по написанию имена, а разбираться, принадлежат ли они одному персоналию или разным, и как звучит по-русски правильно — это уже совсем другая задача.
Напишите, пожалуйста, что именно Вас интересует. Постараюсь дополнить или описать отдельным постом.
В принципе, основа описана в тексте, а фрагменты кода достаточно подробно комментированы. Отсутствуют некоторые фрагменты кода, т.к. они были заточены под конкретную реализацию исходного сайта и БД.
Т.е. повторюсь, основные идеи следующие:
1. Используется N-граммный анализ.
2. Для упрощения анализа имена нормализуются (см. в тексте).
3. Для начальной выборки используется 5-граммный индекс, вернее, его целочисленный хеш.
4. Внутри полученной выборки производится 3-граммный анализ по уникальным 3-граммам.
5. Перед началом вычисления релевантности определяется максимально допустимое число «промахов». При его превышении выисление релевантности прекращается без уточнения.
6. Дополнительно в начальной выборке можно указывать диапазон числа уникальных триграмм, т.к. существует их максимальное соотношение в сравниваемых именах, при превышении которого релевантность будет заведомо ниже заданной границы.
Остальное можно посмотреть в коде и комментариях к нему.
Если что будет непонятно — спрашивайте. Буду рад ответить.
Ну что ж… Я встречал еще и «Деверё» :)
Так что, от моего изобретения большая польза :D И оно не только дырку в стене закрывает.
Во всяком случае, думаю, если бы все эти написания присутствовали в этой БД, то анализатор нашел бы все пары сходных. А дальше пусть франко-бельгийцы голову ломают — как там по русски правильно писать.
Кстати, была еще идея сделать кластерный анализ по результатам его работы. Чтобы выдавал не разрозненные пары, а некие конгломераты сходных имен. Так, чтобы на концах списка находились самые отличающиеся, а в середине — максимально похожие на все остальные.
Но не задалось. Заказчик потерял интерес.
Надо обратиться к первоисточнику. Запущу дома DOSBox и WC первый под ним. И посмотрю, что там пишут.
Во всяком случае, спасибо за это сообщение. Оно является прекрасной иллюстрацией написанному мной насчет перевода «на глаз, а не на слух».
В Интернете в блогах и всяких ЖЖ я встречал именно Деверю, и я думаю, что писали это люди в отличие от меня разбирающиеся во французском языке. В Вике, в статье про фильм — Деверо. Но фильм снимали как раз американоязычные кинодеятели. Они могли и ошибиться. А Вы пишете, что правильно — Девро.
Т.е. это имя уже могло быть написано, минимум, в трех вариантах.
Смысл как раз в том, чтобы найти сходные по написанию имена, а разбираться, принадлежат ли они одному персоналию или разным, и как звучит по-русски правильно — это уже совсем другая задача.
В принципе, основа описана в тексте, а фрагменты кода достаточно подробно комментированы. Отсутствуют некоторые фрагменты кода, т.к. они были заточены под конкретную реализацию исходного сайта и БД.
Т.е. повторюсь, основные идеи следующие:
1. Используется N-граммный анализ.
2. Для упрощения анализа имена нормализуются (см. в тексте).
3. Для начальной выборки используется 5-граммный индекс, вернее, его целочисленный хеш.
4. Внутри полученной выборки производится 3-граммный анализ по уникальным 3-граммам.
5. Перед началом вычисления релевантности определяется максимально допустимое число «промахов». При его превышении выисление релевантности прекращается без уточнения.
6. Дополнительно в начальной выборке можно указывать диапазон числа уникальных триграмм, т.к. существует их максимальное соотношение в сравниваемых именах, при превышении которого релевантность будет заведомо ниже заданной границы.
Остальное можно посмотреть в коде и комментариях к нему.
Если что будет непонятно — спрашивайте. Буду рад ответить.