Ідэнтыфікатар амографаў


Сэрвіс «Ідэнтыфікатар амографаў» прызначаны для распазнавання і вылучэння ў тэксце амографаў. На ўваход сэрвісу падаецца электронны тэкст, па выніках апрацоўкі карыстальнік атрымлівае спіс знойдзеных у тэксце амографаў з іх падрабязнымі дадзенымі.

 

Асноўныя тэрміны і паняцці

Аманімія – супадзенне слоў ці іх форм пры поўнай адрознасці ў значэнні. Ад аманіміі важна адрозніваць полісемію (наяўнасць некалькіх значэнняў у аднаго слова).

Амонімы – розныя па значэнні, але аднолькавыя па напісанні і гучанні адзінкі мовы (словы, марфемы і інш.). Напрыклад, тур – першабытны дзікі бык, тур – этап адбору і тур – паездка па розных мясцінах.

Амаграфія – уласцівасць двух ці некалькіх знакаў, што маюць адну графічную форму, але розныя значэнні. Амаграфія – гэта графічная аманімія.

Амографы – словы, якія маюць аднолькавае напісанне і рознае вымаўленне. Напрыклад, му́зыка і музы́ка.

 

Практычная каштоўнасць

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

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

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

 

Асаблівасці сэрвіса

Ідэнтыфікацыя амографаў ідзе па некалькіх слоўніках, да якіх звяртаецца сэрвіс:

SBM1987 (паводле публікацыі “Слоўнік беларускай мовы. Арфаграфія. Арфаэпія. Акцэнтуацыя. Словазмяненне / пад рэд. М.В. Бірылы. – Мінск, 1987”)

SBM2012initial (пачатковыя формы паводле публікацыі “Слоўнік беларускай мовы. / навук. рэд. А.А. Лукашанец, В.П. Русак. – Мінск : Беларус. навука, 2012”)

NOUN2013 (паводле публікацыі “Граматычны слоўнік назоўніка / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013”)

ADJECTIVE2013 (паводле публікацыі “Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013”)

NUMERAL2013 (паводле публікацыі “Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013”)

PRONOUN2013 (паводле публікацыі “Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013”)

VERB2013 (паводле публікацыі “Граматычны слоўнік дзеяслова / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013”)

ADVERB2013 (паводле публікацыі “Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013”)

ZALIZNIAK (паводле публікацыі “Грамматический словарь русского языка: Словоизменение / А.А. Зализняк. – Москва : Русский язык, 1980. – 880 c.”)

CMU (паводле “Carnegie Mellon University Pronouncing Dictionary”)

*UWP_BE (беларускія словы са слоўніка, які даступны па спасылцы)

*UWP_RU (рускія словы са слоўніка, які даступны па спасылцы)

Слоўнікі, адзначыныя *, знаходзяцца ў працэсе пашырэння слоўнікавай базы.

Карыстальнік можа абраць з дадзенага спісу тыя слоўнікі, якія яму патрэбныя для аналізу тэксту. Напрыклад, для пошуку амаграфіі ў тэксце на беларускай мове мэтазгодна абраць слоўнікі SBM1987, SBM2012initial і іншыя, на рускай мове – толькі слоўнік ZALIZNIAK, на англійскай мове – толькі слоўнік CMU.

Апрацоўка тэксту сэрвісам на дадзены момант мае наступныя асаблівасці:

– Пошук ажыццяўляецца па кожным абраным карыстальнікам слоўніку асобна. Гэта значыць, што выпадкі міжмоўнай амаграфіі кшталту бел. «выго́да» (1.Усё, што задавальняе максімальныя запатрабаванні, чым зручна карыстацца; 2. Прыволле) – рус. «вы́года» (Прыбытак, даход, які атрымліваецца з чаго-небудзь) ці бел. «свая́» (прыналежны займеннік) – рус. «сва́я» (брус, які забіваецца ў грунт для апоры збудавання) выяўленыя не будуць. Калі міжмоўная амаграфія прысутнічае, але для слова могуць быць знойдзеныя амаграфічныя варыянты ў межах адной мовы, напрыклад, як у выпадках «го́дны» і «годны́» для рускай мовы (адна з форм прысутнічае таксама ў беларускай мове) ці «ра́са» і «раса́» для беларускай мовы (адна з форм прысутнічае таксама ў рускай мове), сэрвісам будзе прадэманстравана толькі амаграфія ў межах адной мовы.

– Для ажыццяўлення карэктнага пошуку ў слоўніках словы папярэдне прыводзяцца да аднаго рэгістру – верхняга ці ніжняга (у залежнасці ад слоўніка). Таксама на дадзены момант слоўнікі, якія можна падключыць, не змяшчаюць уласныя імёны. Гэта значыць, што выпадкі кшталту рус. «Ко́ли» (мужчынскае імя ў родным склоне) і «коли́» (загадны лад 2-й асобы адзіночнага ліку дзеяслова «колоть») ці «Ма́ши» (жаночае імя ў родным склоне) і «маши́» (загадны лад 2-й асобы адзіночнага ліку дзеяслова «махать») не будуць разглядацца сэрвісам як амаграфічныя.

– Літары рускага алфавіта «е» і «ё» лічацца сэрвісам рознымі. Гэта значыць, што выпадкі амаграфіі кшталту «же́ны» («жёны») і «жены́» не будуць пазначаныя як амаграфічныя.

– Паводле Оксфардскага слоўніка, у ангельскай мове слова «Homograph» азначае «a word that is spelt like another word but has a different meaning from it, and may have a different pronunciation, for example bow /baʊ/, bow /bəʊ/» (бел. «слова, якое пішацца так, як іншае слова, але мае рознае з ім значэнне і можа мець рознае вымаўленне, напрыклад, bow /baʊ/, bow /bəʊ/»). Гэта значыць, што ангельскія амографы вызначаюцца сэрвісам па іншых правілах. Напрыклад, амографам будзе з’яўляцца слова «awesome», паколькі яно мае розныя варыянты вымаўлення пачатковага галоснага, а таксама «record», паколькі мае адно напісанне для слоў з рознымі значэннямі (дзеяслова і назоўніка), да таго ж вымаўленне дадзеных слоў розніцца націскамі.

 

Алгарытм працы сэрвіса

Уваходныя дадзеныя алгарытму:

  • Карыстальніцкі тэкставы ўвод, UText;
  • Мноства слоўнікаў, падключаных карыстальнікам, Dictionaries;
  • Мноства кірылічных сімвалаў у верхнім і ніжнім рэгістры, LettersCyr;
  • Мноства лацінскіх сімвалаў у верхнім і ніжнім рэгістры, LettersLat;
  • Мноства дадатковых сімвалаў (апострафы, сімвалы націскаў, злучок), AdditionalCharacters.

Пачатак алгарытму.

Крок 1.1. Стварэнне мноства асноўных сімвалаў MainCharacters шляхам зліцця мностваў LettersCyr і LettersLat.

Крок 1.2. Раздзяленне UText на мноства ParagrapsArr паводле сімвала пераводу радка. Стварэнне пустога асацыятыўнага масіву UniqueWordsArr для наступнага запісу ўнікальнх слоў, знойдзеных у ParagrapsArr.

Крок 1.3. Для кожнага элемента Paragraph мноства ParagrapsArr выканаць крокі 1.3.1. – 1.3.4.

Крок 1.3.1. Выдаліць з Paragraph усе пачатковыя і канцавыя сімвалы водступаў.

Крок 1.3.2. Калі Paragraph = ∅, перайсці да наступнага элемента Paragraph і выканаць крок 1.3.1.

Крок 1.3.3. Стварэнне масіву WordsArr і запаўненне яго элементамі, складзенымі са зместу Paragraph. «Элементам» лічыцца спецыяльны набор сімвалаў ад пачатку радка да прабелу, ад прабелу да прабелу і ад прабелу да канца (або сімвалу пераводу) радка, які адпавядае шаблону <[1 сімвал MainCharacters]+[0 або больш сімвалаў MainCharacters і AdditionalCharacters]> альбо шаблону <[ 0 або больш сімвалаў MainCharacters]>. Стварэнне пераменнай WordsCnt і запіс у яе колькасці элементаў WordsArr.

Крок 1.3.4. Для I = 0; I < WordsCnt, I++ выканаць крокі 1.3.4.1. – 1.3.4.2.

Крок 1.3.4.1. Стварэнне пераменнай Word = WordsArr[I].

Крок 1.3.4.2. Калі Word ≠ ∅, прывесці ўсе сімвалы Word да ніжняга рэгістра і замяніць усе пачатковыя сімвалы «ў» на «у» (неабходня для наступнага карэктнага пошуку ў слоўніках). Паспрабаваць запісаць Word у асацыятыўны масіў UniqueWordsArr, выкарыстоўваючы значэнне Word у якасці ключа і прысвоіўшы яму значэнне 1. Калі слова паводле ключа Word ужо прысутнічае у UniqueWordsArr, інкрэментаваць адпаведнае яму значэнне.

Крок 2.1. Стварэнне асацыятыўнага масіву UniqueHomographsArr для наступнага запісу ўнікальных амографаў і спадарожнай інфармацыі.

Крок 2.2. Для кожнага UniqueWord у UniqueWordsArr і кожнага Dictionary у Dictionaries выканаць крокі 2.2.1. – 2.2.3.

Крок 2.2.1. Стварыць асацыятыўныя масівы AccentArr і ResultArr. Калі Dictionary = Homographs_ Be (гэта значыць, што на дадзеным кроку цыкла праглядаецца слоўнік з такою назвай), праверыць, ці прысутнічае ў Dictionary элемент, ідэнтычны бягучаму элементу UniqueWord. Калі прысутнічае, запісаць у масіў AccentArr значэнне элемента слоўнікавага артыкула Category, які адпавядае бягучаму UniqueWord, а ў масіў ResultArr – значэнне адпаведных элементаў слоўнікавага артыкула AccentedWord, Category і LexemeId, пасля чаго перайсці да кроку 2.2.3. Інакш – перайсці да наступнага кроку.

Крок 2.2.2. Калі Dictionary ≠ Homographs_Be, выканаць крокі 2.2.2.1. – 2.2.2.3.

Крок 2.2.2.1. Стварыць пераменную UniqueWordWithSlashes і запісаць у яе значэнне бягучага UniqueWord, акружанае сімваламі слэша. Калі пры гэтым UniqueWordWithSlashes складаецца толькі з сімвалаў, якія належаць да мноства LettersLat, акружаных сімваламі слэша, прывесці ўсе сімвалы UniqueWordWithSlashes да верхняга рэгістра. Стварыць пераменную Query для захоўвання запыту да слоўнікавай базы і сфарміраваць яе значэнне згодна з шаблонам «SELECT * FROM %s WHERE word=’%s», где %s – значэнне UniqueWordWithSlashes. Дадзены крок неабходны для ажыццяўлення карэктнага пошуку па слоўнікавых базах.

Крок 2.2.2.2. Калі паводле запыту, запісанага ў пераменнай Query, у бягучым Dictionary удалося знайсці якія-небудзь дадзеныя, то да таго моманту, пакуль стандартная функцыя звароту да базы дадзеных не дойдзе да апошняга радка Row у табліцы вынікаў, выконваць крокі 2.2.2.2.1. – 2.2.2.2.3.

Крок 2.2.2.2.1. Стварыць пераменную AccentedWord. Калі ў бягучым Row зададзены элемент слоўнікавага артыкула Accent, запісаць у AccentedWord яго значэнне, прыведзеная да ніжняга рэгістра; калі пры гэтым у AccentedWord адсутнічае сімвал «+», завяршыць дадзены крок цыкла, перайсці да наступнага Row і выканаць 2.2.2.2.1. яшчэ раз. Калі элемент Accent не зададзены, запісаць у AccentedWord значэнне элемента Transcription, прыведзенае да ніжняга рэгістра.

Крок 2.2.2.2.2. Калі ў бягучым Row задедзены і элемент LexemeId, і элемент Tag, рэініцыялізаваць Query значэннем значением «SELECT * FROM tags WHERE tag=’%s’ LIMIT 1», дзе %s – значэнне элемента Tag, і паспрабаваць знайсці якія-небудзь дадзеныя паводле гэтага запыту. Калі дадзеныя ўдалося знайсці, то для кожнага радка табліцы вынікаў запісаць у створаную пераменную CategoryVar значэнне элемента слоўнікавага артыкула Category (калі ён зададзены), а ў пераменную LexemeIdVar – значэнне элемента слоўнікавага артыкула LexemeId, пасля чаго вызваліць сістэмныя рэсурсы ад вынікаў запыту.

Крок 2.2.2.2.3. Запісаць у масіў AccentArr значэнне CategoryVar, у масіў ResultArr – значэнні AccentedWord, CategoryVar і LexemeIdVar.

Крок 2.2.2.3. Ачысціць сістэмныя рэсурсы ад вынікаў запытаў да слоўнікавых баз дадзеных.

Крок 2.2.3. Калі ў AccentArr прысутнічае больш за адзін элемент, выканаць крокі 2.2.3.1. – 2.2.3.8.

Крок 2.2.3.1. Калі ў UniqueHomographsArr не зададзены элемент, роўны бягучаму UniqueWord, задаць такі элемент у выглядзе пустога масіву. Стварыць пераменную AccentList і ініцыялізаваць яе пустым значэннем.

Крок 2.2.3.2. Для кожнага элемента AccentedWord у AccentArr (дадзенаму элементу адпавядае свой масіў CategoryArr) здзейсніць наступныя дзеянні ў прамым парадку:

  • Дадаць да AccentList значэнне бягучага AccentedWord.
  • Калі CategoryArr ≠ ∅, дадаць да AccentList радок «&nbsp;<small>(» значэнне ўсіх унікальных элементаў CategoryArr, аб’яднаных у радок з дапамогай радка «, », і радок «)</small>».
  • Дадаць да AccentList радок «<br>\n».

Крок 2.2.3.3. Замяніць у AccentList усе камбінацыі [любы сімвал + сімвал «=»] на той жа сімвал, але забяспечаны сімвалам пабочнага націску і акружаны тэгамі HTML для надання яму сіняга колеру. Замяніць у AccentList усе камбінацыі [любы сімвал + сімвал «+»] на той жа сімвал, але забяспечаны сімвалам асноўнага націску і акружаны тэгамі HTML для надання яму чырвонага колеру.

*** Крокі 2.2.3.2. і 2.2.3.3. неабходныя для фарміравання карэктнай выдачы***

Крок 2.2.3.4. Выдаліць з ResultArr значэнні, якія паўтараюцца. Стварыць асацыятыўныя масівы LexemeIdArr і CategoryArr.

Крок 2.2.3.5. Калі элемент HomographArray, які адпавядае бягучаму UniqueWord, які ў сваю чаргу адпавядае бягучаму Dictionary, не зададзены (тут і далей гэты элемент будзе названы як X), то для кожнага элемента WordInfo у ResultArr праверыць, ці зададзены ў ім элемент слоўнікавага артыкула Category і элемент LexemeId. Калі хаця б адзін з дадзеных элементаў не зададзены, запісаць у X значэнне Accents, роўнае AccentList, і значэнне Type, роўнае  «-» (г. зн. тым амаграфіі не вызначаны).

Крок 2.2.3.6. Калі пасля папярэдняга кроку X не зададзены, то для кожнага элемента WordInfo у ResultArr праверыць, ці зададзены ў LexemeIdArr элемент WordInfo, які ў сваю чаргу адпавядае элементу слоўнікавага артыкула LexemeId. Калі не зададзены, зрабіць яго роўным адзінцы, інакш запісаць у X значэнне Accents, роўнае AccentList, і значэнне Type, роўнае «one paradigm» (г. зн. амографы належаць да адной парадыгмы скланення або спражэння).

Крок 2.2.3.7. Калі пасля папярэдняга кроку X не зададзены, то для кожнага элемента WordInfo у ResultArr праверыць, ці зададзены ў CategoryArr элемент WordInfo, які ў сваю чаргу адпавядае элементу слоўнікавага артыкула Category. Калі не зададзены, зрабіць яго роўным адзінцы, інакш запісаць у X значэнне Accents, роўнае AccentList, і значэнне Type, роўнае «one part of speech» (г. зн. амографы належаць да адной часціны мовы).

Крок 2.2.3.8. Калі пасля папярэдняга кроку X не зададзены, то запісаць у X значэнне Accents, роўнае AccentList, і значэнне Type, роўнае «different parts of speech» (г. зн. амографы належаць да розных часцін мовы).

Крок 3. Фарміраванне кантэкстаў. Для кожнага элемента Paragraph мноства ParagrapsArr выканаць крокі 3.1. – 3.4.

Крок 3.1. Выдаліць з Paragraph усе пачатковыя і канцавыя сімвалы водступаў.

Крок 3.2. Калі Paragraph = ∅, перайсці да наступнага элемента Paragraph і выканаць крок 3.1.

Крок 3.3. Стварэнне масіву WordsArr і запаўненне яго элементамі, складзенымі са зместу Paragraph. «Элементам» лічыцца спецыяльны набор сімвалаў ад пачатку радка да прабелу, ад прабелу да прабелу і ад прабелу да канца (або сімвалу пераводу) радка, які адпавядае шаблону <[1 сімвал MainCharacters]+[0 або больш сімвалаў MainCharacters і AdditionalCharacters]> альбо шаблону <[ 0 або больш сімвалаў MainCharacters]>. Стварэнне пераменнай WordsCnt і запіс у яе колькасці элементаў WordsArr.

Крок 3.4. Для I = 0; I < WordsCnt, I++ выканаць крокі 3.4.1. – 3.4.3.

Крок 3.4.1. Стварэнне пераменнай Word = WordsArr[I].

Крок 3.4.2. Калі Word ≠ ∅, прывесці ўсе сімвалы Word да ніжняга рэгістра і замяніць усе пачатковыя сімвалы «ў» на «у».

Крок 3.4.3. Для элемента масіву UniqueHomographsArr, роўнага значэнню Word, запісаць у UniqueHomographsArr Y элементаў, якія ідуць у WordsArr да элемента Word, сам элемент Word і Y элементаў, якія ідуць у WordsArr пасля элемента Word, 0 ⩽ Y ⩽ 3, Y ∈ N, дзе N – мноства натуральных лікаў.

Крок 4. Фарміраванне выдачы. Для кожнага знойдзенага амографа прадставіць варыянты націску, тып амографа, колькасць сустраканняў дадзенага амографа ў зыходным тэксце, кантэксты ўжывання і назву слоўніка, у якім дадзены амограф быў знойдзены.

Канец алгарытму.

 

Апісанне інтэрфейсу карыстальніка

Карыстальніцкі інтэрфейс сэрвіса прадстаўлены на малюнку 1.

Малюнак 1 – Графічны інтэрфейс сэрвіс «Ідэнтыфікатар амографаў»

Інтэрфейс змяшчае наступныя вобласці:

  • поле ўводу электроннага тэксту;
  • поле выбару слоўнікаў;
  • кнопка «Шукаць амографы!», якая запускае апрацоўку;
  • поле вываду вынікаў, якое з’яўляецца пасля апрацоўкі і мае выгляд табліцы.

У полі вываду вынікаў выводзяцца наступныя дадзеныя:

  • слова-амограф;
  • варыянты націску ў словах-амографах;
  • тып амографа (часцінамоўнае вызначэнне);
  • колькі разоў ужываецца ў тэксце;
  • кантэксты ўжывання;
  • слоўнік(і), па якім(якіх) быў праведзены пошук амографаў.

Таксама сэрвіс прапануе карыстальніку атрымаць амографы ў форме звычайнага спіса. Каб атрымаць такі спіс, патрэбна націснуць на адпаведную спасылку ў полі вываду.

 

Карыстальніцкія сцэнары працы з сэрвісам

Сцэнар 1. Пошук па слоўніках, абраных па змаўчанні

  1. Увесці ў поле ўводу тэкст, які патрабуе вызначэння амографаў.
  2. Націснуць кнопку «Шукаць амографы!» для запуску пошуку і атрымання вынікаў.
  3. Прагледзець спіс знойдзеных амографаў у полі вываду і пры патрэбе ўнесці праўкі ў зыходны тэкст (напрыклад, паставіць націскі).

Сцэнар 2. Пошук па слоўніках, абраных карыстальнікам

  1. Увесці ў поле ўводу тэкст, які патрабуе вызначэння амографаў.
  2. Выбраць неабходныя слоўнікі.
  3. Націснуць кнопку «Шукаць амографы!» для запуску пошуку і атрымання вынікаў.
  4. Прагледзець спіс знойдзеных амографаў у полі вываду і пры патрэбе ўнесці праўкі ў зыходны тэкст (напрыклад, паставіць націскі).

Магчымы вынік працы сэрвіса прадстаўлены на малюнку 2.

Малюнак 2 – Вынік працы сэрвіса «Ідэнтыфікатар амографаў»

 

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

Для доступу да сэрвіса «Ідэнтыфікатар амографаў» праз API неабходна адправіць AJAX-запыт тыпу POST на адрас https://corpus.by/HomographIdentifier/api.php. Праз масіў data перадаюцца наступныя параметры:

  • text – адвольны ўваходны тэкст.
  • Маркеры выкарыстання слоўнікаў:
    • sbm1987 – «Слоўнік беларускай мовы. Арфаграфія. Арфаэпія. Акцэнтуацыя. Словазмяненне / пад рэд. М.В. Бірылы. – Мінск, 1987»;
    • sbm2012initial – «Слоўнік беларускай мовы. / навук. рэд. А.А. Лукашанец, В.П. Русак. – Мінск : Беларус. навука, 2012»;
    • noun2013 – назоўнікі паводле кнігі «Граматычны слоўнік назоўніка / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • adjective2013 – прыметнікі паводле кнігі «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • numeral2013 – лічэбнікі паводле кнігі «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • pronoun2013 – займеннікі паводле кнігі «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • verb2013 – дзеясловы паводле кнігі «Граматычны слоўнік дзеяслова / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • adverb2013 – прыслоўі паводле кнігі «Граматычны слоўнік прыметніка, займенніка, лічэбніка, прыслоўя / навук. рэд. В.П. Русак. – Мінск : Беларус. навука, 2013»;
    • zalizniak – «Грамматический словарь русского языка: Словоизменение / А.А. Зализняк. – Москва : Русский язык, 1980. – 880 c.»;
    • cmu – «Carnegie Mellon University Pronouncing Dictionary»;
    • uwp_be – беларускія словы, сабраныя сістэмай «Апрацоўка невядомых слоў»;
    • uwp_ru – рускія словы, сабраныя сістэмай «Апрацоўка невядомых слоў».

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

$.ajax({

type: “POST”,

url: “https://corpus.by/HomographIdentifier/api.php”,

data:{

text”: “– Маё жыццё такое аднастайнае. Я палюю на курэй, людзі палююць на мяне. Усе куры падобны адна на адну, і ўсе людзі падобны адзін на аднаго. З гэтай прычыны мне і сумнавата. Але, калі ты прыручыш мяне, жыццё маё нібы сонцам азарыцца. Я навучуся распазнаваць твае крокі сярод тысячы іншых. Калі я чую людскія крокі, я ўцякаю і хаваюся. Твае ж паклічуць мяне з нары як музыка. І потым – паглядзі! Бачыш, там, удалечыні, жытняе поле? Я не ем хлеба. Жыта мне ні да чаго. Збажына нічога не напамінае мне. І гэта так сумна! А ў цябе залатыя валасы. І як цудоўна было б, калі б ты прыручыў мяне! Залатое жыта заўсёды было б мне напамінкам пра цябе… Я палюбіў бы песню ветру ў калоссі…”,

sbm1987”: 1,

sbm2012initial”: 1

},

success: function(msg){ },

error: function() { }

});

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

[

{

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

result”: “куры

людскія

нары

музыка

музыка”,

resultArr”: {

SBM1987”: {

куры”: {

accents”: “ку́ры куры́”,

type”: “адна часціна мовы”,

count”: 1,

contexts”: “… на мяне. Усе куры падобны адна на …”

},

людскія”: {

accents”: “лю́дскія людскі́я”,

type”: “адна часціна мовы”,

count”: 1,

contexts”: “… Калі я чую людскія крокі, я ўцякаю …”

},

нары”: {

accents”: “нары́ на́ры”,

type”: “адна часціна мовы”,

count”: 1,

contexts”: “… паклічуць мяне з нары як музыка. І …”

},

музыка”: {

accents”: “музы́ка му́зыка”,

type”: “адна часціна мовы”,

count”: 1,

contexts”: “… з нары як музыка. І потым – паглядзі! …”

}

},

SBM2012initial”: {

музыка”: {

accents”: “музы́ка му́зыка”,

type”: “–”,

count”: 1,

contexts”: “… з нары як музыка. І потым – паглядзі! …”

}

}

},

resultCnt”: “5”,

resultUrl”: “https://corpus.by/<…>”,

}

]

 

Спасылкі на крыніцы

Старонка сэрвіса: https://corpus.by/HomographIdentifier/?lang=be

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