Проверка правописания


Сервис Проверка правописания предназначен для проверки правильности написания слов. На вход сервиса подается электронный текст, который требует проверки. По нажатию кнопки “Проверить” сервис сравнивает слова текста со словами в подключенных словарях. Найденные в словарях входные слова квалифицирует как написанные правильно и отбрасывает. Не найденные в словаре входные слова (т. е. неизвестные сервису) сервис квалифицирует как написанные неправильно, и выводит в виде списка в алфавитном порядке. Таким образом на выходе пользователь получает список неизвестных сервису слов, соответствий которым не было найдено в словарях, и которые, достоверно, и содержат ошибки. 

 

Основные термины и понятия

Орфография, правописание – единообразие передачи слов и грамматических форм письменной речи. Также это сбор правил, который обеспечивает это единообразие.

Вычитка – проверка написанного текста перед отправкой заказчику, публикацией или другим способом использования.

 

Практическая ценность

Сервис имеет широкий круг применения и чрезвычайную актуальность. Качественно вычитанные тексты – на настоящий момент это неотъемлемый элемент работы требование для многих сфер занятий и коммуникации между людьми и учреждениями. Также орфографически правильный электронный текст – требование к правильному функционированию компьютерных систем человеко-машинных коммуникаций. Актуальность развития данного сервиса обусловливается также осложненным доступом к средствам обработки белорусскоязычного текста. Так, существует любительский пакет проверки правописания для MS Office Word, но он требует специального поиска, скачивания и установки [1]. Вычитка электронного текста машинными средствами остается всегда актуальной, поскольку проверка текстов пользователем вручную почти гарантировано допускает пропуск ошибок.

 

Особенности сервиса

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

 

Таблица 1 – Характеристика словарей, которыми пользуется сервис “Проверка правописания”

Включены по умолчанию Название словаря Комментарии Язык словаря
Да SBM1987 Согласно публикации “Слоўнік беларускай мовы. Арфаграфія. Арфаэпія. Акцэнтуацыя. Словазмяненне / пад рэд. М.В. Бірылы. – Мінск, 1987.” белорусский
Да SBM2008 Словарь белорусского языка согласно Belarusian Grammar Database (bnkorpus.info). Authors: Symon Kakora, Aleś Bułojčyk, Uladź Koščanka. На условиях лицензии CC BY-SA 4.0 белорусский
Да SBM2012initial Начальные формы согласно публикации “Слоўнік беларускай мовы. / навук. рэд. А.А. Лукашанец, В.П. Русак. – Мінск : Беларус. навука, 2012.” белорусский
Да ZALIZNIAK Согласно публикации “Грамматический словарь русского языка: Словоизменение / А.А. Зализняк. — Москва : Русский язык, 1980. — 880 c.” русский
Да CMU Согласно “Carnegie Mellon University Pronouncing Dictionary английский
Нет NEW Новые слова для сервиса “Синтезатор речи по тексту белорусский
Нет S2016_01 Словарь доступен по спасылцы белорусский
Нет S2016_02 Словарь доступен по спасылцы русский
Да S2016_03 Словарь доступен по спасылцы белорусский

Некоторые из перечисленных словарей находятся в процессе постоянного пополнения и развития.

Среди нескольких существующих на данный момент сервисов проверки белорусского правописания только сервис “Проверка правописания” создан на основе проведенной предварительно серьёзной научной работы, поскольку был разработан как один из этапов предварительной обработки и нормализации текста для синтезатора речи.

Стоит отметить, что данный сервис охватывает орфографический, но не пунктуационный раздел правописания. Правильность согласования слов и расстановки знаков препинания находится вне компетенции данного сервиса и остается за пользователем или другими сервисами, которые также задействованы в Методике вычитки электронных текстов большого размера при помощи сервисов платформы www.corpus.by. Работа данных сервисов и методики опробована во многих проектах Лаборатории распознавания и синтеза речи и находится в состоянии постоянного развития и совершенствования.

Сервис “Проверка орфографии” способен обрабатывать как небольшие тексты от одного или нескольких слов, так и тексты большого размера. Например, сервисом было успешно проверено правописание законодательных кодексов и литературных произведений объёмом около 470 000 символов с пробелами.

Первоначально данный сервис был разработан как один из этапов предварительной обработки и нормализации текста для белорусско- и русскоязычного сервиса “Синтезатор речи по тексту”.

 

Описание интерфейса пользователя

Внешний интерфейс сервиса представлен на рисунке 1.

 

Рисунок 1 – Графический интерфейс сервиса “Проверка правописания”

 

Интерфейс содержит следующие области:

  • поле ввода электронного текста;
  • поле “Игнорировать слова” – поле ввода слов, которые должны игнорироваться при проверке;
  • поле “Максимум контекстов” – задать максимальное количество контекстов неизвестных слов;
  • поле выбора словарей;
  • кнопка “Проверить”, которая запускает обработку и позволяет получить результаты в поле их вывода.

После обработки текста сервисом в поле вывода результатов пользователь получает следующие списки информации (рисунок 2):

  • “Слова и с кириллическими, и с латинскими символами (количество)” – содержит слова, в которых одновременно применены и кириллические, и латинские символы, что вероятнее всего является ошибочным написанием;
  • “Укажите слова без ошибок и кликните «Перепроверить!»” – содержит неизвестные сервису слова, в которых, вероятно, содержится ошибка, что является основным результатом работы сервиса, необходимым пользователю;
  • “Найдено уникальных написаний слов (количество)” – количество слов в исходном электронном тексте.

В правой колонке выделены латинские символы в словах с кириллическими и латинскими символами, а также даются предложения по правильному написанию неизвестных сервису слов.

Пользовательский сценарий работы с сервисом

Примечание: для большего качества проверки белорусскоязычного текста сервисом “Проверка правописания” рекомендовано в начале проверить текст через сервис “Проверка правописания «Ў»”, прочитав справку по пользованию им.

  1. На странице сервиса ввести в поле ввода текст, который требует проверки.
  2. В поле “Игнорировать слова” по желанию ввести слова, которые не имеют нужды в проверке и будут игнорироваться сервисом. Например, это заранее неизвестные сервису специфические слова, которые часто используются в узкоспециальном тексте: аббревиатуры, терминология и т.д., такие как УДК.
  3. В поле “Максимум контекстов” ввести желательное количество контекстов либо оставить значение 10, которое стоит по умолчанию.
  4. В поле выбора словарей выбрать нужные словари, ставя или снимая значок напротив словаря, либо оставить отметки по умолчанию.
  5. Нажать кнопку “Проверить!” и получить результат в поле вывода, которое появится ниже (рисунок 2).
  6. Просмотреть список “Слова и с кириллическими, и с латинскими символами (количество)”, если такой появился, и при необходимости внести в исходный текст (например, в .doc-файл или страницу) правки, а именно заменить неправильно употребленные латинские символы кириллическими;
  7. Просмотреть список “Отметьте слова без ошибок и кликните «Перепроверить!»”, найти слова с ошибками и внести в исходный текст правки.
  8. Сохранить исходный текст.

 

Рисунок 2 – Результат проверки правописания входного электронного текста

 

Доступ к сервису через API

Чтобы получить информацию про принадлежность каждого со слов исходного текста той или иной части речи, необходимо отправить AJAX-запрос типа POST на адрес https://corpus.by/SpellChecker/api.php. Через массив параметров data передаются следующие параметры:

  • text — произвольный исходный текст.
  • ignoreList — список слов, которые не подлежат проверке.
  • maxContexts — ограничение по количеству собираемых контекстов.
  • Маркеры использования словарей:
    • sbm1987 — «Слоўнік беларускай мовы. Арфаграфія. Арфаэпія. Акцэнтуацыя. Словазмяненне / пад рэд. М.В. Бірылы. – Мінск, 1987»;
    • sbm2008 — словарь белорусского языка согласно Belarusian Grammar Database (bnkorpus.info);
    • sbm2012initial —  «Слоўнік беларускай мовы. / навук. рэд. А.А. Лукашанец, В.П. Русак. – Мінск : Беларус. навука, 2012»;
    • noun2013 — «Граматычны слоўнік назоўніка / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • zalizniak — «Грамматический словарь русского языка: Словоизменение / А.А. Зализняк. — Москва : Русский язык, 1980. — 880 c.»;
    • cmu — «Carnegie Mellon University Pronouncing Dictionary»;
    • tts — словарь системы синтеза речи по тексту;
    • S2016_01S2016_02S2016_03S2017_04S2017_05 — пользовательские словари;
    • uwp_be — белорусские слова, собранные системой «Апрацоўка невядомых слоў»;
    • uwp_ru — русские слова, собранные системой «Апрацоўка невядомых слоў».

Пример AJAX-запроса:

$.ajax({
   type: “POST”,
   url: “https://corpus.by/SpellChecker/api.php”,
   data:{
      “text”: “– Ён заслугоўвае сьмерці.
– Заслугоўвае! Мяркую, гэта так. Многія з тых, хто жыве, заслугоўваюць сьмерці. Некаторыя ж з памерлых заслугоўваюць жыцьця. Ці можаш ты вярнуць яго ім? Тады не сьпяшайся асуджаць і на сьмерць. Нават наймудрэйшы ня можа прадбачыць усіх наступстваў. (Дж.Р.Р. Толкін «Уладар Пярсьцёнкаў»)”,

      “ignoreList”: “Дж Р Толкін”,
      “maxContexts”: 10,
      “sbm1987”: 1,
      “sbm2008”: 1,
      “sbm2012initial”: 1,
      “noun2013”: 1
   },
   success: function(msg){ }
});

Сервер вернёт JSON-массив с исходным текстом (параметр text), списком отсутсвующих в словаре слов (параметр result) и расширенной таблицей результатов (параметр output). Например, по выше приведённому AJAX-запросу будет сформирован следующий ответ:

[
   {
      “text”: “Груша цвіла апошні грод.”,
      “result”: “жыцьця
ня
пярсьцёнкаў
сьмерці
сьмерць

сьпяшайся”,
      “output”: “<h2 class=”sub-caption-smaller”><b>СЛОВЫ, АДСУТНЫЯ Ў ПАЗНАЧАНЫХ СЛОЎНІКАХ ( <a href=”http://corpus.by/”>6</a> )</b></h2><br><table class=”pale” width=”100%”><tbody><tr><td width=”15%”>жыцьця<input type=”hidden” name=”token_0_entry” value=”жыцьця”></td><td width=”5%” align=”center”>1<input type=”hidden” name=”token_0_frequency” value=”1″></td><td width=”60%”>… з памерлых заслугоўваюць <font color=”red”>жыцьця</font>. Ці можаш ты … <input type=”hidden” name=”token_0_context” value=”… з памерлых заслугоўваюць &lt;font color=&quot;red&quot;&gt;жыцьця&lt;/font&gt;. Ці можаш ты … “></td><td width=”20%”><input type=”hidden” name=”token_0_recommend” value=””></td></tr><tr><td width=”15%”>ня<input type=”hidden” name=”token_1_entry” value=”ня”></td><td width=”5%” align=”center”>1<input type=”hidden” name=”token_1_frequency” value=”1″></td><td width=”60%”>… сьмерць. Нават наймудрэйшы <font color=”red”>ня</font> можа прадбачыць усіх … <input type=”hidden” name=”token_1_context” value=”… сьмерць. Нават наймудрэйшы &lt;font color=&quot;red&quot;&gt;ня&lt;/font&gt; можа прадбачыць усіх … “></td><td width=”20%”><input type=”hidden” name=”token_1_recommend” value=””></td></tr><tr><td width=”15%”>пярсьцёнкаў<input type=”hidden” name=”token_2_entry” value=”пярсьцёнкаў”></td><td width=”5%” align=”center”>1<input type=”hidden” name=”token_2_frequency” value=”1″></td><td width=”60%”>… Р. Толкін «Уладар <font color=”red”>Пярсьцёнкаў</font>»)<input type=”hidden” name=”token_2_context” value=”… Р. Толкін «Уладар &lt;font color=&quot;red&quot;&gt;Пярсьцёнкаў&lt;/font&gt;»)”></td><td width=”20%”><input type=”hidden” name=”token_2_recommend” value=””></td></tr><tr><td width=”15%”>сьмерці<input type=”hidden” name=”token_3_entry” value=”сьмерці”></td><td width=”5%” align=”center”>2<input type=”hidden” name=”token_3_frequency” value=”2″></td><td width=”60%”>– Ён заслугоўвае <font color=”red”>сьмерці</font>.
– Заслугоўвае! Мяркую, гэта … <hr size=”1″ style=”opacity:0.2; margin: 1px 0px;”>… хто жыве, заслугоўваюць <font color=”red”>сьмерці</font>. Некаторыя ж з … <input type=”hidden” name=”token_3_context” value=”– Ён заслугоўвае &lt;font color=&quot;red&quot;&gt;сьмерці&lt;/font&gt;.
– Заслугоўвае! Мяркую, гэта … &lt;hr size=&quot;1&quot; style=&quot;opacity:0.2; margin: 1px 0px;&quot;&gt;… хто жыве, заслугоўваюць &lt;font color=&quot;red&quot;&gt;сьмерці&lt;/font&gt;. Некаторыя ж з … “></td><td width=”20%”><input type=”hidden” name=”token_3_recommend” value=””></td></tr><tr><td width=”15%”>сьмерць<input type=”hidden” name=”token_4_entry” value=”сьмерць”></td><td width=”5%” align=”center”>1<input type=”hidden” name=”token_4_frequency” value=”1″></td><td width=”60%”>… асуджаць і на <font color=”red”>сьмерць</font>. Нават наймудрэйшы ня … <input type=”hidden” name=”token_4_context” value=”… асуджаць і на &lt;font color=&quot;red&quot;&gt;сьмерць&lt;/font&gt;. Нават наймудрэйшы ня … “></td><td width=”20%”><input type=”hidden” name=”token_4_recommend” value=””></td></tr><tr><td width=”15%”>сьпяшайся<input type=”hidden” name=”token_5_entry” value=”сьпяшайся”></td><td width=”5%” align=”center”>1<input type=”hidden” name=”token_5_frequency” value=”1″></td><td width=”60%”>… ім? Тады не <font color=”red”>сьпяшайся</font> асуджаць і на … <input type=”hidden” name=”token_5_context” value=”… ім? Тады не &lt;font color=&quot;red&quot;&gt;сьпяшайся&lt;/font&gt; асуджаць і на … “></td><td width=”20%”><input type=”hidden” name=”token_5_recommend” value=””></td></tr></tbody></table><br><h2 class=”sub-caption-smaller”><b>ЗНОЙДЗЕНА ЎНІКАЛЬНЫХ НАПІСАННЯЎ СЛОЎ: 46</b></h2>”

   }
]

Пример использования данного API — веб-сервис «Проверка правописания через API» (https://corpus.bySpellCheckerViaApi/).

 

Ссылки на источники

Страница сервиса: https://corpus.by/SpellChecker/?lang=ru

Страница сервиса “Проверка правописания «Ў»”: https://corpus.by/ShortUSpellChecker/?lang=ru

Страница сервиса “Синтезатор речи по тексту”: https://corpus.by/TextToSpeechSynthesizer/?lang=ru

Перекрестные ссылки

  1. Праверка арфаграфіі // Беларускі N-корпус [Электронный ресурс]. — 2017. Режим доступа : http://bnkorpus.info/download.html. — Дата доступа : 07.03.2017.

Калі Вы знайшлі ў тэксце памылку правапісу, калі ласка, выдзеліце гэты тэкст і націсніце Ctrl+Enter.