Варианты написания - Википедия - Spelling suggestion

Предложение правописания это особенность многих компьютерное программное обеспечение приложения, которые предлагали правдоподобные замены для слов, которые, вероятно, были написаны с ошибками.

Предложение правописания функции обычно включены в Интернет поисковые системы, текстовые процессоры, средства проверки правописания, медицинская транскрипция, автоматическое переформулирование запроса, и отчеты статистики журнала частоты.

Алгоритмы

Любая программа проверки орфографии должна иметь некоторые данные о словах на целевом языке, будь то общие или специальные (например, медицинский словарь). Это может произойти из-за:

  • А толковый словарь всех известных слов.
  • А текстовый корпус который включает типичный текст с правильным написанием.
  • Список часто используемых слов с ошибками и исправлениями.
  • Журналы ввода текста человеком, например, из популярных поисковый движок. По сути, это краудсорсинг corpus, но предполагается, что будут некоторые орфографические ошибки. Могут быть включены данные о том, когда люди нажимают на вариант написания или делают второй, очень похожий запрос; это создает краудсорсинговое сопоставление слов с ошибками и надежных исправлений.[1]

Список часто используемых слов с ошибками, возможно, включая фразы из нескольких слов, можно просто просмотреть, чтобы увидеть, есть ли в списке какие-либо входные слова или фразы.

Чтобы использовать словарь без ранее существовавшего сопоставления орфографических ошибок с исправлениями, типичным методом является вычисление редактировать расстояние между входным словом и любым заданным словом в словаре. В Расстояние Левенштейна метрика считает "редактированием" вставку, удаление или замену (другой буквой) одной буквы. В Расстояние Дамерау – Левенштейна добавляет транспозиции (перестановка соседних букв). Словарные слова, которые находятся на расстоянии редактирования 1 от входного слова, считаются очень вероятными как исправления, расстояние редактирования 2 - менее вероятным, а расстояние редактирования 3 иногда включается в предложения, а иногда игнорируется.

Текстовый корпус можно представить как словарь известных слов с частотой появления каждого слова. Это можно использовать для сортировки предложений по написанию. Например, если есть несколько вариантов расстояния редактирования 1, слова, которые чаще всего появляются в корпусе, скорее всего, будут нужным исправлением.

Поскольку словарь известных слов очень велик, вычисление расстояния редактирования между входным словом и каждым словом в словаре требует больших вычислительных ресурсов и, следовательно, относительно медленно.[2] Разные структуры данных можно использовать для ускорения поиска в хранилище, например БК-деревья.[3] Более быстрый подход, принятый Петером Норвигом[4] генерирует все перестановки от входного слова всех возможных правок. На слово длины п и алфавит размера а, для расстояния редактирования 1 не более п удаления, п-1 транспозиции, а * п переделки и а * (п + 1) прошивки.[5] Используя только 26 букв в английский алфавит, это даст только 54 * п + 25 поиск в словаре без дубликатов (зависит от конкретных букв в слове). Это относительно мало по сравнению со словарем, состоящим из сотен тысяч слов. Однако для расстояния редактирования 2 и более могут потребоваться десятки или сотни тысяч поисков. Еще одно нововведение, принятое Вольфом Гарбе, известное как SymSpell.[5] («sym» как «симметрия») ускоряет вычисление времени ввода за счет использования того факта, что для входных слов необходимо генерировать только перестановки, включающие удаления, если одни и те же перестановки с удалением вычисляются для каждого словаря.

Описанные до сих пор алгоритмы плохо справляются с правильными словами, которых нет в словаре. Общие источники неизвестных слов в английском языке: составные слова и интонации, Такие как -s и -ing.[4] Их можно адаптировать алгоритмически, особенно если словарь содержит часть речи.

Эти алгоритмы также предполагали, что все ошибки на данном расстоянии равновероятны, что неверно. Ошибки, связанные с орфографией фонетически куда Английская орфография не фонетически распространены, как и ошибки, которые повторяют одну и ту же букву или путают соседние буквы на QWERTY клавиатура. Если доступен большой набор известных орфографических ошибок и исправлений, эти данные можно использовать для создания частотных таблиц для пар букв и типов редактирования; их можно использовать для более точного ранжирования предложений.[4] Также чаще, чем шанс, что слово будет написано на неправильном диалекте по сравнению с остальным текстом, например, из-за Различия в написании американского и британского английского.[4]

Варианты правописания также можно сделать более точными, если одновременно учитывать более одного слова.[4] Последовательности из нескольких слов известны как н-граммы (куда п количество слов в последовательности). Для этой и других целей у Google доступна очень большая база данных n-граммов длиной до 5 слов.[6]

Другие экспериментировали с использованием больших объемов данных и глубокое обучение техники (форма машинное обучение тренировать нейронные сети для исправления орфографии.[7][8]

Рекомендации

  1. ^ Поиск 101 - Вице-президент Google по разработке и ИТ-директор Дуглас Меррилл
  2. ^ Изменить расстояние
  3. ^ Чертовски крутые алгоритмы, часть 1: BK-деревья
  4. ^ а б c d е Как написать корректор орфографии
  5. ^ а б Алгоритм исправления орфографии в 1000 раз быстрее (2012 г.)
  6. ^ Алекс Франц; Торстен Брантс (3 августа 2006 г.). «Все наши N-граммы принадлежат тебе».
  7. ^ Глубокое правописание
  8. ^ Алгоритмы и методы проверки орфографии