Russian Qt Forum
Сентябрь 25, 2018, 11:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Spell checker (проверка орфографии)  (Прочитано 305 раз)
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« : Июнь 11, 2018, 21:03 »

Привет всем, такая задача.
Есть текст с неправильными словами, которые надо исправить согласно словам в словаре.
Причём:
- для изменения слова допускается только 2 операции: вставка и/или удаление символа;
- если это две вставки или два удаления, то эти два символа не должны находиться рядом;
Если под исправление подходит несколько слов из словаря, то отобразить их в тексте внутри фигурных скобок.

Пример.

Словарь:
rain the his main mainly plain

Текст:
hte mainy lain

В результате должно быть:
the {main mainly} plain

Сначала думал, что достаточно будет использовать алгоритм дистанции Левенштейна. Например, если сравнивать "hte" с "the", то он выдаст длину 2, для "his" тоже. И для самого алгоритма это правильно (т.к. работает заменами), но по заданию подойдёт только "the", т.к. два действия: сначала удаление в начале слова символа "h"  и потом добавление "h" между "t" и "e".
"his" не подойдёт, т.к. для приведения слова "hte" к "his" действий (именно удалений-вставок, а не замен) будет больше.
Может кто сталкивался уже?
« Последнее редактирование: Июнь 11, 2018, 23:30 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.04 секунд. Запросов: 22.