škrbina Kako funkcionira klasifikacija teksta? - Ujedinite se.AI
Povežite se s nama
Majstorski tečaj umjetne inteligencije:

AI 101

Kako funkcionira klasifikacija teksta?

mm
Ažurirano on

Klasifikacija teksta je proces analiziranja tekstualnih nizova i dodjeljivanja im oznake, stavljajući ih u grupu na temelju njihovog sadržaja. Klasifikacija teksta nalazi se u osnovi gotovo svakog zadatka umjetne inteligencije ili strojnog učenja koji uključuje obradu prirodnog jezika (NLP). Uz klasifikaciju teksta, računalni program može izvršiti širok raspon različitih zadataka kao što su prepoznavanje neželjene pošte, analiza raspoloženja i funkcije chatbota. Kako točno funkcionira klasifikacija teksta? Koje su različite metode provođenja klasifikacije teksta? U nastavku ćemo istražiti odgovore na ova pitanja.

Definiranje klasifikacije teksta

Važno je odvojiti malo vremena i pobrinuti se da razumijemo što je klasifikacija teksta, općenito, prije nego što se upustimo u različite metode klasifikacije teksta. Klasifikacija teksta jedan je od onih izraza koji se primjenjuje na mnogo različitih zadataka i algoritama, stoga je korisno provjeriti razumijemo li osnovni koncept klasifikacije teksta prije nego što krenemo s istraživanjem različitih načina na koje se ona može izvesti.

Sve što uključuje stvaranje različitih kategorija za tekst, a zatim označavanje različitih uzoraka teksta kao tih kategorija, može se smatrati klasifikacijom teksta. Sve dok sustav provodi ove osnovne korake, može se smatrati klasifikatorom teksta, bez obzira na točnu metodu koja se koristi za klasificiranje teksta i bez obzira na to kako se klasifikator teksta na kraju primijeni. Otkrivanje neželjene e-pošte, organiziranje dokumenata po temi ili naslovu i prepoznavanje osjećaja recenzije proizvoda primjeri su klasifikacije teksta jer se postižu uzimanjem teksta kao ulaza i ispisivanjem oznake klase za taj dio teksta.

Kako funkcionira klasifikacija teksta?

Fotografija: Quinn Dombrowski putem Flickra, CC BY SA 2.0, (https://www.flickr.com/photos/quinnanya/4714794045)

Većina metoda klasifikacije teksta može se smjestiti u jednu od tri različite kategorije: metode temeljene na pravilima ili metode strojnog učenja.

Metode klasifikacije temeljene na pravilima

Metode klasifikacije teksta temeljene na pravilima funkcioniraju korištenjem eksplicitno projektiranih lingvističkih pravila. Sustav koristi pravila koja je izradio inženjer kako bi odredio kojoj bi klasi određeni dio teksta trebao pripadati, tražeći tragove u obliku semantički relevantnih elemenata teksta. Svako pravilo ima uzorak s kojim tekst mora odgovarati da bi bilo stavljeno u odgovarajuću kategoriju.

Da budemo konkretniji, recimo da želite dizajnirati klasifikator teksta koji može razlikovati uobičajene teme razgovora, poput vremena, filmova ili hrane. Kako biste omogućili vašem tekstualnom klasifikatoru da prepozna raspravu o vremenu, možete mu reći da traži riječi koje se odnose na vremensku prognozu u tijelu uzoraka teksta koji mu se dodaju. Imali biste popis ključnih riječi, izraza i drugih relevantnih obrazaca koji bi se mogli koristiti za razlikovanje teme. Na primjer, možete uputiti klasifikator da traži riječi poput "vjetar", "kiša", "sunce", "snijeg" ili "oblak". Zatim biste mogli natjerati klasifikator da pregleda ulazni tekst i izbroji koliko se puta te riječi pojavljuju u tijelu teksta i ako se pojavljuju češće od riječi povezanih s filmovima, klasificirali biste tekst kao pripadnik vremenske klase.

Prednost sustava temeljenih na pravilima je u tome što su njihovi ulazi i izlazi predvidljivi i razumljivi ljudima, a mogu se poboljšati ručnom intervencijom inženjera. Međutim, metode klasifikacije koje se temelje na pravilima također su pomalo krhke i često im je teško generalizirati jer se mogu pridržavati samo unaprijed definiranih obrazaca koji su programirani. Kao primjer, riječ "oblak" mogla bi se odnositi na vlagu u nebo, ili se može odnositi na digitalni oblak u kojem se pohranjuju podaci. Sustavima koji se temelje na pravilima teško je nositi se s tim nijansama, a da inženjeri ne potroše dosta vremena pokušavajući ručno predvidjeti i prilagoditi se ovim suptilnostima.

Sustavi strojnog učenja

Kao što je gore spomenuto, sustavi temeljeni na pravilima imaju ograničenja jer njihove funkcije i pravila moraju biti unaprijed programirani. Nasuprot tome, sustavi klasifikacije temeljeni na strojnom učenju funkcioniraju primjenom algoritama koji analiziraju skupove podataka za obrasce koji su povezani s određenom klasom.

Algoritmima strojnog učenja šalju se unaprijed označene/prethodno klasificirane instance koje se analiziraju za relevantne značajke. Ove unaprijed označene instance su podaci za obuku.

Klasifikator strojnog učenja analizira podatke o obuci i uči obrasce koji su povezani s različitim klasama. Nakon toga, nevidljivim instancama oduzimaju se oznake i šalju algoritmu za klasifikaciju koji instancama dodjeljuje oznaku. Dodijeljene oznake zatim se uspoređuju s izvornim oznakama kako bi se vidjelo koliko je precizan bio klasifikator strojnog učenja, mjereći koliko je dobro model naučio koji obrasci predviđaju koje klase.

Algoritmi strojnog učenja rade analizom numeričkih podataka. To znači da za korištenje algoritma strojnog učenja na tekstualnim podacima, tekst treba pretvoriti u numerički format. Postoje različite metode kodiranja tekstualnih podataka kao numeričkih podataka i stvaranja metoda strojnog učenja oko tih podataka. U nastavku ćemo pokriti neke od različitih načina predstavljanja tekstualnih podataka.

Vrećica-riječi

Vrećica-riječi je jedan od najčešće korištenih pristupa za kodiranje i predstavljanje tekstualnih podataka. Izraz "vreća riječi" dolazi od činjenice da u biti uzimate sve riječi u dokumentima i sve ih stavljate u jednu "vreću" bez obraćanja pozornosti na red riječi ili gramatiku, obraćajući pozornost samo na učestalost riječi u torbi. To rezultira dugim nizom ili vektorom koji sadrži jednu reprezentaciju svih riječi u ulaznim dokumentima. Dakle, ako postoji ukupno 10000 10000 jedinstvenih riječi u ulaznim dokumentima, vektori značajki bit će dugi XNUMX XNUMX riječi. Ovako se izračunava veličina vektora riječi/značajke.

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

Nakon što se odredi veličina vektora obilježja, svakom dokumentu na popisu ukupnih dokumenata dodjeljuje se vlastiti vektor ispunjen brojevima koji pokazuju koliko se puta dotična riječ pojavljuje u trenutnom dokumentu. To znači da ako se riječ "hrana" pojavi osam puta unutar jednog tekstualnog dokumenta, taj odgovarajući vektor značajki/niz značajki imat će osmicu na odgovarajućem mjestu.

Drugim riječima, sve jedinstvene riječi koje se pojavljuju u ulaznim dokumentima skupljaju se u jednu vrećicu, a zatim svaki dokument dobiva vektor riječi iste veličine, koji se zatim popunjava brojem pojavljivanja različitih riječi u dokumentu .

Tekstualni skupovi podataka često će sadržavati veliki broj jedinstvenih riječi, ali većina njih se ne koristi često. Iz tog razloga, broj riječi korištenih za stvaranje vektora riječi obično je ograničen na odabranu vrijednost (N) i tada će dimenzija vektora obilježja biti Nx1.

Učestalost termina - Inverzna učestalost dokumenta (TF-IDF)

Drugi način predstavljanja dokumenta na temelju riječi u njemu je sinkronizacija Učestalost termina - Inverzna učestalost dokumenta (TF-IDF). TF-IDF pristup također stvara vektor koji predstavlja dokument na temelju riječi u njemu, ali za razliku od Bag-of-words ove riječi su ponderirani ne samo njihovom učestalošću. TF-IDF razmatra važnost riječi u dokumentima, pokušavajući kvantificirati koliko je ta riječ relevantna za predmet dokumenta. Drugim riječima, TF-IDF analizira relevantnost umjesto učestalosti, a broj riječi u vektoru obilježja zamjenjuje se rezultatom TF-IDF koji se izračunava s obzirom na cijeli skup podataka.

TF-IDF pristup funkcionira tako da se prvo izračuna učestalost izraza, broj puta kada se jedinstveni pojmovi pojavljuju unutar određenog dokumenta. Međutim, TF-IDF također vodi računa o tome da ograniči utjecaj iznimno uobičajenih riječi kao što su "the", "ili" i "i", jer su te "zaustavne riječi" vrlo česte, ali prenose vrlo malo informacija o sadržaju dokumenta. Ove riječi treba odbaciti, na što se odnosi dio TF-IDF-a o "obrnutoj učestalosti dokumenta". To je učinjeno jer što se u više dokumenata pojavljuje određena riječ, to je ta riječ manje korisna u razlikovanju od ostalih dokumenata na popisu svih dokumenata. Formula koju TF-IDF koristi za izračunavanje važnosti riječi osmišljena je tako da sačuva riječi koje su najčešće i semantički najbogatije.

Vektori obilježja stvoreni TF-IDF pristupom sadrže normalizirane vrijednosti koje zbroje jedan, dodjeljujući svakoj riječi ponderiranu vrijednost izračunatu TF-IDF formulom.

Umetanja riječi

Ugradnje riječi su metode predstavljanja teksta koje osiguravaju da riječi sa sličnim značenjima imaju slične numeričke prikaze.

Ugradnje riječi operirati "vektoriziranjem" riječi, što znači da predstavljaju riječi kao vektore realnih vrijednosti u vektorskom prostoru. Vektori postoje u mreži ili matrici i imaju smjer i duljinu (ili veličinu). Kada se riječi predstavljaju kao vektori, riječi se pretvaraju u vektore koji se sastoje od stvarnih vrijednosti. Svaka se riječ preslikava na jedan vektor, a riječi koje su slične po značenju imaju sličan smjer i veličinu. Ova vrsta kodiranja omogućuje algoritmu strojnog učenja da nauči komplicirane odnose između riječi.

Ugradnje koje predstavljaju različite riječi stvorene su s obzirom na to kako se dotične riječi koriste. Budući da će riječi koje se koriste na sličan način imati slične vektore, proces stvaranja umetnutih riječi automatski prevodi dio značenja riječi. Pristup vreće riječi, nasuprot tome, stvara krhke prikaze gdje će različite riječi imati različite prikaze čak i ako se koriste u vrlo sličnim kontekstima.

Kao rezultat toga, ugradnje riječi bolje hvataju kontekst riječi unutar rečenice.

Postoje različiti algoritmi i pristupi koji se koriste za stvaranje umetanja riječi. Neke od najčešćih i najpouzdanijih metoda ugrađivanja riječi uključuju: ugrađivanje slojeva, word2vec i GloVe.

Ugrađivanje slojeva

Jedan potencijalni način korištenja ugrađivanja riječi uz sustav strojnog učenja/dubinskog učenja jest koristite sloj za ugradnju. Slojevi ugradnje su slojevi dubokog učenja koji pretvaraju riječi u ugradnje koje se zatim unose u ostatak sustava dubokog učenja. Umetanje riječi se uči dok se mreža trenira za određeni tekstualni zadatak.

U pristupu ugrađivanja riječi, slične riječi će imati slične reprezentacije i biti bliže jedna drugoj nego različitim riječima.

Kako biste koristili slojeve za ugradnju, tekst je potrebno prethodno obraditi. Tekst u dokumentu mora biti one-hot kodiran, a veličinu vektora treba specificirati unaprijed. Jednokratni tekst se zatim pretvara u vektore riječi, a vektori se prosljeđuju u model strojnog učenja.

Word2Vec

Word2Vec je još jedan uobičajeni način ugrađivanja riječi. Word2Vec koristi statističke metode za pretvaranje riječi u umetnute riječi i optimiziran je za korištenje s modelima temeljenim na neuronskim mrežama. Word2Vec razvili su Googleovi istraživači i to je jedna od najčešće korištenih metoda ugrađivanja jer pouzdano daje korisna, bogata ugrađivanja. Reprezentacije Word2Vec korisne su za prepoznavanje semantičkih i sintaktičkih sličnosti u jeziku. To znači da Word2Vec prikazi bilježe odnose između sličnih koncepata, mogući razlikovati da je zajedničko između "Kralja" i "Kraljice" plemstvo i da "Kralj" implicira "muškost", dok Kraljica implicira "Ženost".

Rukavica

GloVE, ili globalni vektor za predstavljanje riječi, nadovezuje se na algoritme za ugrađivanje koje koristi Word2Vec. GloVe metode ugrađivanja kombiniraju aspekte Word2Veca i tehnike faktorizacije matrice poput latentne semantičke analize. Prednost Word2Veca je u tome što može uhvatiti kontekst, ali kao kompromis loše hvata globalnu tekstualnu statistiku. Suprotno tome, tradicionalni vektorski prikazi dobri su u određivanju globalne tekstualne statistike, ali nisu korisni za određivanje konteksta riječi i fraza. GloVE koristi najbolje od oba pristupa, stvarajući kontekst riječi na temelju globalne statistike teksta.

Bloger i programer sa specijalnošću u Strojno učenje i Duboko učenje temama. Daniel se nada pomoći drugima da iskoriste snagu umjetne inteligencije za društveno dobro.