Система перевірки орфографії
В обчислювальній техніці система перевірки орфографії (т. зв. спелчекер) — це допоміжна програма, яка шукає в тексті документа слова, написані неправильно. Знайдені помилки позначаються спеціальним чином — зазвичай для цього використовується червоне підкреслення. У деяких випадках користувачеві, окрім зазначення місць можливих помилок, надається можливість вибрати один із правильних варіантів написання.
Системи перевірки орфографії можуть бути автономні (як правильно, у такому разі передбачено можливість інтеграції з іншими програмами) або входити як окремий модуль до складу іншої програми, зокрема текстового процесора, поштового клієнта, електронного словника, пошукової системи тощо.
Зазвичай система перевірки орфографії виконує такі дії.
- Зчитує текст і виокремлює слова, з яких він складається.
- Порівнює кожне слово тексту зі списком правильно написаних слів (тобто словником). Такий список, окрім власне слів, може містити додаткову інформацію, як-от місця, де може бути знак переносу, лексичні й граматичні атрибути тощо.
- Додаткова дія, особливості якої залежать від мови: алгоритм підтримки морфології. Система має враховувати не тільки початкову форму слова, а й усі можливі його словоформи — множину, відмінки, стягнення тощо. У мовах із розвинутою морфологією (як-от таких, яким притаманна аглютинація, відмінювання тощо) цей процес може бути вельми складним.
Користь від морфологічного аналізу — тобто перевірка чималої кількості словоформ — у простих мовах на кшталт англійської не очевидна, але користь для синтетичних мов, як-от німецька, угорська, українська, турецька — безсумнівна.
Як додаток до цих компонентів, інтерфейс програм дає користувачам змогу ухвалювати або відкидати запропоновані заміни і змінювати спосіб роботи програми.
Існують також альтернативні типи систем перевірки орфографії, у яких для виявлення помилок замість правильно написаних слів використовується виключно статистична інформація, як-от N-грами. Зазвичай такий підхід потребує чималих зусиль для отримання достатньої кількості статистичної інформації. Його основними перевагами є менша потреба в оперативній пам'яті та спроможність виправляти помилки в словах, яких немає у словнику[1] .
У деяких системах перевірки орфографії використовуються списки слів із неправильним написанням і пропозиції для таких слів. Такому підходу бракує гнучкості; найчастіше його використовують під час виправлень у паперових документах, як-от у розділах «Див. також» в енциклопедіях.
Для перевірки орфографії використовують також алгоритми кластерного аналізу[2] в поєднанні з фонетичною інформацією[3].
Перші системи із функціями перевірки орфографії з'явилися в 1957 р. — зокрема системи перевірки орфографії для точкових зображень курсивного письма та спеціальні програми, які замість помилкових записів шукали записи в базах даних.
В 1961 р. Лестер Ернес[en]] (Les Earnest), який очолював дослідження цієї перспективної технології, вважав за потрібне створити першу систему перевірки орфографії, яка оперувала списком із 10 000 допустимих слів[4]. Ральф Горін (Ralph Gorin), у той час аспірант Ернеста, створив першу справжню програму-спелчекер, яку можна було застосувати до будь-якого англійського тексту взагалі, а не тільки в рамках дослідження, — SPELL для DEC PDP-10 у Лабораторії штучного розуму в Стенфордському університеті (лютий 1971 р.)[5]. Горін написав код SPELL на асемблері, аби пришвидшити її роботу. Він створив орфографічний коректор, який складав список слів, що відрізнялися від даного слова лише однією літерою або перестановкою літер; цей список демонструвався користувачеві.
Горін зробив програму SPELL загальнодоступною, як і більшість програм, створених у Лабораторії SAIL (Stanford Artificial Intelligence Laboratory). Невдовзі вона поширилася всім світом через мережу ARPAnet. Це сталося за 10 років до того, як на ринку з'явилися доступні персональні комп'ютери[6]. SPELL, використані в ній алгоритми й структури даних стимулювали розвиток програми Ispell в Unix.
Перші системи перевірки орфографії широко поширилися на обчислювальних машинах наприкінці 1970-х років. Команда із шести лінгвістів із Джорджтаунського університету розробили першу систему перевірки орфографії для корпорації IBM[7].
Перші системи перевірки орфографії для персональних комп'ютерів з'явилися в 1980 р. на комп'ютерах CP/M та TRS-80. Невдовзі після цього, в 1981 р., було створено орфографічні пакети для IBM PC. Чимало розробників, зокрема Марія Маріані (Maria Mariani)[7], Random House[8], Soft-Art, Microlytics, Proximity, Circle Noetics та Reference Software, поширювали комплекти OEM-програм та продукти для кінцевих користувачів на ринку програмного забезпечення, який швидко зростав, — здебільшого для персональних комп'ютерів (PC), але також і для Apple Macintosh, VAX та UNIX. На персональних комп'ютерах ці системи перевірки орфографії працювали автономно; більшість із них за наявності достатньої пам'яті могли працювати як резидентні програми (TSR) в комплектах програм для обробки текстів на PC.
Утім, ці програми недовго залишалися на ринку окремими програмами: у середині 1980-х рр. розробники популярних текстових редакторів, як-от WordStar і WordPerfect, вбудували системи перевірки орфографії, здебільшого за ліцензіями описаних вище компаній, у розроблювані ними пакети програм. Невдовзі ці системи почали підтримувати не тільки англійську, а й інші європейські, а згодом навіть і азійські мови. Проте процес морфологічної обробки підвищив вимоги до програмного забезпечення, особливо в аглютинативних мовах на кшталт угорської й фінської. Хоча розмір ринку програмного забезпечення для обробки текстів у таких країнах, як, наприклад, Ісландія, не виправдовував інвестиції в розробку систем перевірки орфографії, маркетингова політика деяких компаній, як-от WordPerfect, утім, передбачала локалізацію програм для якнайбільшої кількості ринків.
У веббраузері Firefox 2.0 передбачено підтримку перевірки орфографії для контенту, створюваного користувачем, як-от під час редагування й набирання тексту у вікі, у вебслужбах електронної пошти на багатьох сайтах, у блогах і на сайтах соціальних мереж. У веббраузерах Google Chrome, Konqueror та Opera, у поштовому клієнті Kmail та програмі для обміну миттєвими повідомленнями Pidgin також є підтримка перевірки орфографії, здійснювана засобами модуля GNU Aspell. В операційній системі Mac OS X перевірка орфографії здійснюється на рівні системи, практично в усіх вбудованих програмах і навіть у програмах сторонніх виробників. Існують також онлайн системи перевірки орфографії українських вебсайтів.
Перші спелчекери слугували радше для перевірки, ніж для виправлення: вони не пропонували варіантів замін для неправильно написаних слів. Вони вміли шукати друкарські помилки, але не вміли — логічні й фонетичні. Перед розробниками постало складне питання: як для неправильно написаного слова відібрати із множини можливих виправлень найімовірніші. Потрібно було виявляти структуру слова і застосовувати до неї алгоритми відповідності певним шаблонам.
Щодо розміру словника «дозволених», тобто граматично правильно написаних слів, у теорії здається логічним принцип «що більше, то краще»: що більше «правильних» слів, то менше правильно написаних слів система позначить як помилкові. На практиці ж виявилося, що оптимальним розміром словника (для англійської мови) є 90 000 слів. Якщо словник більше, система починала пропускати неправильно написані слова, оскільки ці «неправильні» слова часто виявлялися реально існуючими у специфічних областях. Наприклад, на основі аналізу корпусу мови виявилося, що слово BAHT — це, найімовірніше, неправильно написане слово BATH або BAT, і дуже рідко йдеться саме про валюту Таїланду — тайський бат (THAI BATH). Тобто, було б доречніше, щоб та невелика кількість людей, які пишуть про тайські бати, стикнулася з помилковими спрацьовуваннями, ніж щоб велика кількість людей, які допустили помилку в словах BATH та BAT, проґавили свої помилки.
Перші системи перевірки орфограми в MS-DOS використовувалися переважно в режимі перевірки текстових фрагментів. Підготувавши документ, користувач сканував текст, шукаючи помилки правопису. Пізніше в таких пакетах програм, як CoAuthor компанії Oracle, який недовго пробув на ринку, додали пакетну обробку. Це дало користувачеві змогу переглянути результати після того, як документ був оброблений, і виправити лише ті слова, які вважалися написаними помилково. Коли об'єм пам'яті та потужність процесорів збільшилися, перевірку правопису почали виконувати у фоновому режимі в інтерактивний спосіб, як-от у програмі Spellbound, випущеній в 1987 році, та Microsoft Word, починаючи з версії Word 95.
Останніми роками системи перевірки орфографії стають дедалі досконалішими; деякі здатні розпізнавати й прості граматичні помилки. Однак навіть у кращих випадках вони рідко вловлюють усі помилки в тексті (наприклад, помилки у словах-омофонах) і позначать неологізми та іноземні слова як написані неправильно. Утім, системи перевірки орфографії можна вважати різновидом допомоги для писання іноземною мовою, завдяки якому учні, які не є носіями мови, отримують змогу виявляти й виправляти неправильно написані слова цільовою мовою.
Англійська мова примітна тим, що більшість слів, які використовуються в офіційному письмі, мають єдине написання, яке можна знайти у звичайному словнику (за винятком хіба що деяких жаргонізмів і модифікованих слів). У багатьох інших мовах слова часто поєднуються, утворюючи нові слова. Приміром, у німецькій мові складні іменники часто утворюються з інших існуючих іменників.
У деяких системах писемносіт не вдається чітко відокремити одне слово від іншого. Така особливість вимагає додаткових алгоритмів розділення слів.
Кожна з цих проблем створює унікальні виклики для неангломовних систем перевірки орфографії.
Проводилися дослідження з розробки алгоритмів, здатних розпізнавати неправильно написане слово на основі контексту — інших слів у тому ж реченні або абзаці. Такі алгоритми дають змогу не лише виловлювати слова з помилками, а й пом'якшують негативний ефект від розширення словників, дозволяючи розпізнавати більшу кількість слів. Наприклад, слово baht не розпізнаватиметься як неправильно написане bath, якщо в тому ж абзаці зустрічаєтються слова на кшталт Thai or Thailand.
Найпоширенішим прикладом помилок, виявлених такою системою, є помилки з омофонами, як-от виділені жирним шрифтом слова в такому реченні:
Their coming too sea if its reel.
Найуспішнішим алгоритмом на сьогоднішній день є «Алгоритм виправлення орфографії на основі Winnow»[9] Ендрю Голдінга (Andrew Golding) та Дена Рота (Dan Roth), опублікований у 1999 році, який здатен розпізнавати близько 96 % контекстно-залежних орфографічних помилок, на додаток до звичайних несловесних орфографічних помилок.
Контекстно-залежна перевірка орфографії з'явилася в Microsoft Office 2007[10], а також застосовувалася в неіснуючому нині Google Wave[11].
Існують також системи перевірки граматики, які намагаються знаходити проблеми з граматикою, що виходять за рамки орфографічних помилок, зокрема неправильний вибір слів.
- ↑ U.S. Patent 6618697, Method for rule-based correction of spelling and grammar errors
- ↑ de Amorim, R.C.; Zampieri, M. (2013) Effective Spell Checking Methods Using Clustering Algorithms. [Архівовано 17 серпня 2017 у Wayback Machine.] Proceedings of Recent Advances in Natural Language Processing (RANLP2013). Hissar, Bulgaria. p. 172—178.
- ↑ Zampieri, M.; de Amorim, R.C. (2014) Between Sound and Spelling: Combining Phonetics and Clustering Algorithms to Improve Target Word Recovery. Proceedings of the 9th International Conference on Natural Language Processing (PolTAL). Lecture Notes in Computer Science (LNCS). Springer. p. 438—449.
- ↑ Earnest, Les. The First Three Spelling Checkers (PDF). Stanford University. Архів оригіналу (PDF) за 22 жовтня 2012. Процитовано 10 жовтня 2011. [Архівовано 2012-10-22 у Wayback Machine.]
- ↑ Peterson, James (Dec 1980). Computer Programs for Detecting and Correcting Spelling Errors (PDF). Процитовано 18 лютого 2011.
- ↑ Earnest, Les. Visible Legacies for Y3K (PDF). Архів оригіналу (PDF) за 20 липня 2011. Процитовано 18 лютого 2011. [Архівовано 2011-07-20 у Wayback Machine.]
- ↑ а б Georgetown U Faculty & Staff: The Center for Language, Education & Development. Архів оригіналу за 5 лютого 2009. Процитовано 18 грудня 2008., citation: «Maria Mariani… was one of a group of six linguists from Georgetown University who developed the first spell-check system for the IBM corporation.»
- ↑ Advertisement (November 1982). The Spelling Bee Is Over. PC Magazine. с. 165. Процитовано 21 October 2013.
- ↑ Golding, Andrew R.; Roth, Dan (1999). Journal Article. Machine Learning. SpringerLink. 34: 107—130. doi:10.1023/A:1007545901558.
- ↑ Walt Mossberg (4 січня 2007). Review. Wall Street Journal. Процитовано 24 вересня 2010.
- ↑ Google Operating System. googlesystem.blogspot.com. 29 травня 2009. Процитовано 25 вересня 2010. Google's Context-Sensitive Spell Checker. 29 травня 2009. Процитовано 25 вересня 2010.