В программном обеспечении проверка орфографии (или проверка орфографии или проверка орфографии ) — это программная функция , которая проверяет наличие ошибок в тексте . Функции проверки орфографии часто встроены в программное обеспечение или службы, такие как текстовый процессор , почтовый клиент , электронный словарь или поисковая система .
У глаза есть проверка орфографии,
Она пришла с моим гороховым морем.
Он самолет подветренных отметок четыре моих ревю
Мисс Стейки Я могу завязать узел моря.
Глаз ударяет по причалам и печатает жужжащий
И вес четыре это два сказать
Погода глаз пишу весло неправильно
Он говорит мне прямо вес.
Глаз пробежал это стихотворение бросил его,
Твой берег действительно рад два нет.
Его варьируется отполированный в его весе.
Мой чек позвонил мне шить.
Чек - благословенная вещь,
Он замораживает тисовые залежи тимьяна.
Он помогает мне исправить все стили выпрямления,
И помогает мне, когда глаз изморозь.
Каждая потертость появляется на моем экране
Глаз скрученный слишком би джоуль.
Чек льется на каждое слово
Два правила орфографии суммы чека.
Базовая проверка орфографии выполняет следующие процессы:
Неясно, дает ли морфологический анализ, допускающий множество форм слова в зависимости от его грамматической роли, существенные преимущества для английского языка, хотя его преимущества для высокосинтетических языков, таких как немецкий, венгерский или турецкий, очевидны.
В дополнение к этим компонентам пользовательский интерфейс программы позволяет пользователям одобрять или отклонять замены, а также изменять работу программы.
Проверки орфографии могут использовать алгоритмы приблизительного сопоставления строк , такие как расстояние Левенштейна , для поиска правильного написания неправильно написанных слов. [1] Альтернативный тип проверки орфографии использует исключительно статистическую информацию, такую как n-граммы , для распознавания ошибок вместо правильно написанных слов. Этот подход обычно требует больших усилий для получения достаточной статистической информации. Основные преимущества включают необходимость в меньшем объеме памяти во время выполнения и возможность исправления ошибок в словах, которые не включены в словарь. [2]
В некоторых случаях программы проверки орфографии используют фиксированный список ошибок и предложений по их исправлению; этот менее гибкий подход часто используется в методах исправления на основе бумажных текстов, таких как см. также статьи энциклопедий.
Алгоритмы кластеризации также использовались для проверки орфографии [3] в сочетании с фонетической информацией. [4]
В 1961 году Лес Эрнест , возглавлявший исследования этой перспективной технологии, посчитал необходимым включить первую программу проверки орфографии, которая имела доступ к списку из 10 000 приемлемых слов. [5] Ральф Горин, аспирант Эрнеста в то время, создал первую настоящую программу проверки орфографии, написанную как прикладная программа (а не исследовательская) для общего английского текста: SPELL для DEC PDP-10 в Лаборатории искусственного интеллекта Стэнфордского университета в феврале 1971 года. [6] Горин написал SPELL на языке ассемблера для более быстрой работы; он создал первый корректор орфографии, ища в списке слов правдоподобные правильные варианты написания, которые отличаются одной буквой или соседними перестановками букв, и предоставляя их пользователю. Горин сделал SPELL общедоступным, как это было сделано с большинством программ SAIL (Стэнфордская лаборатория искусственного интеллекта), и вскоре он распространился по всему миру через новый ARPAnet, примерно за десять лет до того, как персональные компьютеры стали общедоступными. [7] SPELL, его алгоритмы и структуры данных вдохновили программу ispell для Unix .
Первые системы проверки орфографии были широко доступны на мэйнфреймах в конце 1970-х годов. Группа из шести лингвистов из Джорджтаунского университета разработала первую систему проверки орфографии для корпорации IBM. [8]
Генри Кучера изобрел один для машин VAX компании Digital Equipment Corp в 1981 году. [9]
Программа International Ispell, обычно используемая в Unix, основана на SPELL RE Gorin. Она была преобразована в C Пейсом Уиллисоном в MIT. [10]
Проект GNU имеет свою проверку орфографии GNU Aspell . Главное улучшение Aspell заключается в том, что он может точнее предлагать правильные альтернативы для неправильно написанных английских слов. [11]
Из-за неспособности традиционных программ проверки орфографии проверять слова в сложных флективных языках венгр Ласло Немет разработал Hunspell — программу проверки орфографии, которая поддерживает агглютинативные языки и сложные составные слова. Hunspell также использует Unicode в своих словарях. [12] Hunspell заменил предыдущий MySpell в OpenOffice.org в версии 2.0.2.
Enchant — еще один общий проверяльщик орфографии, производный от AbiWord . Его цель — объединить программы, поддерживающие разные языки, такие как Aspell, Hunspell, Nuspell, Hspell (иврит), Voikko (финский), Zemberek (турецкий) и AppleSpell, в одном интерфейсе. [13]
Первые программы проверки орфографии для персональных компьютеров появились в 1980 году, например, «WordCheck» для систем Commodore, выпущенный в конце 1980 года как раз к моменту выхода рекламы в печать в январе 1981 года. [14] Такие разработчики, как Мария Мариани [8] и Random House [15], бросились выпускать OEM- пакеты или продукты для конечных пользователей на быстрорастущий рынок программного обеспечения. На ПК до Windows эти программы проверки орфографии были автономными программами, многие из которых можно было запускать в режиме terminate-and-stay-resident из текстовых процессоров на ПК с достаточным объемом памяти.
Однако рынок автономных пакетов просуществовал недолго, так как к середине 1980-х годов разработчики популярных текстовых процессоров, таких как WordStar и WordPerfect, включили в свои пакеты средства проверки орфографии, в основном лицензированные у вышеуказанных компаний, которые быстро расширили поддержку с английского на многие европейские и в конечном итоге даже азиатские языки . Однако это потребовало повышения сложности морфологических процедур программного обеспечения, особенно в отношении сильно агглютинативных языков, таких как венгерский и финский . Хотя размер рынка текстовых процессоров в такой стране, как Исландия, мог не оправдать инвестиции во внедрение средства проверки орфографии, такие компании, как WordPerfect, тем не менее стремились локализовать свое программное обеспечение для как можно большего числа национальных рынков в рамках своей глобальной маркетинговой стратегии.
Когда Apple разработала «системную проверку орфографии» для Mac OS X, чтобы «операционная система взяла на себя исправление орфографии», [16] это было впервые: «не нужно было поддерживать отдельную проверку орфографии для каждой» программы. [17] Проверка орфографии Mac OS X охватывает практически все встроенные и сторонние приложения.
VT Speller от Visual Tools , представленный в 1994 году, был «разработан для разработчиков приложений, поддерживающих Windows». [18] [19] Он поставлялся со словарем, но имел возможность создавать и включать использование вторичных словарей. [20]
Веб-браузеры, такие как Firefox и Google Chrome, предлагают поддержку проверки орфографии с помощью Hunspell . До использования Hunspell, Firefox и Chrome использовали MySpell и GNU Aspell , соответственно. [21]
Некоторые программы проверки орфографии имеют отдельную поддержку медицинских словарей, что помогает предотвратить медицинские ошибки. [22] [23] [24]
Первые средства проверки орфографии были «верификаторами», а не «корректорами». Они не предлагали никаких предложений для неправильно написанных слов. Это было полезно для опечаток, но не было так полезно для логических или фонетических ошибок. Проблема, с которой столкнулись разработчики, заключалась в трудности предложения полезных предложений для неправильно написанных слов. Для этого требуется сокращение слов до скелетной формы и применение алгоритмов сопоставления с образцом.
Может показаться логичным, что в случае с словарями проверки орфографии «чем больше, тем лучше», чтобы правильные слова не помечались как неправильные. Однако на практике оптимальный размер для английского языка, по-видимому, составляет около 90 000 записей. Если их больше, неправильно написанные слова могут быть пропущены, поскольку их принимают за другие. Например, лингвист может определить на основе корпусной лингвистики , что слово baht чаще является неправильным написанием bath или bat , чем ссылкой на тайскую валюту. Следовательно, обычно было бы полезнее, если бы несколько человек, пишущих о тайской валюте, были немного неудобны, чем если бы орфографические ошибки гораздо большего числа людей, обсуждающих baths, были проигнорированы.
Первые программы проверки орфографии MS-DOS в основном использовались в режиме проверки из текстовых пакетов. После подготовки документа пользователь сканировал текст в поисках ошибок. Однако позже пакетная обработка была предложена в таких пакетах, как недолго просуществовавший CoAuthor от Oracle , и позволяла пользователю просматривать результаты после обработки документа и исправлять только те слова, которые были заведомо неправильными. Когда памяти и вычислительной мощности стало достаточно, проверка орфографии выполнялась в фоновом режиме в интерактивном режиме, как это было в случае с программой Spellbound, выпущенной Sector Software в 1987 году, и Microsoft Word с Word 95.
Проверки орфографии стали более сложными; теперь они способны распознавать грамматические ошибки. Однако даже в лучшем случае они редко обнаруживают все ошибки в тексте (например, ошибки омофонов ) и будут отмечать неологизмы и иностранные слова как орфографические ошибки. Тем не менее, проверки орфографии можно рассматривать как тип помощи при письме на иностранном языке , на который могут положиться изучающие неродной язык, чтобы обнаружить и исправить свои орфографические ошибки в целевом языке. [25]
Английский язык необычен тем, что большинство слов, используемых в официальном письме, имеют единое написание, которое можно найти в типичном словаре, за исключением некоторых жаргонизмов и измененных слов. Во многих языках слова часто объединяются в новые комбинации слов. В немецком языке составные существительные часто образуются из других существующих существительных. Некоторые письменности не отделяют одно слово от другого, требуя алгоритмов разделения слов. Каждый из них представляет уникальные проблемы для проверки орфографии неанглоязычных языков.
Были проведены исследования по разработке алгоритмов, способных распознавать неправильно написанные слова, даже если само слово есть в словаре, на основе контекста окружающих слов. Это не только позволяет отлавливать такие слова, как в стихотворении выше, но и смягчает пагубное влияние увеличения словарей, позволяя распознавать больше слов. Например, baht в том же абзаце, что и Thai или Thailand, не будет распознаваться как неправильное написание bath . Наиболее распространенным примером ошибок, отлавливаемых такой системой, являются омофонные ошибки, такие как выделенные жирным шрифтом слова в следующем предложении:
Самый успешный алгоритм на сегодняшний день - это " Winnow -based spelling Correcting Algorithm" Эндрю Голдинга и Дэна Рота , [26] опубликованный в 1999 году, который способен распознавать около 96% контекстно-зависимых орфографических ошибок, в дополнение к обычным несловесным орфографическим ошибкам. Контекстно-зависимые проверки орфографии появились в ныне несуществующих приложениях Microsoft Office 2007 [27] и Google Wave . [28]
Программы проверки грамматики пытаются исправить проблемы с грамматикой, выходящие за рамки орфографических ошибок, включая неправильный выбор слов.
VT-SPELLER