Даешь ему правильное слово - на выходе очепятки, но только правильные, в смысле с большой долей вероятности делаемые людьми. Может кто видел подобное?
obaldin
@ 27-10-2005, 20:57
Думаю, надо искать на "editing distance"
"editing distance" медленно переползло к "расстояниям между строками" и спелчеку... кое-что полезное есть... теперь бы табличку типичных очепяток с заменой букв, вида e-i, w-v, ph-f, ... :help:
obaldin
@ 28-10-2005, 16:15
QUOTE (Set @ 28-10-2005, 14:59) |
типичных очепяток с заменой букв, вида e-i, w-v, ph-f |
Это, похоже, ты приводишь пример не опечаток, а ошибок. А они будут сильно отличаться. Вопрос, что тебе все же нужно ошибки или опечатки, насколько реалистичными тебе нужны эти ошибки/опечатки? А то, может, достаточно составить табличку находящихся рядом букв, добавить пропуски/перестановки букв и все? В общем, уточни задачу?
Ошибки+очепятки, всё вместе. Нужны более-менее реалистичные варианты для слов, набираемых людьми в поисковых запросах.
1. Пропуск букв.
2. Замена местами рядом стоящих: dub - dbu
3. i-e, a-o, ...
Таблицы по раскладке букв на клавиатуре и вариант добавления других букв в слово, судя по кой-какой статистике, рассматривать не стоит.
Нужна табличка для 3-го пункта, в принципе можно и самому сделать, только насколько правильной она будет...
admik
@ 28-10-2005, 17:47
я бы тоже неотказался послушать советы специалистов :rolleyes:
у меня назревает необходимость в такой-же опции
obaldin
@ 28-10-2005, 18:26
Прям, заинтриговали... Что-же это вы химичите?..
А! Знаю! Тест Тьюринга решили пройти! :D
По поводу реализации - все будет зависить от того, по каким критериям будут оценивать похожесть сгенеренного на человеческий продукт. Например, у людей бывают такие ошибки как "первые две заглавные буквы". ТИпа вот так. И т.д.
Еще, может быть, имеет смысл глянуть в Open Office (естественно, на алгоритмы чекера)
О, видел как-то на Гугле список запрашивавшихся у них вариантов написания имени Бритни Спирс (из где-то, наверное, полутысячи позиций)! Вот где кладезь апичаток-то! :p
admik
@ 28-10-2005, 19:12
obaldin ну я новостями и архивами документов занимаюсь. тут вот поиск по оным придется делать по полной программе, сам понимаешь что такой поиск происходит не за 5 секунд, а потому проще сначала проанализировать и если есть сомнения что пользователь правильно вводит текст, его информировать.
obaldin
@ 28-10-2005, 21:18
admik, так тебе нужен просто алгоритм спел-чекера, а не обратный "генерации ашипок", как тот, что ищет Set.
Может на сорцы фриварных спелчекеров глянуть?
admik
@ 28-10-2005, 21:51
а мне интерестно посмотреть от обратного
e-i-a-o-u-y
ph - f
w-v
c-k
Какие варианты могут быть ещё?
SonyBrother
@ 31-10-2005, 23:27
QUOTE (obaldin @ 28-10-2005, 18:18) |
admik, так тебе нужен просто алгоритм спел-чекера, а не обратный "генерации ашипок", как тот, что ищет Set. Может на сорцы фриварных спелчекеров глянуть? |
Если есть словарь, то используй ДП для сравнения (динамическое программирование). Работает быстро, если правильно все сделаешь. Сможешь задавать уровень ошибок, чтобы отсекать заранее плохие варианты. ДП удобно применять там, где длина последовательностей не совпадает (ставки, пропуски, подмены), а меру похожести между ними надо знать.