peň Ako funguje klasifikácia textu? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Ako funguje klasifikácia textu?

mm
Aktualizované on

Klasifikácia textu je proces analýzy textových sekvencií a ich priraďovanie štítkov, ich zaraďovanie do skupín na základe ich obsahu. Klasifikácia textu je základom takmer každej úlohy umelej inteligencie alebo strojového učenia, ktorá zahŕňa spracovanie prirodzeného jazyka (NLP). S klasifikáciou textu môže počítačový program vykonávať širokú škálu rôznych úloh, ako je rozpoznávanie spamu, analýza sentimentu a funkcie chatbotov. Ako presne funguje klasifikácia textu? Aké sú rôzne metódy vykonávania klasifikácie textu? Odpovede na tieto otázky preskúmame nižšie.

Definovanie klasifikácie textu

Je dôležité nájsť si čas a uistiť sa, že rozumieme čo je klasifikácia textuskôr, ako sa ponoríte do rôznych metód klasifikácie textu. Klasifikácia textu je jedným z pojmov, ktorý sa používa pri mnohých rôznych úlohách a algoritmoch, takže je užitočné uistiť sa, že rozumieme základnému konceptu klasifikácie textu, skôr než prejdeme k skúmaniu rôznych spôsobov, ako ju možno vykonať.

Čokoľvek, čo zahŕňa vytvorenie rôznych kategórií pre text a následné označenie rôznych textových vzoriek ako tieto kategórie, možno považovať za klasifikáciu textu. Pokiaľ systém vykonáva tieto základné kroky, možno ho považovať za klasifikátor textu, bez ohľadu na presnú metódu použitú na klasifikáciu textu a bez ohľadu na to, ako sa klasifikátor textu nakoniec použije. Detekcia e-mailového spamu, usporiadanie dokumentov podľa témy alebo názvu a rozpoznanie nálady v recenzii na produkt sú príklady klasifikácie textu, pretože sa dosahujú tak, že sa text berie ako vstup a výstupný štítok pre daný text.

Ako funguje klasifikácia textu?

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

Väčšinu metód klasifikácie textu možno zaradiť do jednej z troch rôznych kategórií: metódy založené na pravidlách alebo metódy strojového učenia.

Klasifikačné metódy založené na pravidlách

Metódy klasifikácie textu založené na pravidlách fungujú prostredníctvom použitia explicitne vytvorených lingvistických pravidiel. Systém používa pravidlá vytvorené inžinierom na určenie, do ktorej triedy má daný kus textu patriť, pričom hľadá vodítka vo forme sémanticky relevantných textových prvkov. Každé pravidlo má vzor, ​​ktorému sa musí text zhodovať, aby bol zaradený do zodpovedajúcej kategórie.

Aby sme boli konkrétnejší, povedzme, že ste chceli navrhnúť textový klasifikátor schopný rozlíšiť bežné témy konverzácie, ako je počasie, filmy alebo jedlo. Ak chcete, aby váš textový klasifikátor rozpoznal diskusiu o počasí, môžete mu povedať, aby hľadal slová súvisiace s počasím v tele ukážok textu, do ktorého sa dostáva. Mali by ste zoznam kľúčových slov, fráz a iných relevantných vzorov, ktoré by sa dali použiť na rozlíšenie témy. Klasifikátorovi môžete napríklad dať pokyn, aby hľadal slová ako „vietor“, „dážď“, „slnko“, „sneh“ alebo „oblak“. Potom by ste mohli nechať klasifikátor pozrieť sa cez vstupný text a spočítať, koľkokrát sa tieto slová objavia v texte, a ak sa vyskytujú častejšie ako slová súvisiace s filmami, zaradíte text do triedy počasia.

Výhodou systémov založených na pravidlách je, že ich vstupy a výstupy sú predvídateľné a interpretovateľné ľuďmi a môžu sa zlepšiť manuálnym zásahom inžiniera. Klasifikačné metódy založené na pravidlách sú však tiež trochu krehké a často je ťažké ich zovšeobecniť, pretože sa môžu držať iba vopred definovaných vzorov, ktoré boli naprogramované. Napríklad slovo „oblak“ by sa mohlo vzťahovať na vlhkosť v obloha, alebo by to mohlo odkazovať na digitálny cloud, kde sú uložené dáta. Pre systémy založené na pravidlách je ťažké zvládnuť tieto nuansy bez toho, aby inžinieri strávili značné množstvo času manuálnym predvídaním a prispôsobením sa týmto jemnostiam.

Systémy strojového učenia

Ako bolo uvedené vyššie, systémy založené na pravidlách majú obmedzenia, pretože ich funkcie a pravidlá musia byť vopred naprogramované. Naproti tomu klasifikačné systémy založené na strojovom učení fungujú pomocou algoritmov, ktoré analyzujú množiny údajov na vzory, ktoré sú spojené s konkrétnou triedou.

Algoritmy strojového učenia sú napájané vopred označenými/predklasifikovanými inštanciami, ktoré sú analyzované na relevantné funkcie. Tieto vopred označené inštancie sú trénovacími údajmi.

Klasifikátor strojového učenia analyzuje trénovacie údaje a učí sa vzory, ktoré sú spojené s rôznymi triedami. Potom sa neviditeľné inštancie zbavia svojich označení a privedú sa do klasifikačného algoritmu, ktorý inštanciám pridelí označenie. Priradené štítky sa potom porovnajú s pôvodnými štítkami, aby sa zistilo, aký presný bol klasifikátor strojového učenia, pričom sa meria, ako dobre sa model naučil, aké vzory predpovedajú ktoré triedy.

Algoritmy strojového učenia fungujú na základe analýzy numerických údajov. To znamená, že ak chcete použiť algoritmus strojového učenia na textové údaje, text je potrebné previesť do číselného formátu. Existujú rôzne metódy kódovania textových údajov ako číselných údajov a vytváranie metód strojového učenia okolo týchto údajov. Nižšie popíšeme niektoré z rôznych spôsobov reprezentácie textových údajov.

Bag-of-Words

Vrece slov je jedným z najčastejšie používaných prístupov na kódovanie a reprezentáciu textových údajov. Pojem „bag-of-words“ pochádza zo skutočnosti, že v podstate vezmete všetky slová v dokumentoch a všetky ich vložíte do jedného „vreca“ bez toho, aby ste venovali pozornosť poradiu slov alebo gramatike, pričom venovali pozornosť iba frekvencia slov v taške. Výsledkom je dlhé pole alebo vektor, ktorý obsahuje jedinú reprezentáciu všetkých slov vo vstupných dokumentoch. Ak je teda vo vstupných dokumentoch celkovo 10000 10000 jedinečných slov, vektory prvkov budú mať dĺžku XNUMX XNUMX slov. Takto sa vypočíta veľkosť vektora slova taška/vektor.

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

Po určení veľkosti vektora prvkov sa každému dokumentu v zozname celkových dokumentov priradí vlastný vektor vyplnený číslami, ktoré označujú, koľkokrát sa príslušné slovo vyskytuje v aktuálnom dokumente. To znamená, že ak sa slovo „jedlo“ objaví osemkrát v jednom textovom dokumente, príslušný vektor/pole prvkov bude mať na zodpovedajúcej pozícii osmičku.

Inak povedané, všetky jedinečné slová, ktoré sa vyskytujú vo vstupných dokumentoch, sú všetky nahromadené do jedného vreca a potom každý dokument dostane slovný vektor rovnakej veľkosti, ktorý je potom vyplnený počtom výskytov rôznych slov v dokumente. .

Textové množiny údajov budú často obsahovať veľké množstvo jedinečných slov, ale väčšina z nich sa nepoužíva príliš často. Z tohto dôvodu je počet slov použitých na vytvorenie slovného vektora zvyčajne obmedzený na zvolenú hodnotu (N) a potom bude rozmer znakového vektora Nx1.

Termín frekvencia – inverzná frekvencia dokumentu (TF-IDF)

Ďalším spôsobom, ako reprezentovať dokument na základe slov v ňom, je dabovanie Termín frekvencia – inverzná frekvencia dokumentu (TF-IDF). Prístup TF-IDF tiež vytvára vektor, ktorý predstavuje dokument na základe slov v ňom, ale na rozdiel od Bag-of-words sú tieto slová vážené viac než len ich frekvenciou. TF-IDF zvažuje dôležitosť slov v dokumentoch a pokúša sa kvantifikovať, nakoľko je toto slovo relevantné pre predmet dokumentu. Inými slovami, TF-IDF analyzuje relevantnosť namiesto frekvencie a počet slov vo vektore znakov sa nahradí skóre TF-IDF, ktoré sa vypočíta s ohľadom na celý súbor údajov.

Prístup TF-IDF funguje tak, že sa najprv vypočíta frekvencia výrazov, koľkokrát sa jedinečné výrazy vyskytujú v konkrétnom dokumente. TF-IDF však dbá aj na to, aby obmedzil vplyv, že extrémne bežné slová ako „the“, „alebo“ a „and“, keďže tieto „ignorované slová“ sú veľmi bežné, no poskytujú len veľmi málo informácií o obsahu dokumentu. Tieto slová je potrebné ignorovať, na čo sa vzťahuje časť „frekvencia inverzných dokumentov“ v TF-IDF. Je to spôsobené tým, že čím viac dokumentov sa konkrétne slovo zobrazuje, tým menej je toto slovo užitočné na odlíšenie od ostatných dokumentov v zozname všetkých dokumentov. Vzorec, ktorý TF-IDF používa na výpočet dôležitosti slova, je navrhnutý tak, aby zachoval slová, ktoré sú najčastejšie a sémanticky najbohatšie.

Charakteristické vektory vytvorené prístupom TF-IDF obsahujú normalizované hodnoty, ktorých súčet je jedna, pričom každému slovu priraďuje váženú hodnotu vypočítanú pomocou vzorca TF-IDF.

Vloženia slov

Vloženie slov sú metódy reprezentácie textu, ktoré zabezpečujú, že slová s podobným významom majú podobné číselné zastúpenia.

Vloženie slov fungujú „vektorizáciou“ slov, čo znamená, že reprezentujú slová ako vektory s reálnou hodnotou vo vektorovom priestore. Vektory existujú v mriežke alebo matici a majú smer a dĺžku (alebo veľkosť). Pri reprezentácii slov ako vektorov sa slová konvertujú na vektory pozostávajúce zo skutočných hodnôt. Každé slovo je namapované na jeden vektor a slová, ktoré majú podobný význam, majú podobný smer a veľkosť. Tento typ kódovania umožňuje algoritmu strojového učenia naučiť sa komplikované vzťahy medzi slovami.

Vloženia, ktoré predstavujú rôzne slová, sa vytvárajú s ohľadom na to, ako sa príslušné slová používajú. Pretože slová, ktoré sa používajú podobným spôsobom, budú mať podobné vektory, proces vytvárania vloženia slov automaticky prekladá časť významu, ktorý slová majú. Naproti tomu prístup vreca slov vytvára krehké reprezentácie, kde rôzne slová budú mať odlišné reprezentácie, aj keď sa používajú vo veľmi podobných kontextoch.

Výsledkom je, že vkladanie slov lepšie zachytáva kontext slov vo vete.

Na vytvorenie vloženia slov sa používajú rôzne algoritmy a prístupy. Niektoré z najbežnejších a najspoľahlivejších metód vkladania slov zahŕňajú: vrstvy vkladania, word2vec a GloVe.

Vrstvy vkladania

Jedným z možných spôsobov, ako používať vkladanie slov spolu so systémom strojového učenia/hĺbkového učenia, je použite vkladaciu vrstvu. Vrstvy vkladania sú vrstvy hlbokého učenia, ktoré premieňajú slová na vložené prvky, ktoré sa potom vkladajú do zvyšku systému hlbokého učenia. Vkladanie slov sa učí, keď sa sieť trénuje na konkrétnu textovú úlohu.

V prístupe vkladania slov budú mať podobné slová podobné reprezentácie a budú k sebe bližšie než k odlišným slovám.

Ak chcete použiť vrstvy na vkladanie, text je potrebné najskôr spracovať. Text v dokumente musí byť jednorazovo zakódovaný a veľkosť vektora musí byť špecifikovaná vopred. Jednotlivý text sa potom prevedie na slovné vektory a vektory sa prenesú do modelu strojového učenia.

Word2Vec

Word2Vec je ďalší bežný spôsob vkladania slov. Word2Vec používa štatistické metódy na konverziu slov na vloženie a je optimalizovaný na použitie s modelmi založenými na neurónových sieťach. Word2Vec bol vyvinutý výskumníkmi spoločnosti Google a je to jedna z najčastejšie používaných metód vkladania, pretože spoľahlivo poskytuje užitočné a bohaté vloženia. Reprezentácie Word2Vec sú užitočné na identifikáciu sémantických a syntaktických spoločných čŕt v jazyku. To znamená, že reprezentácie Word2Vec zachytávajú vzťahy medzi podobnými pojmami, pričom dokážu rozlíšiť, že zhoda medzi „kráľom“ a „kráľovnou“ je kráľovská a že „kráľ“ znamená „mužstvo“, kým kráľovná znamená „ženu“.

Rukavice

Rukavice alebo globálny vektor pre reprezentáciu slov, stavia na algoritmoch vkladania, ktoré používa Word2Vec. Metódy vkladania GloVe kombinujú aspekty Word2Vec a techník maticového faktorizácie, ako je latentná sémantická analýza. Výhodou Word2Vec je, že dokáže zachytiť kontext, no ako kompromis zle zachytáva globálne textové štatistiky. Naopak, tradičné vektorové reprezentácie sú dobré pri určovaní globálnej textovej štatistiky, ale nie sú užitočné na určovanie kontextu slov a fráz. GloVE čerpá z toho najlepšieho z oboch prístupov a vytvára slovný kontext na základe globálnych štatistík textu.

Bloger a programátor so špecializáciou v Strojové učenie a Deep Learning témy. Daniel dúfa, že pomôže ostatným využívať silu AI pre sociálne dobro.