Падлік частотнасці слоў


Сэрвіс Падлік частотнасці слоў вырашае задачу па атрыманні статыстыкі ўжывання адвольных сімвальных паслядоўнасцяў у электронным тэксце. Прыватным выпадкам гэтай задачы з’яўляецца задача падліку частоты ўжывання слоў у электронным тэксце.

Для атрымання неабходнай статыстыкі карыстальнік мае магчымасць увесьці адвольны тэкст і задаць (скарэктаваць) два мноствы сімвалаў для настройкі працы сэрвіса пад канкрэтную задачу. Першае з іх: сімвалы, з якіх можа складацца слова. Сюды карыстальнік можа змясціць алфавіт альбо мноства сімвалаў, якія будуць ужывацца для распазнавання слоў у тэксце.

wordFrequency_GUI_2014-12-12

Па змаўчанні ў гэтым вакне змешчаны ўсе літарныя сімвалы кадыроўкі “Windows-1251” і сімвалы лічбаў:

0123456789

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

ЂЃѓЉЊЌЋЏђљњќћџЎўЈҐЁЄЇІіґёєјЅѕї

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

абвгдежзийклмнопрстуфхцчшщъыьэюя

Другое мноства: сімвалы, з якіх можа складацца, але не можа пачынацца слова. Па змаўчанні гэта сімвалы асноўнага і частковага націскаў, апостраф і злучок.

Карыстальнік мае магчымасць пазначыць, ці патрэбна пры падліку статыстыкі ўлічваць рэгістр літар. Апроч таго, карыстальнік можа атрымліваць пэўную колькасць кантэкстаў кожнай са знойдзеных сімвальных паслядоўнасцяў, пазначыўшы ў полі “Number of examples” лік адрозны ад нуля.

Націснуўшы “Get frequency of Words! / Атрымаць частату слоў”, карыстальнік атрымоўвае спіс слоў (альбо паслядоўнасцяў сімвалаў) з пазнакай іх колькасці ва ўваходным тэксце. Спіс прадстаўлены ў трох выглядах: спарадкаваны па частаце слоў, спарадкаваны па алфавіту і спарадкаваны па прынцыпе адваротнага слоўніка.

Напрыклад, калі падаць на ўваход “Новы Запавет” (у перакладзе Васіля Сёмухі), пазначыць залежнасць ад рэгістра, а колькасць прыкладаў – 0 (Number of examples: 0), атрымаем наступныя вынікі:

wordFrequency_NovyZavet_2014-12-12

У выпадку, калі карыстальнік прыбярэ рэгістразалежнасць аналізу, вынікі будуць адрознівацца, так як адны і тыя ж словы ў розным рэгістры цяпер будуць прымацца пры падліку за адно. Аналіз, праведзены на тым жа тэксце дасць наступныя вынікі, адсартаваныя па алфавіту:

і    9155

ў    2536

што    2099

а    2033

ня    1640

на    1542

у    1489

не    1485

яго    1375 і г.д.

Для таго, каб атрымаць кантэксты знойдзеных слоў (ці паслядоўнасцяў сімвалаў) патрэбна пазначыць неабходную іх колькасць у полі “Number of examples”. Кантэкст уяўляе сабой фрагмент тэксту ў 7 слоў: 3 словы перад знойдзеным словам, само знойдзенае слова і 3 словы пасля знойдзенага слова. Калі пазначыць колькасць прыкладаў адрозную ад нуля, то пасля кожнага прыведзенага слова і частаты яго ўжыванняў будзе адлюстравана адпаведная полю “Number of examples” колькасць кантэкстаў. Напрыклад, калі колькасць кантэкстаў роўная 2, то вынік можа мець наступны выгляд:

wordFrequency_Examples=2_2015-08-04

 

Доступ да сэрвіса праз API

Для доступу да сэрвіса “Падлік частотнасці слоў” праз API, неабходна адправіць AJAX-запыт тыпу POST на адрас http://corpus.by/WordFrequencyCounter/api.php. Праз масіў параметраў data перадаецца адвольны ўваходны тэкст (параметр text), спіс стоп-слоў (параметр stop_words), спіс пэўных слоў, падлік якіх неабходна здзейсніць (параметр words_to_count), спіс сімвалаў, з якіх можа складацца слова (параметр symbols_of_words), спіс сімвалаў, з якіх можа складацца, але не можа пачынацца слова (параметр symbols_in_words), максімальная колькасць кантэкстаў (параметр contextsMax), маркер адчувальнасці да рэгістру (параметр caseSensitive), маркер вываду левага і правага кантэкстаў у асобных слупках злева і справа ад слова (параметр contextSensitive).

Элементы ўваходнага масіву data маюць наступныя параметры:

  • text — адвольны ўваходны тэкст.
  • stop_words — спіс стоп-слоў – слоў, падлік якіх не павінен весціся. Словы падаюцца праз прабел ці перавод радка.
  • words_to_count — спіс слоў для падліку. Уводзіцца пры неабходнасці падліку канкрэтных слоў. Словы падаюцца праз прабел ці перавод радка.
  • symbols_of_words — спіс сімвалаў, з якіх можа складацца слова.
  • symbols_in_words — спіс сімвалаў, з якіх можа складацца, але не можа пачынацца слова.
  • contextsMax — максімальная колькасць кантэкстаў. Пры значэнні “0” вывад кантэкстаў не адбываецца.
  • caseSensitive — маркер адчувальнасці да рэгістру. Пры значэнні “1” падлік частотнасці слоў адбываецца з улікам рэгістру, пры з начэнні “0” – без уліку рэгістру.
  • contextSensitive — маркер вываду левага і правага кантэкстаў у асобных слупках злева і справа ад слова. Пры значэнні “1” левы і правы кантэксты выводзяцца ў асобных слупках злева і справа ад слова, пры з начэнні “0” – левы і правы кантэксты выводзяцца ў адным слупку разам са словам.

Прыклад AJAX-запыту:

$.ajax({
   type: “POST”,
   url: “http://corpus.by/WordFrequencyCounter/api.php“,
   data:{
      “text”: “Груша цвіла апошні год.”,
      “stop_words”: “груша цвіла апошні”,
      “words_to_count”: “”,
      “symbols_of_words”: “0123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\nАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\nЂЃѓЉЊЌЋЏђљњќћџЎўЈҐЁЄЇІіґёєјЅѕї”,
      “symbols_in_words”: “-‘’ʼ̀́”,
      “contextsMax“: “2″,
      “caseSensitive“: “1″,
      “contextSensitive“: “1″
   }
   success: function(msg){ }
});

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

[
   {
      “text”: “Груша цвіла апошні год.”,

      “wordsCnt”: 4,

      “uniqueCnt”: 1,

      “result”: “<table class=”sort”><thead><tr><td>Частата</td><td>Левыя кантэксты (макс. 2)</td><td>Слова</td><td>Правыя кантэксты (макс. 2)</td></tr></thead><tbody><tr valign=”top”><td width=”100″ align=”center”><b>1</b></td><td align=”right”><br></td><td width=”150″ align=”center”><font color=”red”>Груша</font></td><td> цвіла апошні год.<br></td></tr></tbody></table>”
   }
]

Прыклад выкарыстання дадзенага API — вэб-сэрвіс «Падлік частотнасці слоў праз API» (http://corpus.by/WordFrequencyCounterViaApi/).

 

Старонка сэрвісу – http://corpus.by/WordFrequencyCounter/?lang=be

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