|
|
|
Автокоррекция правописания по словарю
|
|||
|---|---|---|---|
|
#18+
Есть следующая задача. Имеется база большого объема (порядка миллиона записей), представляющая собой словарь (например, список всех возможных фамилий или список всех возможных улиц всех городов России). Необходимо проверить введенное значение на наличие в словаре, и при отсутствии в словаре предложить наиболее близкое по написанию слово из словаря. ПРИЧЕМ ПРИ ЭТОМ ДОЛЖНА ДОСТИГАТЬСЯ МАКСИМАЛЬНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ! Первое, что приходит на ум - если по точному совпадению на нашли, делаем перебор по всему словарю, для каждого имеющегося в словаре значения считаем отличие от введенного значения (например, используя алгоритм Левенштейна), и в качестве альтернативы предлагаем те слова из словаря, у которых отличие от введенного значения минимальное. Сомнения вызывает производительность такого подхода при большом объеме словаря - миллион раз вызывать функцию определения отличия (Левенштейна) слишком подгрузит систему. Существуют ли какие-нибудь методы, позволяющие оптимизировать этот процесс (может можно создать какие-нибудь индексы по словарям, которые бы помогли оптимизировать алгоритм)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2010, 16:40 |
|
||
|
Автокоррекция правописания по словарю
|
|||
|---|---|---|---|
|
#18+
авторПервое, что приходит на ум - если по точному совпадению на нашли, делаем перебор по всему словарю, для каждого имеющегося в словаре значения считаем отличие от введенного значениянаверное это самый бездарный и затратный по времени алгоритм поиска. изучите как работают поисковые системы типа GOOGLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2010, 17:29 |
|
||
|
Автокоррекция правописания по словарю
|
|||
|---|---|---|---|
|
#18+
имхо я догадался для чего это Вам нужно. Вы работник почтовой службы. А поскольку адреса часто пишут с ошибками вам приходится догадываться какой реальный адрес наиболее близко подходит к указанному на конверте. Хотя формально вы можете вернуть письмо отправителю с припиской -- нет такой улицы в городе N. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 09:18 |
|
||
|
Автокоррекция правописания по словарю
|
|||
|---|---|---|---|
|
#18+
нашел на соседнем форуме : автор нечёткий поиск по тексту. Вводишь SELECT ... WHERE word % 'Батва' а оно выдаёт 'Ботва'. Типа гуглового "Возможно Вы имели в виду ..."это про СУБД POSTGRESQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 11:02 |
|
||
|
Автокоррекция правописания по словарю
|
|||
|---|---|---|---|
|
#18+
На RSDN.RU есть статья описывающая алгоритм проверки и сопоставления адресов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2010, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36677647&tid=1542643]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 521ms |

| 0 / 0 |
