Стемінг (англ. stemming) - це процес скорочення слова до основи шляхом відкидання допоміжних частин, таких як закінчення чи суфікс. Результати стемінгу іноді дуже схожі на визначення кореня слова, але його алгоритми базуються на інших принципах. Тому слово після обробки алгоритмом стемінгу (стематизації) може відрізнятися від морфологічного кореня слова. Стемінг застосовується в лінгвістичній морфології та в інформаційному пошуку. Багато пошукових систем використовують стемінг для об’єднання слів у яких збігаються форми після стематизації, вони вважають такі слова синонімами. Цей процес називають злиттям.
Комп’ютерна програма, що реалізує алгоритм стемінгу іноді має назву стемер.
Приклади
Під час стемінгу слова "швидко", "швидкий", "швидкі" будуть перетворені до форми "швидк". А слова "бігом", "бігаю", "бігати" взагалі до кореня слова "біг".
Історична довідка
Вперше алгоритм стемінгу був опублікований [en] у 1968. На свій час це була передова робота яка мала великий вплив на подальші дослідження у цьому напрямку.
Пізніше алгоритм стемінгу був написаний [en] та опублікований в липні 1980 у журналі Program. Цей алгоритм набув широкого поширення та став де-факто стандартним алгоритмом стемінгу для англійської мови. Доктор Портер отримав [en] у 2000 році за свою роботу над стемінгом та внесок у галузь пошуку інформації.
Існує досить багато реалізацій Портерівського алгоритму, що вільно поширюються у програмному забезпеченні, але деякі з них мають певні вади. Як результат, не всі алгоритми стемінгу видають результат, який від них очікують. Щоб зменшити подібні помилки Мартін Потер створив офіційну вільну реалізацію [ 14 травня 2012 у Wayback Machine.] алгоритму у 2000 році. А наступні кілька роки присвятив побудові [en], спеціального середовища для написання алгоритмів стемінгу, яке призначене для вдосконалення стемінгу англійської мови та написанню алгоритмів стемінгу ще для кількох мов.
Алгоритми
Існує кілька варіантів алгоритмів стемінгу, які відрізняються своєю точністю та продуктивністю.
Пошук за таблицею
Цей алгоритм використовує принцип пошуку за таблицею в якій зібрані всі можливі варіанти слів та їх форми після стемінгу. Перевагами цього методу є простота, швидкість та зручність обробки винятків з мовних правил. До недоліків слід віднести те, що таблиця пошуку має містити в собі всі форми слів: тобто алгоритм не буде працювати з новими словами (а як відомо, "живі" мови постійно поповнюються новими словами) і розміри такої таблиці можуть бути істотними. Для мов з відносно простою морфологією, таких як англійська, розміри таблиці пошуку доволі скромні, проте у аглютинативних мовах, наприклад, турецькій, кількість варіантів слів з одним коренем може йти на сотні.
Фрагмент таблиці пошуку, на прикладі слова "безпритульний":
Слово | Стемінг |
безпритульна | безпритул |
безпритульне | |
безпритульний | |
безпритульним | |
безпритульними | |
безпритульних | |
безпритульні | |
безпритульній | |
безпритульнім | |
безпритульного | |
безпритульної | |
безпритульному | |
безпритульною | |
безпритульну |
Відсічення закінчень та суфіксів
Ці алгоритми базуються на правилах, за якими можна скорочувати слово. Якщо взяти приклад з алгоритму пошуку за таблицею, то ці правила можуть мати такий вигляд:
- слово закінчується на "льна" - відсікаємо від слова "ьна";
- слово закінчується на "льне" - відсікаємо "ьне";
- слово закінчується на "льний" - відсікаємо "ьний";
- слово закінчується на "льним" - відсікаємо "ьним".
Кількість таких правил стемінгу набагато менша за таблицю з усіма словоформами, а тому алгоритм є досить компактним та продуктивним. Наведені вище 4 правила правильно обробляють наступні прикметники:
Слово | Стемінг |
безпритульна | безпритул |
повільне | повіл |
ортогональний | ортогонал |
цивільним | цивіл |
Проте алгоритм може робити хибні висновки і спотворювати форму стемінгу. Наприклад, слово "пальне" перетвориться на "пал" замість правильної форми "пальн". Тому враховуючи особливості мови набір правил по відсіченню закінчень та суфіксів може бути досить складним. До недоліків також слід віднести обробку винятків, коли базові слова мають змінну форму. Наприклад, слова "бігом" та "біжу" повинні мати після стемінгу однаковий вигляд "біг", але простим відсіканням закінчення це не можливо зробити. Алгоритм вимушений враховувати такі ситуації - це призводить до ускладнення правил, і врешті-решт негативно впливає на ефективність.
Лематизація
Це більш комплексний підхід, що базується на визначенні основи слова шляхом лематизації. Першим кроком цього алгоритму є у реченні, так званий POS tagging. На другому кроці, до слова застосовуються правила стемінгу відповідно до частини мови. Тобто слова "пальне" та "вітальне" мають проходити через різні ланцюжки правил, тому що "пальне" - іменник, а "вітальне" - прикметник. Теоретично алгоритми стемінгу, що базуються на лематизації повинні мати дуже високу якість і мінімальний відсоток помилок, але вони дуже залежні від правильності розпізнавання частин мови.
Стохастичні алгоритми
Стохастичні алгоритми базуються на ймовірності визначення основи слова. По своїй природі вони мають здатність "навчатися" і чим краща та більша база навчання, тим кращий результат їх роботи. База знань для цих алгоритмів - це набір логічних правил та таблиці пошуку. Після опрацювання слова стохастичним алгоритмом може з’явитися декілька варіантів основи слова, з яких алгоритм обере найімовірніший, на його думку, варіант.
Розглянемо приклад. Уявімо, що маємо лише одне логічне правило за яким від слова відсікаємо останні літери. База знань наведена у таблиці:
Слово | Стемінг | Закінчення |
особистість | особист | ість |
спогади | спогад | и |
дивними | дивн | ими |
У стовпці "Закінчення" наведений результат "навчання" алгоритму на базі знань, тобто якщо слова закінчуються на "ість", "и" чи "ими", то алгоритм знає що з ними робити. Для ілюстрації спробуємо виконати стемінг слова "кияни":
Слово | Закінчується на? | Результат | Числовий результат |
кияни | ість | ні | 0 |
кияни | и | так | 1 |
кияни | ими | ні | 0 |
Маємо один варінт (2-й рядок), тому слово після стемінгу - "киян". Але якщо передати цьому алгоритму слово "чуйними", то відповідь вже не однозначна:
Слово | Закінчується на? | Результат | Числовий результат |
чуйними | ість | ні | 0 |
чуйними | и | так | 1 |
чуйними | ими | так | 1 |
Перед нашим алгоритмом дилема, який варіант стемінгу обрати: "чуйним" чи "чуйн"? Ускладнення правила дозволяє розв'язати такі розбіжності: ми можемо віддавати перевагу стемінгу, який скорочує слово найбільше чи найменше.
Іноді алгоритми лематизації теж мають стохастичні властивості, коли частину мови вони визначають без урахування контексту, в якому це слово було вжито в реченні. У таких випадках перевага віддається найвірогіднішій частині мови для цього слова, і як результат - ймовірність помилок стемінгу зростає.
Гібридний підхід
При побудові гібридного алгоритму стемінгу може використовуватись комбінація алгоритмів, що наведені вище. Наприклад, алгоритм може використовувати метод відсікання закінчень та суфіксів, але на першому етапі виконувати пошук по таблиці. На відміну від пошуку по таблиці ця таблиця містить не всі словоформи, а тільки винятки з правил, які хибно обробляються алгоритмом, що відсікає закінчення.
Відсічення префіксів
Деякі стемери не обмежуються відсіченням від слова суфіксів та закінчень, а додатково намагаються позбавити слово ще й префіксу. Звичайно, не можна позбавляти всі слова префіксів, тому що після такого нерозбірливого стемінгу від слова "незалежний" утвориться "залежн", а це вже слово з протилежним змістом. Але існують слова, у яких префікс скоріше додає забарвлення ніж змінює значення слова, тому "проголошую", "наголошувати", "виголошував" цілком коректно скоротити до "голошу". Існують наукові праці, які обґрунтовують важливість таких алгоритмів стемінгу для деяких європейських мов.
Пошук відповідності
Ці алгоритми використовують базу знань, що містить в собі лише основи слів. Тобто ця база знань складається з тих слів в які перетворюються звичайні слова після стемінгу. Якщо порівнювати з пошуком по таблиці, то це слова з другого стовпця. Основна мета цих алгоритмів - через систему внутрішніх правил знайти для слова найвідповіднішу форму з бази знань. Одним з таких внутрішніх правил може бути довжина збігу слова та його основи. Наприклад, у базі знань є основи "чорн" та "чорняв". Порівнюючи зі словом "чорнява" у першому випадку спільна довжина 4 ("чорнява"), а у другому - 6 ("чорнява"), тому алгоритм обере довший варіант.
Стемінг різними мовами
Якщо перші академічні роботи зі стемінгу були присвячені лише англійській, то зараз існує доволі багато реалізацій стемінгу для інших мов. Від особливостей мови залежить складність написання алгоритмів стемінгу. Так якщо стемінг англійської це доволі тривіальна задача, то стемінг для арабської чи івриту - задача на порядок складніша.
Стемінг українською
Існують варіанти стемінгу для української мови.
Помилки стемінгу
У алгоритмах стемінгу поширені помилки 2-х типів:
Надстемінг - це коли під час стематизації два слова скорочуються до однієї основи, хоча це не мало б статися. Недостемінг - це протилежна помилка, коли слова отримують різні основи, хоча б мали мати одну спільну. Алгоритми стемінгу намагаються мінімізувати подібні помилки, проте скорочення помилок одного типу може призвести до зростання помилок іншого.
Посилання
- Julie Beth Lovins (1968). Development of a stemming algorithm. Mechanical Translation and Computational Linguistics 11:22–31.
- Jongejan, B. and H. Dalianis. Automatic training of lemmatization rules that handle morphological changes in pre-, in- and suffixes alike. In the Proceeding of the ACL-2009, Joint conference of the 47th Annual Meeting of the Association for Computational Linguistics and the 4th International Joint Conference on Natural Language Processing of the Asian Federation of Natural Language Processing, Singapore, August 2-7, 2009, pp. 145-153 [1] [ 18 березня 2012 у Wayback Machine.]
- Порівняння алгоритмів стемінгу для української мови [ 24 січня 2021 у Wayback Machine.] (англ.)
- Вероятностный морфологический анализатор русского и украинского языков [ 14 квітня 2012 у Wayback Machine.] (рос.)
- Модуль Drupal для стемінга українською [2] [ 20 серпня 2011 у Wayback Machine.]
- Hardcoded stemmer for Ukrainian [3] [ 10 червня 2018 у Wayback Machine.]
- Стемінг за словником в українському аналізаторі для Lucene [4] [ 8 листопада 2020 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Steming angl stemming ce proces skorochennya slova do osnovi shlyahom vidkidannya dopomizhnih chastin takih yak zakinchennya chi sufiks Rezultati stemingu inodi duzhe shozhi na viznachennya korenya slova ale jogo algoritmi bazuyutsya na inshih principah Tomu slovo pislya obrobki algoritmom stemingu stematizaciyi mozhe vidriznyatisya vid morfologichnogo korenya slova Steming zastosovuyetsya v lingvistichnij morfologiyi ta v informacijnomu poshuku Bagato poshukovih sistem vikoristovuyut steming dlya ob yednannya sliv u yakih zbigayutsya formi pislya stematizaciyi voni vvazhayut taki slova sinonimami Cej proces nazivayut zlittyam Komp yuterna programa sho realizuye algoritm stemingu inodi maye nazvu stemer PrikladiPid chas stemingu slova shvidko shvidkij shvidki budut peretvoreni do formi shvidk A slova bigom bigayu bigati vzagali do korenya slova big Istorichna dovidkaVpershe algoritm stemingu buv opublikovanij en u 1968 Na svij chas ce bula peredova robota yaka mala velikij vpliv na podalshi doslidzhennya u comu napryamku Piznishe algoritm stemingu buv napisanij en ta opublikovanij v lipni 1980 u zhurnali Program Cej algoritm nabuv shirokogo poshirennya ta stav de fakto standartnim algoritmom stemingu dlya anglijskoyi movi Doktor Porter otrimav en u 2000 roci za svoyu robotu nad stemingom ta vnesok u galuz poshuku informaciyi Isnuye dosit bagato realizacij Porterivskogo algoritmu sho vilno poshiryuyutsya u programnomu zabezpechenni ale deyaki z nih mayut pevni vadi Yak rezultat ne vsi algoritmi stemingu vidayut rezultat yakij vid nih ochikuyut Shob zmenshiti podibni pomilki Martin Poter stvoriv oficijnu vilnu realizaciyu 14 travnya 2012 u Wayback Machine algoritmu u 2000 roci A nastupni kilka roki prisvyativ pobudovi en specialnogo seredovisha dlya napisannya algoritmiv stemingu yake priznachene dlya vdoskonalennya stemingu anglijskoyi movi ta napisannyu algoritmiv stemingu she dlya kilkoh mov AlgoritmiIsnuye kilka variantiv algoritmiv stemingu yaki vidriznyayutsya svoyeyu tochnistyu ta produktivnistyu Poshuk za tabliceyu Cej algoritm vikoristovuye princip poshuku za tabliceyu v yakij zibrani vsi mozhlivi varianti sliv ta yih formi pislya stemingu Perevagami cogo metodu ye prostota shvidkist ta zruchnist obrobki vinyatkiv z movnih pravil Do nedolikiv slid vidnesti te sho tablicya poshuku maye mistiti v sobi vsi formi sliv tobto algoritm ne bude pracyuvati z novimi slovami a yak vidomo zhivi movi postijno popovnyuyutsya novimi slovami i rozmiri takoyi tablici mozhut buti istotnimi Dlya mov z vidnosno prostoyu morfologiyeyu takih yak anglijska rozmiri tablici poshuku dovoli skromni prote u aglyutinativnih movah napriklad tureckij kilkist variantiv sliv z odnim korenem mozhe jti na sotni Fragment tablici poshuku na prikladi slova bezpritulnij Slovo Stemingbezpritulna bezpritul bezpritulnebezpritulnijbezpritulnimbezpritulnimibezpritulnihbezpritulnibezpritulnijbezpritulnimbezpritulnogobezpritulnoyibezpritulnomubezpritulnoyubezpritulnuVidsichennya zakinchen ta sufiksiv Ci algoritmi bazuyutsya na pravilah za yakimi mozhna skorochuvati slovo Yaksho vzyati priklad z algoritmu poshuku za tabliceyu to ci pravila mozhut mati takij viglyad slovo zakinchuyetsya na lna vidsikayemo vid slova na slovo zakinchuyetsya na lne vidsikayemo ne slovo zakinchuyetsya na lnij vidsikayemo nij slovo zakinchuyetsya na lnim vidsikayemo nim Kilkist takih pravil stemingu nabagato mensha za tablicyu z usima slovoformami a tomu algoritm ye dosit kompaktnim ta produktivnim Navedeni vishe 4 pravila pravilno obroblyayut nastupni prikmetniki Slovo Stemingbezpritulna bezpritulpovilne povilortogonalnij ortogonalcivilnim civil Prote algoritm mozhe robiti hibni visnovki i spotvoryuvati formu stemingu Napriklad slovo palne peretvoritsya na pal zamist pravilnoyi formi paln Tomu vrahovuyuchi osoblivosti movi nabir pravil po vidsichennyu zakinchen ta sufiksiv mozhe buti dosit skladnim Do nedolikiv takozh slid vidnesti obrobku vinyatkiv koli bazovi slova mayut zminnu formu Napriklad slova bigom ta bizhu povinni mati pislya stemingu odnakovij viglyad big ale prostim vidsikannyam zakinchennya ce ne mozhlivo zrobiti Algoritm vimushenij vrahovuvati taki situaciyi ce prizvodit do uskladnennya pravil i vreshti resht negativno vplivaye na efektivnist Lematizaciya Ce bilsh kompleksnij pidhid sho bazuyetsya na viznachenni osnovi slova shlyahom lematizaciyi Pershim krokom cogo algoritmu ye u rechenni tak zvanij POS tagging Na drugomu kroci do slova zastosovuyutsya pravila stemingu vidpovidno do chastini movi Tobto slova palne ta vitalne mayut prohoditi cherez rizni lancyuzhki pravil tomu sho palne imennik a vitalne prikmetnik Teoretichno algoritmi stemingu sho bazuyutsya na lematizaciyi povinni mati duzhe visoku yakist i minimalnij vidsotok pomilok ale voni duzhe zalezhni vid pravilnosti rozpiznavannya chastin movi Stohastichni algoritmi Stohastichni algoritmi bazuyutsya na jmovirnosti viznachennya osnovi slova Po svoyij prirodi voni mayut zdatnist navchatisya i chim krasha ta bilsha baza navchannya tim krashij rezultat yih roboti Baza znan dlya cih algoritmiv ce nabir logichnih pravil ta tablici poshuku Pislya opracyuvannya slova stohastichnim algoritmom mozhe z yavitisya dekilka variantiv osnovi slova z yakih algoritm obere najimovirnishij na jogo dumku variant Rozglyanemo priklad Uyavimo sho mayemo lishe odne logichne pravilo za yakim vid slova vidsikayemo ostanni literi Baza znan navedena u tablici Slovo Steming Zakinchennyaosobistist osobist istspogadi spogad idivnimi divn imi U stovpci Zakinchennya navedenij rezultat navchannya algoritmu na bazi znan tobto yaksho slova zakinchuyutsya na ist i chi imi to algoritm znaye sho z nimi robiti Dlya ilyustraciyi sprobuyemo vikonati steming slova kiyani Slovo Zakinchuyetsya na Rezultat Chislovij rezultatkiyani ist ni 0kiyani i tak 1kiyani imi ni 0 Mayemo odin varint 2 j ryadok tomu slovo pislya stemingu kiyan Ale yaksho peredati comu algoritmu slovo chujnimi to vidpovid vzhe ne odnoznachna Slovo Zakinchuyetsya na Rezultat Chislovij rezultatchujnimi ist ni 0chujnimi i tak 1chujnimi imi tak 1 Pered nashim algoritmom dilema yakij variant stemingu obrati chujnim chi chujn Uskladnennya pravila dozvolyaye rozv yazati taki rozbizhnosti mi mozhemo viddavati perevagu stemingu yakij skorochuye slovo najbilshe chi najmenshe Inodi algoritmi lematizaciyi tezh mayut stohastichni vlastivosti koli chastinu movi voni viznachayut bez urahuvannya kontekstu v yakomu ce slovo bulo vzhito v rechenni U takih vipadkah perevaga viddayetsya najvirogidnishij chastini movi dlya cogo slova i yak rezultat jmovirnist pomilok stemingu zrostaye Gibridnij pidhid Pri pobudovi gibridnogo algoritmu stemingu mozhe vikoristovuvatis kombinaciya algoritmiv sho navedeni vishe Napriklad algoritm mozhe vikoristovuvati metod vidsikannya zakinchen ta sufiksiv ale na pershomu etapi vikonuvati poshuk po tablici Na vidminu vid poshuku po tablici cya tablicya mistit ne vsi slovoformi a tilki vinyatki z pravil yaki hibno obroblyayutsya algoritmom sho vidsikaye zakinchennya Vidsichennya prefiksiv Deyaki stemeri ne obmezhuyutsya vidsichennyam vid slova sufiksiv ta zakinchen a dodatkovo namagayutsya pozbaviti slovo she j prefiksu Zvichajno ne mozhna pozbavlyati vsi slova prefiksiv tomu sho pislya takogo nerozbirlivogo stemingu vid slova nezalezhnij utvoritsya zalezhn a ce vzhe slovo z protilezhnim zmistom Ale isnuyut slova u yakih prefiks skorishe dodaye zabarvlennya nizh zminyuye znachennya slova tomu progoloshuyu nagoloshuvati vigoloshuvav cilkom korektno skorotiti do goloshu Isnuyut naukovi praci yaki obgruntovuyut vazhlivist takih algoritmiv stemingu dlya deyakih yevropejskih mov Poshuk vidpovidnosti Ci algoritmi vikoristovuyut bazu znan sho mistit v sobi lishe osnovi sliv Tobto cya baza znan skladayetsya z tih sliv v yaki peretvoryuyutsya zvichajni slova pislya stemingu Yaksho porivnyuvati z poshukom po tablici to ce slova z drugogo stovpcya Osnovna meta cih algoritmiv cherez sistemu vnutrishnih pravil znajti dlya slova najvidpovidnishu formu z bazi znan Odnim z takih vnutrishnih pravil mozhe buti dovzhina zbigu slova ta jogo osnovi Napriklad u bazi znan ye osnovi chorn ta chornyav Porivnyuyuchi zi slovom chornyava u pershomu vipadku spilna dovzhina 4 chornyava a u drugomu 6 chornyava tomu algoritm obere dovshij variant Steming riznimi movamiYaksho pershi akademichni roboti zi stemingu buli prisvyacheni lishe anglijskij to zaraz isnuye dovoli bagato realizacij stemingu dlya inshih mov Vid osoblivostej movi zalezhit skladnist napisannya algoritmiv stemingu Tak yaksho steming anglijskoyi ce dovoli trivialna zadacha to steming dlya arabskoyi chi ivritu zadacha na poryadok skladnisha Steming ukrayinskoyu Isnuyut varianti stemingu dlya ukrayinskoyi movi Pomilki steminguU algoritmah stemingu poshireni pomilki 2 h tipiv nadsteming angl overstemming nedosteming angl understemming Nadsteming ce koli pid chas stematizaciyi dva slova skorochuyutsya do odniyeyi osnovi hocha ce ne malo b statisya Nedosteming ce protilezhna pomilka koli slova otrimuyut rizni osnovi hocha b mali mati odnu spilnu Algoritmi stemingu namagayutsya minimizuvati podibni pomilki prote skorochennya pomilok odnogo tipu mozhe prizvesti do zrostannya pomilok inshogo PosilannyaJulie Beth Lovins 1968 Development of a stemming algorithm Mechanical Translation and Computational Linguistics 11 22 31 Jongejan B and H Dalianis Automatic training of lemmatization rules that handle morphological changes in pre in and suffixes alike In the Proceeding of the ACL 2009 Joint conference of the 47th Annual Meeting of the Association for Computational Linguistics and the 4th International Joint Conference on Natural Language Processing of the Asian Federation of Natural Language Processing Singapore August 2 7 2009 pp 145 153 1 18 bereznya 2012 u Wayback Machine Porivnyannya algoritmiv stemingu dlya ukrayinskoyi movi 24 sichnya 2021 u Wayback Machine angl Veroyatnostnyj morfologicheskij analizator russkogo i ukrainskogo yazykov 14 kvitnya 2012 u Wayback Machine ros Modul Drupal dlya steminga ukrayinskoyu 2 20 serpnya 2011 u Wayback Machine Hardcoded stemmer for Ukrainian 3 10 chervnya 2018 u Wayback Machine Steming za slovnikom v ukrayinskomu analizatori dlya Lucene 4 8 listopada 2020 u Wayback Machine