Spell Checker


Service “Spell Checker” is meant to check the correctness of the spelling for the Belarusian language. The interface is presented on figure 1. One must enter a text into the field and press “Get unknown words! / Атрымаць невядомыя словы!”. In the box “Ignore the following words” one can specify words that mustn’t be checked by Spell Checker.

spellChecker_GUI_2015-03-27Figure 1 – Interface of Spell Checker

After text is processed by Spell Checker user receives statistics on the number of unique words found in the input text , the number of words that were not found either in the lthe list of words to ignore or both in the list of words to ignore and in the dictionary. Once the service has rejected all the “correct” words, the user receives a list of the remaining words and can identify each of them as a “correct” / “known” or leave “wrong” / “unknown”, respectively, by “yes” or “no” in front of each word (see. Figure 2).

spellChecker_usage_2015-03-27Figure 2 – Example of the work of Spell Checker

For the convenience of the work with the list there is an opportunity at any time to split the list into two parts on the basis of “known” or “unknown” for the user: in the first list words are marked “No”, the second – marked “yes.” To do this, press the “Recheck with your labels / Пераправерыць з улікам вядомых Вам слоў” after the list (see. Figure 3).

spellChecker_usage2_2015-03-27 Figure 3 – Example of how Spell Checker works with “known” or “unknown” word lists

Also, if there is such a need, you can get results of work of word processor embedded in text-to-speech synthesizer, which helps the latter service to operate. To obtain this information you need to tick “Show the results of a word processor” checkbox (see. Figure 4) before start of the spell checking.

spellChecker_usage3_2015-03-27Figure 4 – Results of text processing

For example, let’s enter the following text “Свабода – гэта магчымасць сказаць, што двойчы два – чатыры. Калі дазволена гэта, усё астатняе адсюль вынікае.” ‘Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.’ (George Orwell, “1984”)“. The result is on figure 5.

spellChecker_usage4_2015-04-17

Figure 5 – Example of mistake search

Now when we copy the given list into a window of list of words to ignore and if we make a mistake (eg. in the word “four”/”чытыры”), the result of the check will be the following:

spellChecker_usage5_2015-04-17Figure 6 – Example of mistake search

Thus we can create our own vocabulary of “correct” words and check the text on its basis.

 

Access to the service via the API

To access the service «Spell Checker» via the API, you should send an AJAX-request (type: POST) to the address https://corpus.by/SpellChecker/api.php. With an input array data the following parameters are passed:

  • text — arbitrary input text.
  • ignoreList — list of words that are not to be checked.
  • maxContexts — limit on the amount of collected contexts.
  • Markers for dictionaries usage:
    • sbm1987 — «Слоўнік беларускай мовы. Арфаграфія. Арфаэпія. Акцэнтуацыя. Словазмяненне / пад рэд. М.В. Бірылы. – Мінск, 1987»;
    • sbm2008 — Belarusian language dictionary by Belarusian Grammar Database (bnkorpus.info);
    • sbm2012initial —  «Слоўнік беларускай мовы. / навук. рэд. А.А. Лукашанец, В.П. Русак. — Мінск : Беларус. навука, 2012»;
    • noun2013 — nouns by the book «Граматычны слоўнік назоўніка / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • adjective2013 — adjectives by the book «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • numeral2013 — numerals by the book «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • pronoun2013 — pronouns by the book «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • verb2013 — verbs by the book «Граматычны слоўнік дзеяслова / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • adverb2013 — adverbs by the book «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • zalizniak — «Грамматический словарь русского языка: Словоизменение / А.А. Зализняк. — Москва : Русский язык, 1980. — 880 c.»;
    • cmu — «Carnegie Mellon University Pronouncing Dictionary»;
    • tts — text-to-speech system dictionary;
    • S2016_01S2016_02S2016_03S2017_04, S2017_05 — user dictionaries;
    • uwp_be — Belarusian words, collected by the system «Unknown Words Processor»;
    • uwp_ru — Russian words, collected by the system «Unknown Words Processor».

Example of AJAX-request:

$.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){ },
  error: function() { }
});

The server returns a JSON-array with the following parameters:

  • text — input text.
  • result — list of words not in the dictionary.
  • output — extended table of results.

For example, the following reply will be formed on the above listed AJAX-request:

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

сьпяшайся”,
      “output”: “<h2 class=”sub-caption-smaller”><b>ПАЗНАЧЦЕ СЛОВЫ БЕЗ ПАМЫЛАК І КЛІКНІЦЕ “ПЕРАПРАВЕРЫЦЬ!” ( <a href=”https://corpus.by/showCache.php?s=SpellChecker&amp;t=out&amp;f=2019-09-03_17-03-08_80-94-171-2_255_labeled_unknown.txt”>6</a> )</b></h2><br><table id=”misspellingTableId” class=”pale” width=”100%”><tbody><tr><td width=”2%”><input type=”checkbox” name=”token_0_status” value=”1″></td><td width=”13%”>жыцьця</td><td width=”5%” align=”center”>1</td><td width=”60%”>… з памерлых заслугоўваюць <font color=”red”>жыцьця</font>. Ці можаш ты … </td><td width=”20%”></td></tr><tr><td width=”2%”><input type=”checkbox” name=”token_1_status” value=”1″></td><td width=”13%”>ня</td><td width=”5%” align=”center”>1</td><td width=”60%”>… сьмерць. Нават наймудрэйшы <font color=”red”>ня</font> можа прадбачыць усіх … </td><td width=”20%”></td></tr><tr><td width=”2%”><input type=”checkbox” name=”token_2_status” value=”1″></td><td width=”13%”>пярсьцёнкаў</td><td width=”5%” align=”center”>1</td><td width=”60%”>… Р. Толкін «Уладар <font color=”red”>Пярсьцёнкаў</font>»)</td><td width=”20%”></td></tr><tr><td width=”2%”><input type=”checkbox” name=”token_3_status” value=”1″></td><td width=”13%”>сьмерці</td><td width=”5%” align=”center”>2</td><td width=”60%”>– Ён заслугоўвае <font color=”red”>сьмерці</font>. – Заслугоўвае! Мяркую, гэта … <hr size=”1″ style=”opacity:0.2; margin: 1px 0px;”>… хто жыве, заслугоўваюць <font color=”red”>сьмерці</font>. Некаторыя ж з … </td><td width=”20%”></td></tr><tr><td width=”2%”><input type=”checkbox” name=”token_4_status” value=”1″></td><td width=”13%”>сьмерць</td><td width=”5%” align=”center”>1</td><td width=”60%”>… асуджаць і на <font color=”red”>сьмерць</font>. Нават наймудрэйшы ня … </td><td width=”20%”></td></tr><tr><td width=”2%”><input type=”checkbox” name=”token_5_status” value=”1″></td><td width=”13%”>сьпяшайся</td><td width=”5%” align=”center”>1</td><td width=”60%”>… ім? Тады не <font color=”red”>сьпяшайся</font> асуджаць і на … </td><td width=”20%”></td></tr></tbody></table><br><h2 class=”sub-caption-smaller”><b>ЗНОЙДЗЕНА ЎНІКАЛЬНЫХ НАПІСАННЯЎ СЛОЎ: 46</b></h2><br><button type=”button” id=”RecheckButtonId” name=”RecheckButton” class=”blue-button”>Пераправерыць!</button>”
   }
]

 

Service pagehttps://corpus.by/SpellChecker/?lang=en

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