Рэфератар тэксту


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

 

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

Зыходны тэкст – любые ўваходныя тэкставые дадзеныя для рэзюмавання.

Рэзюмэ – скарочаны варыянт зыходнага тэксту.

Рэзюмаванне – працэс складання рэзюмэ зыходнага тэксту.

Інтэлектуальны аналіз тэкста – працэс атрымання карыснай інфармацыі з тэксту.

 

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

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

 

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

Алгарытм заснаваны на гэтай працы.

Уваход:

  • Зыходны тэкст, ST (string)
  • «Threshold» параметр, T (float)
  • «Error tolerance» параметр, ET (float)
  • Колькасць сказаў у рэзюмэ, L (integer)

Выхад:

  • Рэзюмэ, S (string)

Алгарытм:

  1. хай T_w = log(N / N_w) для кожнага слова w ў ST, дзе N гэта колькасць сказаў у ST, N_w гэта колькасць сказаў, у якіх сустракаецца слова w
  2. хай L_w_i пазначае, колькі раз слова w сустрэлася ў i-ым сказе
  3. хай W_i пазначае мноства слов i-ага сказа
  4. хай G = (V, E, W) пазначае ненакіраваны поўны граф з вяршынямі V, рэбрамі E і вагамі рэбраў W, дзе
    V = {парадкавы нумар s у ST | ∀ сказаў s ∈ ST},
    E = {(i, j) | ∀ i, j ∈ V ⨯ V, i ≠ j},
    W = {Num_i_j / (√Den_i * √Den_j) | ∀ (i, j) ∈ E)}, дзе
    Num_i_j = сума L_w_i * L_w_j * T_w^2 для кожнага слова w ў W_i ∩ W_j,
    Den_i = сума (L_w_i * T_w)^2 для кожнага слова w у i-ым сказе
  5. для кожнага рабра e ∈ E з вагай w ∈ W:
    if w > T then:
    w = 1
    else:
    E = E \ {e}
  6. для кожнага пакінутага рабра (i, j) ∈ E з вагай w ∈ W:
    w = w / (D_i * D_j)
    , дзе D_i гэта ступень i-ай вяршыні
  7. хай M пазначае матрыцу інцыдентнасці атрыманага графа G
  8. для кожнага элемента (i, j) ∈ M са значэннем M_i_j і адпаведнай вагай w ∈ W:
    if M_i_j ≠ 0 then:
    M_i_j = w
  9. хай R пазначае N-вектар; першапачаткова R = (1 / N, 1 / N, …, 1 / N)
  10. пакуль Эўклідава норма рознасці вектароў R на бягучай і папярэдняй ітэрацыях больш, чым ET:
    R = M^T ⨯ R
  11. сартуем R у парадку змяншэння
  12. дастаём L найбольш каштоўных сказаў з ST, якія адпавядаюць першым L каардынатам R
  13. злучаем вынятыя сказы ў рэзюмэ S ў парадку сустракання ў ST і вяртаем S

 

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

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

Малюнак 1 – Графічны інтэрфейс сэрвіса «Рэфератар тэксту»

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

  1. поле ўводу зыходнага тэкста
  2. поле ўводу параметра «threshold»
  3. поле ўводу параметра «error tolerance»
  4. поле ўводу колькасці сказаў у рэзюмэ
  5. кнопка пачатку рэзюмавання
  6. поле вывада рэзюмэ

Магчымы сцэнар працы з сэрвісам:

  1. увядзіце любыя тэкставыя дадзеныя ў поле ўводу зыходнага тэксту (1)
  2. укажыце колькасць сказаў у рэзюмэ (4)
  3. націснете кнопку «Рэзюмаваць» (5)
  4. прааналізуйце атрыманае рэзюмэ (6)
  5. пры неабходнасці дакладна наладзьце параметры алгарытму (2, 3)

 

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

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

  • text – тэкст для рэзюмавання (абавязкова)
  • threshold – «threshold» параметр (неабавязкова, 0.05 па змаўчанні)
  • tolerance – «error tolerance» параметр (неабавязкова, 0.1 па змаўчанні)
  • length – колькасць сказаў у рэзюме (неабавязкова, 5 па змаўчанні)

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

$.ajax({
 type: “POST”,
 url: “https://corpus.by/TextSummarizer/api”,
 data: {
  “text”: “Брэст — горад у Беларусі, адміністрацыйны цэнтр Брэсцкай вобласці і Брэсцкага раёна, на рацэ Заходні Буг пры ўпадзенні ў яго Мухаўца. За 349 км ад Мінска. Тэрыторыя горада — 146,12 км². Насельніцтва 343 985 чал. З’яўляецца адным з найважнейшых транспартных вузлоў Беларусі. Эканамічны і культурны цэнтр, вузел чыгунак і аўтамабільных дарог, аэрапорт, рачны порт, звязаны Дняпроўска-Бугскім каналам з басейнамі Дняпра і Прыпяці. Упершыню згадваецца ў «Аповесці мінулых гадоў» пад назваю Бе́рестье, у гістарычных крыніцах таксама сустраюцца напісанні Бересте, Бересть, у нямецкіх летапісах Брэйзіка. Тапонім «Берасце» ўтварыўся ад слова «бе́раст», «бе́расць» (дрэвавая ці куставая расліна сямейства вязавых). Значэнне мае хутчэй за ўсё зборнае — бераставы гай.”,
  “threshold”: “0.05”,
  “length”: “1”,
 },
 origin: “*”,
 contentType: “application/json; charset=utf-8”,
 headers: {
  “x-api-key” : “123”
 },
 success: function(msg) { },
 error: function(err) { }
});

Сервер вяртае JSON-масіў з наступнымі ключамі:

  • text – тэкст для рэзюмавання
  • threshold – «threshold» параметр
  • tolerance – «error tolerance» параметр
  • length – колькасць сказаў у рэзюме
  • summary – выніковае рэзюмэ

Напрыклад, паводле прыведзенага вышэй AJAX-запыту будзе сфарміраваны наступны адказ:

{
 “text”: “Брэст — горад у Беларусі, адміністрацыйны цэнтр Брэсцкай вобласці і Брэсцкага раёна, на рацэ Заходні Буг пры ўпадзенні ў яго Мухаўца. За 349 км ад Мінска. Тэрыторыя горада — 146,12 км². Насельніцтва 343 985 чал. З’яўляецца адным з найважнейшых транспартных вузлоў Беларусі. Эканамічны і культурны цэнтр, вузел чыгунак і аўтамабільных дарог, аэрапорт, рачны порт, звязаны Дняпроўска-Бугскім каналам з басейнамі Дняпра і Прыпяці. Упершыню згадваецца ў «Аповесці мінулых гадоў» пад назваю Бе́рестье, у гістарычных крыніцах таксама сустраюцца напісанні Бересте, Бересть, у нямецкіх летапісах Брэйзіка. Тапонім «Берасце» ўтварыўся ад слова «бе́раст», «бе́расць» (дрэвавая ці куставая расліна сямейства вязавых). Значэнне мае хутчэй за ўсё зборнае — бераставы гай.”,
 “threshold”: “0.05”,
 “tolerance”: “0.1”,
 “length”: “1”,
 “summary”: “Брэст — горад у Беларусі, адміністрацыйны цэнтр Брэсцкай вобласці і Брэсцкага раёна, на рацэ Заходні Буг пры ўпадзенні ў яго Мухаўца.”,
}

 

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

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

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Пакінуць каментарый

Your email address will not be published.