Языконезависимая технология исправления опечаток, с возможностью верификации результата
LANGUAGE INDEPENDENT TECHNOLOGY OF TYPOS CORRECTION, WITH THE POSSIBILITY OF VERIFICATION RESULT

В современном мире остро стоит проблема классификации текстовых данных. В области DLP (Data Leak Prevention) - технологий по предотвращению утечек конфиденциальной информации из информационной системы вовне, классификация данных необходима для упорядочивания текстовой информации, а так же для предотвращения утечек информации на заданные темы, например, секретных документов, корпоративной информации и иных конфиденциальных документов (баз данных клиентов, выгрузок баз из корпоративных систем, персональных данных клиентов, сотрудников, контрагентов, коммерческая тайна, ноу-хау, производственные секреты, медицинская тайна и т.д.).
В текстах, набранных человеком, обычно довольно значимая доля опечаток. Например, по исследованиям Яндекса (https://yandex.ru/company/researches/2009/ya_search_2009/#toc7) доля опечаток в поисковых запросах - 13% и это с учетом подсказок поисковика. В поисковиках без подсказок - около 18%.
Для более точной классификации текстовых данных необходим способ исправления случайных опечаток и преднамеренных искажений слов (например, замена кириллических букв аналогичными латинскими). Предлагаемое решение позволяет повысить качество выделения из анализируемого текста слов за счет того, что неправильно написанные слова так же будут выделяться, тем самым повысить полноту и точность работы классификатора.
Известен способ проверки орфографии в сети (патент США «Network-based spell checker», US 20020194229 А1, дата публикации 19.12.2001). Указанный способ определяет незнакомое слово, генерирует, по меньшей мере, одно альтернативное написание незнакомого слова, чтобы создать вариант слова, учитывая незнакомое слово и вариант, по меньшей мере, одного слова в поисковой системе, выполненный с возможностью поиска частоты использования незнакомого слова и, по меньшей мере, один вариант слова и представляет результаты поиска слова для пользователя.
Указанный способ определяет возможность выявления орфографических ошибок в тексте и замену неправильных слов на «условно правильные», существующие в базе данных слов или в Интернете, или добавлять свой вариант правильного написания слова в базу данных, не осуществляет замену кириллических букв латинскими и наоборот.
В данном способе опечатки ищутся для всех слов, в заявляемом способе - только для слов, которые используются как термины для классификации, т.е. в заявленном способе заявитель мы не производит лишней работы, что в итоге приводит к тому, что заявленный алгоритм для решения поставленных задач работает быстрее.
Известен способ фоновой проверки орфографии в документе (патент США «Method for background spell checking a word processing document», US 5649222, дата публикации 15.07.1997). Указанный способ выполняет проверку орфографии в документе в фоновом режиме во время периодов ожидания, когда текстовый процессор находится в режиме редактирования (т.е. когда пользователь не печатает или не выполняет команды).
Для работы данного изобретения нужен текстовый процессор, кроме того метод ориентирован на статический текст. В заявляемом изобретении опечатки исправляются «на лету» в потоке поступающего на анализ текста.
Таким образом, существует потребность в улучшении качества классификации текстовых данных за счет создания сравнительно быстрого и универсального способа, который позволил бы повысить качество выделения из анализируемого текста слов за счет того, что неправильно написанные слова так же будут выделяться, тем самым повысить полноту и точность работы классификатора, улучшить результаты работы классификатора, уменьшить или полностью исключить доли полученных опечаток в набираемых человеком текстах, и преодолеть недостатки известных решений.
Для работы заявленного алгоритма необходимы следующие данные:
1. Список слов (и/или терминов) используемых при классификации - онтология, которая необходима для реализации эффективного поиска.
2. Желательно, но не обязательно морфологические словари различных языков.
Шаги алгоритма следующие:
1. На вход в систему анализа поступает текст.
2. Текст разбивают на лексемы (по небуквенным символам). Лексема - слово, выражение, оборот речи, в лингвистике - слово как абстрактная единица морфологического анализа. В одну лексему объединяются разные парадигматические формы (словоформы) одного слова.
3. Для каждой лексемы выполняют следующие действия:
1) Проверяют словарность лексемы, т.е. ищут данное сочетание букв во всех морфологических словарях. Если словарей нет, то пропускают этот шаг.
2) Если предложенной лексемы нет ни в одном морфологическом словаре, либо в систему не загружены словари, то переходят к п. 3, иначе заканчивают обработку.
3) Из онтологии выбирают все термины, длина которых на 1 меньше, равна, либо на 1 больше длинны предложенной лексемы.
4) Для каждого термина из п. 3.3 считают Расстояние Левенштейна до текущей лексемы. Это минимальное количество операций вставки одного символа, удаления одного символа и замены одного символа на другой, необходимых для превращения одной строки в другую.
5) Если Расстояние Левенштейна равно 1, то данный термин помещают в список найденных терминов.
4. На выходе алгоритма получают список терминов, для которых в анализируемом тексте есть лексемы, отстающие от них на Расстояние Левенштейна, равное 1 и не являющиеся словарными формами данного языка.
Полученный результат можно использовать для повышения качества классификации текстов, уменьшения или полного исключения доли полученных опечаток в набираемых человеком текстах.
Кроме того, так же сказывается и окружение данных. В мессенджерах опечаток может быть еще больше, так как пользователи не считают эту переписку деловой и относятся к ней без должного внимания. Т.е. данный способ применим и для классификации текста в мессенджерах. При этом, например, в системах DLP довольно часто нужно классифицировать и переписку в мессенджерах.