Numirea unui steward
Stemming este o tăiere de la terminalele cuvânt și sufixe la restul, numit stem. a fost același pentru toate formele gramaticale ale cuvântului. Desigur, în această formă, stemmerul poate funcționa numai cu limbile. care realizează schimbarea cuvântului prin aplicații. Exemple de astfel de limbi sunt rusă și engleză.
De obicei, un stemmer este folosit pentru a căuta textul cu o imitație a morfologiei contabile. Imitarea înseamnă un număr inevitabil de mare de erori și rezultate irelevante care apar dacă se folosește doar un steward. În limba rusă, sursa erorilor în ștanțare sunt toate posibile schimbări în rădăcina cuvântului - vocale runaway, de exemplu. Din punct de vedere vizual, problemele asociate cu utilizarea unui stemmer pot fi demonstrate pentru o pisică de substantiv rusesc. Pluralul genitiv are forma pisicilor. Astfel, cel mai lung prefix comun al tuturor formelor unei pisici de substantiv este kosh. Dacă căutați un text pe acest prefix, atunci este foarte probabil ca rezultatele să aibă cuvinte ca un coșmar. Observ că, de obicei, implementările stemmerului merg într-un mod diferit și fac o greșeală de alt fel - returnează prefixul pisicii atunci când se ștampilează și astfel fragmentele textului cu forma de pisici dispar din rezultatele căutării.
Ca o soluție la problema rezultatelor căutării slabe cu Stemmer pentru limba rusă, puteți utiliza două module suplimentare dicționar gramatică - lemmatizer și Flexer (declinări și conjugări). Cu ajutorul cuvintelor cheie lemmatizer poate duce la forma de bază, astfel încât, după cuvinte cheie cu potrivire STEM poate rafina rezultatul folosind lemmatization. Al doilea modul este un flexor care poate produce toate formele gramaticale ale unui cuvânt bazat pe cel de bază. Acest lucru vă permite să rafinați rezultatele căutării verificând fragmentele găsite pentru un set de formulare de cuvinte cheie.
Folosirea unui pachet de la un stemmer și un lemmator pentru căutarea textului cu morfologie este implementată în biblioteca StringLib.NET.
Generarea codului pentru tulpina
Stammer-ul este disponibil ca sursă în mai multe limbi de programare, inclusiv C, C # și PHP. Codul lui stemmer este creat automat în funcție de informațiile din dicționarul încărcat în baza de date SQL. Astfel, nu este necesar să specificați manual regulile de ștampilare, așa cum se face, de exemplu, în stema lui Porter.
Generatorul este scris în C # și se află în dosar. \ demo \ ai \ solarix \ ygres \ StemmerBuilder \ StemmerBuilder. Acesta este disponibil în textul sursă, împreună cu utilitarele pentru testarea automată, în distribuția SDK Pro.
.Versiunea NET a traductorului
Versiunea online a lui stemmer pe PHP
Introduceți un cuvânt rusesc în caseta de text, apoi faceți clic pe.
Aici vine rezultatul ștanțării.
Erori permise de tulpină
Erorile permise pentru ștanțare pot fi clasificate după cum urmează.
Erori ale ștampilelor de tip 1 dau o generalizare foarte generală și, prin urmare, sunt comparate cu formele gramaticale ale mai multor intrări în dicționar. Acesta este cel mai numeros grup de erori de ștampilare. De exemplu, dacă la ștampilare veți fi dat. atunci în viitor, căutarea textului va da o coincidență cu tine o sărbătoare. În limba rusă, poate fi foarte dificilă eliminarea completă a acestor erori, de exemplu, fălcile verbelor la conjugare dau forma unui padi și au căzut. ca rezultat, randamentul de ștanțare na. și aceasta este o extensie foarte mare atunci când căutați. Cu toate acestea, erorile de acest tip pot fi considerate ca o modalitate de a include în cuvintele de căutare cu un singur cuvânt - în exemplul cu o pisică pot fi formele unui felin adjectiv. Compensarea erorilor de primul tip este realizată cu succes fie prin introducerea unei liste de cuvinte stop, fie mai mult calitativ de către un lemmatizator sau flexor.
Erorile de eradicare a celui de-al doilea tip - trunchierea formei dă prea multă tulpină care nu este potrivită cu unele forme gramaticale ale aceluiași cuvânt. La astfel de erori conduce aspirația dezvoltatorului stemmerului de a găsi un compromis cu erorile de tipul 1 în cazul în care cuvântul bază se schimbă atunci când cuvântul se schimbă. Astfel de cuvinte sunt chiar în extrem de regulate în termeni de limbaj englez, de exemplu - un grup de verbe neregulate. În cazurile rusești, schimbările în bază nu sunt nici măcar motive pentru clasificarea unui cuvânt ca un grup de greseli, adesea acest fenomen. Ca un exemplu, care de obicei se împiedică de multe implementări ale lui stemmer, puteți lua cuvintele cat și tutu. care au forma de pisici și ambalaje. În mod obișnuit, tulpinile efectuează trunchierea pisicilor și păsărilor în aceste cazuri. care sunt incomparabile cu formele genitive și acuzative ale pluralului.
Erori de ștanțare a celui de-al treilea tip nu pot fi construite din cauza unei modificări a rădăcinii cuvântului, care lasă o singură literă în tulpină. Fie modelul de schimbare a cuvintelor implică utilizarea prefixelor. Un exemplu pentru primul caz este verbul care trebuie să se integreze. în formă de yelp. Cel de-al doilea caz apare în cadrul vocabularului gramatic pentru gradul comparativ de adjective și adverbi în limba rusă - de exemplu, este mai frumos ca o formă frumoasă a adjectivului. sau mai lent ca o formă de adverb încet.