![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Здравствуйте, пишу текстовый редактор, вот сделал проверку орфографии, но осталось сделать последнюю фичу контекстное меню с выпадающим списком возможных замен, может у кого нить есть какие то наработки в этом направлении или ссылку на материалы по данной теме
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Как же ты ее сделал если у тебя нет списка правильных слов? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Insert, привет. Я как раз тоже сейчас этим занимаюсь, нашёл что такое можно реализовать с помощью расстояния Левеннштейна.
Вот ссылка по теме: http://itman.narod.ru/source/source.html Это сообщение отредактировал(а) MaXL - 14.4.2007, 01:58 -------------------- MaXL |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
MaXL, так нада посмотреть, если будут какие то результаты у меня я тут отпишусь.
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 2 Всего: 317 |
Собери в словарь в trie, затем ищи вычисляя расстояние Левенштейна. В идеале разным операциям можно дать разные веса, нпаример ошибкам синхронизации можно дать вес выше чем остальным. Сортируешь список по расстоянию, берёшь первые 5.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Святогор |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.8.2006 Репутация: нет Всего: нет |
MaXL,
Ну а вообще есть ещё инфа по-поводу проверки орфографии ? Мне для англ. языка нужно. |
|||
|
||||
| MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Святогор, помоему реализация этого алгоритма не операется на конкретные языки(русский, китайский, немецкий, английский...). Просто какие ты ему входные данные подкинешь с таким он и будет работать. Я ещё пока с этим алгоритмом не занимался, так в данный момент перекинулся на кое - что другое, но вскоре к этому опять вернусь.
Вот ещё ссылка: www.levenshtein.net/. P.S. да и как мне кажется по этому вопросу можно обратиться в раздел "Алгоритмы" этого форума, уверен что помогут. -------------------- MaXL |
|||
|
||||
| Insert |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Так так есть кое какие результаты, вот нашел две реализации неточного поиска, один вычисляет расстояние Левинштейна, другой возвращает в % похожесть одной строки на другую(взят с vingard)
Расстояние Левинштейна:
Вот который возвращает похожесть в процентах:
Так вот Sardar, писал что неплохо было бы сформировать из словаря префиксное дерево, можно об этом поподробнее... кстати в моем случае все содержимое словаря недоступно, есть только функция на проверку наличия слова в словаре, чувствую этого будет маловато, может есть ещё варианты куда двигаться? --------------------
пьяный русский кодер практически непобедим |
||||
|
|||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
В моем словаре 180 000 оснований слов, если их перебирать и для каждого вычислять расстояние Левинштейна, то это будет очень долго, есть какие нить варианты ускорить поиск. Как я понял, если искать по префиксному дереву, то будет намного быстрее, но как весь словарь забить в него?
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |