Stemming și lematizare în Python: pe care să folosiți?

Publicat: 2021-02-09

Procesarea limbajului natural (NLP) este o tehnică de procesare a comunicării care implică extragerea unor caracteristici importante din limbaj. Este un progres în inteligența artificială care implică construirea de agenți inteligenți cu experiență anterioară. Experiența anterioară aici se referă la instruirea care este efectuată pe seturi de date uriașe care implică date textuale din surse, inclusiv rețelele sociale, web scraping, formulare de sondaj și multe alte tehnici de colectare a datelor.

Pasul inițial după colectarea datelor este curățarea acestor date și conversia în forma care poate fi citită de mașină, forma numerică pe care mașina o poate interpreta. În timp ce procesul de conversie este cu totul altceva, procesul de curățare este primul pas care trebuie efectuat. În această sarcină de curățare, flexiunea este un concept important care necesită o înțelegere clară înainte de a trece la stemming și lematizare.

Cuprins

Inflexiune

Știm că datele textuale cuprind propoziții cu cuvinte și alte caractere care pot sau nu influența predicțiile noastre. Propozițiile cuprind cuvinte și cuvintele care sunt utilizate în mod obișnuit, cum ar fi este, acolo și, sunt numite cuvinte stop. Acestea pot fi îndepărtate cu ușurință prin formarea unui corpus pentru ele, dar cum rămâne cu diferitele forme ale aceluiași cuvânt?

Nu doriți ca mașina dvs. să considere „studiul” și „studiul” drept cuvinte diferite, deoarece intenția din spatele acestor cuvinte rămâne aceeași și ambele transmit același sens. Tratarea acestui tip de cazuri este o practică obișnuită în NLP, iar aceasta este cunoscută sub numele de inflexiune. Aceasta este ideea de bază a derivației și lematizării cu abordări diferite. Să descoperim diferențele dintre ele și să aruncăm o privire la care dintre ele este mai bine să folosim.

tulpini

Este una dintre tehnicile de normalizare a textului care se concentrează pe reducerea ambiguității cuvintelor. Strângerea se concentrează pe dezlipirea cuvântului cu cuvântul stem. O face prin eliminarea prefixelor sau sufixelor, în funcție de cuvântul luat în considerare. Această tehnică reduce cuvintele conform setului definit de reguli.

Cuvintele rezultate pot avea sau nu cuvinte rădăcină cu sens real. Scopul său principal este de a forma grupuri de cuvinte similare împreună, astfel încât preprocesarea ulterioară să poată fi optimizată. De exemplu, cuvinte precum joacă, joacă și jucat aparțin cuvântului principal „joc”. Acest lucru ajută, de asemenea, la reducerea timpului de căutare în motoarele de căutare, deoarece acum se acordă mai multă atenție elementului cheie.

Două cazuri trebuie discutate în ceea ce privește tulpinarea, adică supraaburarea și sub tulpina . În timp ce eliminarea prefixelor și sufixelor din cuvânt rezolvă unele cazuri, unele cuvinte sunt eliminate mai mult decât cerințele.

Acest lucru poate duce la mai multe cuvinte de gunoi fără sens. Deși acesta este dezavantajul tulpinării în ansamblu, iar dacă se întâmplă mai drastic, este cunoscut sub numele de supra-tulpină. Sub stemming este inversul în care procesul de stemming are ca rezultat foarte puțin sau diferență în cuvinte.

Lematizare

O altă abordare pentru normalizarea textului și convertirea lor în semnificații rădăcină este lematizarea. Acesta are același motiv de a grupa cuvinte cu intenții similare într-un singur grup, dar diferența este că aici cuvintele rezultate au sens.

Ele nu sunt îndepărtate cu reguli predefinite, ci sunt formate folosind un dicționar sau îi numim Lemă. Aici procesul de conversie durează mai mult, deoarece, mai întâi, cuvintele sunt potrivite cu părțile lor de vorbire, ceea ce în sine este un proces care necesită timp.

Acest lucru asigură că cuvântul rădăcină are un sens literal care ajută la obținerea de rezultate bune în analiză. Acest lucru este util atunci când nu dorim să petrecem mult timp pentru curățarea datelor, iar date mai curate sunt necesare pentru analize ulterioare. Un dezavantaj al acestei tehnici este că, pe măsură ce se concentrează mai mult pe gramatica cuvintelor, diferitele limbi ar necesita corpuri separate, ceea ce duce la o manipulare din ce în ce mai mare a datelor.

Checkout: Idei de proiecte de învățare profundă pentru începători

Pe care să folosiți?

Acum vine punctul de a-l alege pe cel dintre ei doi. Este foarte subiectiv să alegeți pe oricine, deoarece cazul de utilizare pe care îl vizați joacă un rol major aici.

Dacă doriți să analizați o bucată de text, dar timpul este o constrângere, atunci puteți opta pentru stemming, deoarece efectuează această acțiune în mai puțin timp, dar cu o rată de succes scăzută, iar tulpinile sunt furnizate printr-un mod algoritmic care poate să nu aibă sens.

Adoptarea lematizării oferă un avantaj suplimentar de a obține cuvinte rădăcină semnificative și precise, strânse din diferite forme. Dacă vă puteți permite resurse de calcul bune cu mai mult timp, atunci aceasta poate fi o alegere mai bună. Acest lucru ar trebui adoptat acolo unde dorim o analiză precisă. Poate fi și cazul unor tehnici de căutare pe motoarele de căutare în care cuvântul rădăcină este suficient pentru a obține rezultatele dorite de utilizator.

Implementarea Python

Pachetul NLTK (Natural Language Tool Kit) este implementarea Python a sarcinilor din jurul NLP. Această bibliotecă are toate instrumentele necesare, cum ar fi Stemmers. Lematizoare, eliminarea cuvintelor oprite, crearea de arbori de analiză personalizat și multe altele. Conține, de asemenea, datele corpus din surse importante incluse în pachetul în sine.

Tehnica stemming are multe implementări, dar cea mai populară și mai veche este algoritmul Porter Stemmer. Stemmer-ul bulgăre de zăpadă este, de asemenea, folosit în unele proiecte. Pentru a înțelege mai clar diferența dintre stemming și lematizare, priviți codul de mai jos și rezultatul acestuia:

import nltk

din nltk.stem import PorterStemmer

din nltk.stem import WordNetLemmatizer

word_stemmer = PorterStemmer()

lematizer = WordNetLemmatizer()

print(lemmatizer.lemmatize('muște'))

print(word_stemmer.stem('muște'))

Ieșire:

a zbura

fli

Prima ieșire este de la lematizator și a doua de la stemmer. Puteți vedea diferența că lematizatorul a dat cuvântul rădăcină ca rezultat, în timp ce stemmer-ul tocmai a tăiat cuvântul de la sfârșit.

Învață cursuri de știință a datelor de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Citește și: Idei de proiecte de învățare automată

Concluzie

NLP crește în fiecare zi și noi metode evoluează în timp. Cele mai multe dintre ele se concentrează asupra modului de a extrage eficient informațiile corecte din datele text cu pierderi minime și eliminând toate zgomotele. Ambele tehnici sunt utilizate în mod popular. Tot ce contează este ca analiza să fie efectuată pe date curate.

Care sunt cele două tipuri de algoritmi AI utilizați pentru a clusteriza documentele?

Clustering ierarhic și clustering non-ierarhic sunt cele două tipuri de algoritmi AI utilizați pentru a grupa texte. Algoritmul de grupare ierarhică împarte și agregează documentele conform unui set de reguli. Perechile de grupuri de elemente de date ale ierarhiei sunt apoi conectate împreună. Deși această tehnică este ușor de citit și de înțeles, este posibil să nu fie la fel de eficientă ca gruparea neierarhică. Când există o mulțime de defecte în date, gruparea poate fi dificilă. Gruparea non-ierarhică presupune fuzionarea și ruperea clusterelor existente pentru a crea altele noi. Aceasta este o abordare de grupare care este comparativ mai rapidă, mai de încredere și mai stabilă.

Este preferată lematizarea pentru analiza sentimentelor?

Lematizarea și stemmingul sunt ambele proceduri extrem de eficiente. Când este convertită în formă rădăcină, totuși, lematizarea dă întotdeauna termenul care înseamnă dicționar. Atunci când sensul termenului nu este esențial pentru studiu, atunci se recomandă smulgerea. Când sensul unui cuvânt este vital pentru analiză, se recomandă lematizarea. Ca rezultat, dacă ar trebui să alegeți o abordare pentru analiza sentimentelor, lematizarea ar fi cea mai potrivită.

Cum sunt folosite stemming și lematizarea pentru gruparea documentelor?

Gruparea documentelor, cunoscută și sub denumirea de grupare a textului, este o metodă de analiză a textelor textuale prin gruparea acestora. Aplicațiile sale variază de la aranjarea automată a documentelor până la extragerea subiectelor și chiar recuperarea rapidă a informațiilor. Stemming și lematizarea sunt folosite pentru a reduce numărul de jetoane necesare pentru a comunica aceeași informație, îmbunătățind astfel tehnica generală. În urma acestui pas de preprocesare, caracteristicile sunt calculate prin măsurarea frecvenței fiecărui token, urmată de cele mai eficiente abordări de grupare.