ciot Cum funcționează clasificarea textului? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Cum funcționează clasificarea textului?

mm
Actualizat on

Clasificarea textului este procesul de analiză a secvențelor de text și de atribuire a acestora unei etichete, plasându-le într-un grup în funcție de conținutul lor. Clasificarea textului stă la baza aproape oricărei sarcini de AI sau de învățare automată care implică procesarea limbajului natural (NLP). Cu clasificarea textului, un program de calculator poate îndeplini o mare varietate de sarcini diferite, cum ar fi recunoașterea spamului, analiza sentimentelor și funcțiile chatbot. Cum funcționează exact clasificarea textului? Care sunt diferitele metode de realizare a clasificării textelor? Vom explora răspunsurile la aceste întrebări mai jos.

Definirea clasificării textului

Este important să luăm ceva timp și să ne asigurăm că înțelegem ce este clasificarea textului, în general, înainte de a explora diferitele metode de a face clasificarea textului. Clasificarea textului este unul dintre acei termeni care se aplică multor sarcini și algoritmi diferiți, așa că este util să ne asigurăm că înțelegem conceptul de bază al clasificării textului înainte de a trece la explorarea diferitelor moduri în care poate fi realizată.

Orice lucru care implică crearea de categorii diferite pentru text și apoi etichetarea diferitelor mostre de text ca aceste categorii, poate fi considerat clasificare a textului. Atâta timp cât un sistem realizează acești pași de bază poate fi considerat un clasificator de text, indiferent de metoda exactă folosită pentru clasificarea textului și indiferent de modul în care este aplicat în cele din urmă clasificatorul de text. Detectarea spam-ului prin e-mail, organizarea documentelor după subiect sau titlu și recunoașterea sentimentului unei recenzii pentru un produs sunt toate exemple de clasificare a textului, deoarece acestea sunt realizate prin luarea textului ca intrare și etichetarea unei clase pentru acea bucată de text.

Cum funcționează clasificarea textului?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)

Majoritatea metodelor de clasificare a textului pot fi plasate în una din trei categorii diferite: metode bazate pe reguli sau metode de învățare automată.

Metode de clasificare bazate pe reguli

Metodele de clasificare a textului bazate pe reguli funcționează prin utilizarea unor reguli lingvistice concepute în mod explicit. Sistemul folosește regulile create de inginer pentru a determina cărei clase ar trebui să aparțină o anumită bucată de text, căutând indicii sub forma unor elemente de text relevante din punct de vedere semantic. Fiecare regulă are un model cu care textul trebuie să se potrivească pentru a fi plasat în categoria corespunzătoare.

Pentru a fi mai concret, să presupunem că doriți să proiectați un clasificator de text capabil să distingă subiectele comune de conversație, cum ar fi vremea, filmele sau mâncarea. Pentru a permite clasificatorului de text să recunoască discuțiile despre vreme, îi puteți spune să caute cuvinte legate de vreme în corpul eșantioanelor de text pe care le furnizează. Veți avea o listă de cuvinte cheie, expresii și alte modele relevante care ar putea fi folosite pentru a distinge subiectul. De exemplu, puteți instrui clasificatorul să caute cuvinte precum „vânt”, „ploaie”, „soare”, „zăpadă” sau „nor”. Apoi, puteți solicita clasificatorului să caute textul de intrare și să numere de câte ori aceste cuvinte apar în corpul textului și, dacă apar mai frecvent decât cuvintele legate de filme, ați clasifica textul ca aparținând clasei meteo.

Avantajul sistemelor bazate pe reguli este că intrările și ieșirile lor sunt previzibile și interpretabile de către oameni și pot fi îmbunătățite prin intervenția manuală a inginerului. Cu toate acestea, metodele de clasificare bazate pe reguli sunt, de asemenea, oarecum fragile și adesea le este dificil să se generalizeze, deoarece pot adera doar la modelele predefinite în care au fost programate. De exemplu, cuvântul „nor” s-ar putea referi la umiditatea din cer sau s-ar putea referi la un nor digital în care sunt stocate datele. Este dificil pentru sistemele bazate pe reguli să gestioneze aceste nuanțe fără ca inginerii să petreacă o perioadă destul de mare de timp încercând să anticipeze și să ajusteze manual aceste subtilități.

Sisteme de învățare automată

După cum sa menționat mai sus, sistemele bazate pe reguli au limitări, deoarece funcțiile și regulile lor trebuie să fie preprogramate. În schimb, sistemele de clasificare bazate pe învățarea automată funcționează prin aplicarea de algoritmi care analizează seturi de date pentru modele care sunt asociate cu o anumită clasă.

Algoritmii de învățare automată sunt alimentați cu instanțe preetichetate/preclasificate care sunt analizate pentru funcții relevante. Aceste instanțe preetichetate sunt datele de antrenament.

Clasificatorul de învățare automată analizează datele de antrenament și învață modele care sunt asociate cu diferitele clase. După aceasta, instanțele nevăzute sunt îndepărtate de etichetele lor și transmise algoritmului de clasificare care atribuie instanțelor o etichetă. Etichetele atribuite sunt apoi comparate cu etichetele originale pentru a vedea cât de precis a fost clasificatorul de învățare automată, evaluând cât de bine a învățat modelul ce tipare prezic ce clase.

Algoritmii de învățare automată funcționează prin analiza datelor numerice. Aceasta înseamnă că, pentru a utiliza un algoritm de învățare automată pe datele text, textul trebuie convertit într-un format numeric. Există diverse metode de codificare a datelor text ca date numerice și de creare a metodelor de învățare automată în jurul acestor date. Vom acoperi câteva dintre diferitele moduri de a reprezenta datele text mai jos.

Pungă de Cuvinte

Pungă de cuvinte este una dintre cele mai frecvent utilizate abordări pentru codificarea și reprezentarea datelor text. Termenul „pungă de cuvinte” provine din faptul că, în esență, iei toate cuvintele din documente și le pui pe toate într-o singură „pungă” fără să fii atent la ordinea cuvintelor sau la gramatică, acordând atenție doar la frecvența cuvintelor in punga. Rezultă o matrice lungă, sau vector, care conține o singură reprezentare a tuturor cuvintelor din documentele de intrare. Deci, dacă există 10000 de cuvinte unice în total în documentele de intrare, vectorii de caracteristici vor avea o lungime de 10000 de cuvinte. Acesta este modul în care se calculează dimensiunea cuvântului sac/vector de caracteristici.

Foto: gk_ prin Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

După ce dimensiunea vectorului caracteristic a fost determinată, fiecărui document din lista totală de documente i se atribuie propriul său vector, umplut cu numere care indică de câte ori apare cuvântul în cauză în documentul curent. Aceasta înseamnă că, dacă cuvântul „mâncare” apare de opt ori într-un document text, acel vector de caracteristici/matrice de caracteristici corespunzătoare va avea un opt în poziția corespunzătoare.

Cu alte cuvinte, toate cuvintele unice care apar în documentele de intrare sunt îngrămădite într-o singură pungă și apoi fiecare document primește un vector de cuvinte de aceeași dimensiune, care este apoi completat cu numărul de ori în care cuvintele diferite apar în document. .

Seturile de date text vor conține adesea un număr mare de cuvinte unice, dar cele mai multe dintre ele nu sunt folosite foarte frecvent. Din acest motiv, numărul de cuvinte folosite pentru a crea vectorul de cuvinte este de obicei limitat la o valoare aleasă (N) și apoi dimensiunea vectorului caracteristic va fi Nx1.

Frecvența termenului - Frecvența inversă a documentului (TF-IDF)

Un alt mod de a reprezenta un document pe baza cuvintelor din acesta este dublat Frecvența termenului - Frecvența inversă a documentului (TF-IDF). O abordare TF-IDF creează, de asemenea, un vector care reprezintă documentul pe baza cuvintelor din acesta, dar spre deosebire de Bag-of-words, aceste cuvinte sunt ponderate cu mai mult decât doar frecvența lor. TF-IDF ia în considerare importanța cuvintelor din documente, încercând să cuantifice cât de relevant este acel cuvânt pentru subiectul documentului. Cu alte cuvinte, TF-IDF analizează relevanța în loc de frecvență, iar numărul de cuvinte dintr-un vector caracteristic este înlocuit cu un scor TF-IDF care este calculat cu privire la întregul set de date.

O abordare TF-IDF operează prin calcularea mai întâi a frecvenței termenilor, de câte ori apar termenii unici într-un anumit document. Cu toate acestea, TF-IDF are grijă, de asemenea, să limiteze influența cuvintelor extrem de comune precum „the”, „sau” și „și”, deoarece aceste „stopwords” sunt foarte comune, dar transmit foarte puține informații despre conținutul documentului. Aceste cuvinte trebuie să fie reduse, la care se referă partea „frecvență inversă a documentelor” din TF-IDF. Acest lucru se face deoarece cu cât un anumit cuvânt apare în mai multe documente, cu atât acel cuvânt este mai puțin util pentru a-l diferenția de celelalte documente din lista tuturor documentelor. Formula pe care TF-IDF o folosește pentru a calcula importanța unui cuvânt este concepută pentru a păstra cuvintele care sunt cele mai frecvente și cele mai bogate din punct de vedere semantic.

Vectorii caracteristici creați prin abordarea TF-IDF conțin valori normalizate care se însumează la unu, atribuind fiecărui cuvânt o valoare ponderată calculată prin formula TF-IDF.

Încorporarea cuvintelor

Încorporarea cuvintelor sunt metode de reprezentare a textului care asigură faptul că cuvintele cu semnificații similare au reprezentări numerice similare.

Încorporarea cuvintelor operează prin „vectorizarea” cuvintelor, adică reprezintă cuvintele ca vectori cu valori reale într-un spațiu vectorial. Vectorii există într-o grilă sau matrice și au o direcție și lungime (sau magnitudine). Când se reprezintă cuvintele ca vectori, cuvintele sunt convertite în vectori formați din valori reale. Fiecare cuvânt este mapat la un vector, iar cuvintele care au sens similar au direcție și magnitudine similare. Acest tip de codificare face posibil ca un algoritm de învățare automată să învețe relații complicate între cuvinte.

Înglobările care reprezintă cuvinte diferite sunt create în funcție de modul în care sunt utilizate cuvintele în cauză. Deoarece cuvintele care sunt folosite în moduri similare vor avea vectori similari, procesul de creare a înglobărilor de cuvinte traduce automat o parte din sensul pe care îl au cuvintele. O abordare a unui sac de cuvinte, prin contrast, creează reprezentări fragile în care cuvintele diferite vor avea reprezentări diferite, chiar dacă sunt folosite în contexte foarte asemănătoare.

Ca rezultat, încorporarea cuvintelor este mai bună la captarea contextului cuvintelor dintr-o propoziție.

Există diferiți algoritmi și abordări utilizate pentru a crea înglobări de cuvinte. Unele dintre cele mai comune și mai fiabile metode de încorporare a cuvintelor includ: încorporarea de straturi, word2vec și GloVe.

Încorporarea straturilor

O modalitate potențială de a utiliza încorporarea de cuvinte alături de un sistem de învățare automată/învățare profundă este să utilizați un strat de încorporare. Straturile de încorporare sunt straturi de învățare profundă care convertesc cuvintele în înglobare care sunt apoi introduse în restul sistemului de învățare profundă. Cuvintele înglobări sunt învățate pe măsură ce rețeaua se antrenează pentru o anumită sarcină bazată pe text.

Într-o abordare de încorporare a cuvintelor, cuvintele similare vor avea reprezentări similare și vor fi mai aproape unele de altele decât de cuvinte diferite.

Pentru a utiliza straturile de încorporare, textul trebuie mai întâi preprocesat. Textul din document trebuie să fie codificat one-hot, iar dimensiunea vectorului trebuie specificată în prealabil. Textul one-hot este apoi convertit în vectori de cuvinte, iar vectorii sunt trecuți în modelul de învățare automată.

Word2Old

Word2Old este o altă metodă comună de încorporare a cuvintelor. Word2Vec folosește metode statistice pentru a converti cuvintele în înglobare și este optimizat pentru utilizare cu modele bazate pe rețele neuronale. Word2Vec a fost dezvoltat de cercetătorii Google și este una dintre cele mai frecvent utilizate metode de încorporare, deoarece oferă în mod fiabil înglobări utile și bogate. Reprezentările Word2Vec sunt utile pentru identificarea comunităților semantice și sintactice în limbaj. Aceasta înseamnă că reprezentările Word2Vec captează relații între concepte similare, putând distinge faptul că comunitatea dintre „Rege” și „Regină” este regalitate și că „Rege” implică „bărbat” în timp ce Queen implică „femeie”.

Mănușă

GloVE sau vector global pentru reprezentarea cuvântului, se bazează pe algoritmii de încorporare utilizați de Word2Vec. Metodele de încorporare GloVe combină atât aspectele Word2Vec, cât și tehnicile de factorizare matrice, cum ar fi Analiza Semantică Latentă. Avantajul Word2Vec este că poate capta context, dar ca compromis captează slab statisticile globale ale textului. În schimb, reprezentările vectoriale tradiționale sunt bune la determinarea statisticilor globale ale textului, dar nu sunt utile pentru determinarea contextului cuvintelor și frazelor. GloVE se bazează pe cele mai bune dintre ambele abordări, creând un context de cuvânt bazat pe statistici globale ale textului.

Blogger și programator cu specialități în Invatare mecanica și Invatare profunda subiecte. Daniel speră să-i ajute pe alții să folosească puterea AI pentru binele social.