výhonek Jak funguje klasifikace textu? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Jak funguje klasifikace textu?

mm
aktualizováno on

Klasifikace textu je proces analýzy textových sekvencí a přiřazování jim štítku a jejich zařazení do skupiny na základě jejich obsahu. Klasifikace textu je základem téměř jakéhokoli úkolu umělé inteligence nebo strojového učení zahrnujícího zpracování přirozeného jazyka (NLP). S klasifikací textu může počítačový program provádět širokou škálu různých úkolů, jako je rozpoznávání spamu, analýza sentimentu a funkce chatbota. Jak přesně funguje klasifikace textu? Jaké jsou různé metody provádění klasifikace textu? Odpovědi na tyto otázky prozkoumáme níže.

Definování klasifikace textu

Je důležité věnovat trochu času a ujistit se, že rozumíme jaká je klasifikace textu, obecně, než se ponoříte do různých metod klasifikace textu. Klasifikace textu je jedním z termínů, který se používá pro mnoho různých úloh a algoritmů, takže je užitečné ujistit se, že rozumíme základnímu konceptu klasifikace textu, než přejdeme k prozkoumání různých způsobů, jak ji lze provést.

Cokoli, co zahrnuje vytvoření různých kategorií pro text a následné označení různých ukázek textu jako tyto kategorie, lze považovat za klasifikaci textu. Pokud systém provádí tyto základní kroky, může být považován za klasifikátor textu, bez ohledu na přesnou metodu použitou ke klasifikaci textu a bez ohledu na to, jak je klasifikátor textu nakonec použit. Detekce e-mailového spamu, uspořádání dokumentů podle tématu nebo názvu a rozpoznání sentimentu recenze na produkt, to vše jsou příklady klasifikace textu, protože jsou prováděny tak, že se text vezme jako vstup a vydá se štítek třídy pro daný kus textu.

Jak funguje klasifikace textu?

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

Většinu metod klasifikace textu lze zařadit do jedné ze tří různých kategorií: metody založené na pravidlech nebo metody strojového učení.

Klasifikační metody založené na pravidlech

Metody klasifikace textu založené na pravidlech fungují prostřednictvím použití explicitně vytvořených lingvistických pravidel. Systém používá pravidla vytvořená inženýrem k určení, do které třídy má daný kus textu patřit, a hledá vodítka ve formě sémanticky relevantních textových prvků. Každé pravidlo má vzor, ​​kterému musí text odpovídat, aby byl zařazen do odpovídající kategorie.

Abychom byli konkrétnější, řekněme, že jste chtěli navrhnout textový klasifikátor schopný rozlišovat běžná témata konverzace, jako je počasí, filmy nebo jídlo. Abyste svému textovému klasifikátoru umožnili rozpoznat diskuzi o počasí, můžete mu říct, aby hledal slova související s počasím v těle ukázek textu, který je podáván. Měli byste seznam klíčových slov, frází a dalších relevantních vzorů, které lze použít k rozlišení tématu. Klasifikátorovi můžete například dát pokyn, aby hledal slova jako „vítr“, „déšť“, „slunce“, „sníh“ nebo „mrak“. Pak byste mohli nechat klasifikátor, aby prohlédl vstupní text a spočítal, kolikrát se tato slova objevila v textu textu, a pokud se vyskytují častěji než slova související s filmy, klasifikovali byste text jako patřící do třídy počasí.

Výhodou systémů založených na pravidlech je, že jejich vstupy a výstupy jsou předvídatelné a interpretovatelné lidmi a lze je vylepšit ručním zásahem inženýra. Klasifikační metody založené na pravidlech jsou však také poněkud křehké a často je obtížné je zobecnit, protože se mohou držet pouze předem definovaných vzorů, které byly naprogramovány. Jako příklad může slovo „mrak“ odkazovat na vlhkost v obloha, nebo by to mohlo odkazovat na digitální cloud, kde jsou uložena data. Pro systémy založené na pravidlech je obtížné zvládnout tyto nuance, aniž by inženýři strávili značné množství času ručním předvídáním a přizpůsobováním se těmto jemnostem.

Systémy strojového učení

Jak bylo uvedeno výše, systémy založené na pravidlech mají svá omezení, protože jejich funkce a pravidla musí být předem naprogramována. Naproti tomu klasifikační systémy založené na strojovém učení fungují pomocí algoritmů, které analyzují datové sady pro vzory, které jsou spojeny s konkrétní třídou.

Algoritmy strojového učení jsou dodávány s předem označenými/předem klasifikovanými instancemi, které jsou analyzovány na relevantní funkce. Tyto předem označené instance jsou trénovací data.

Klasifikátor strojového učení analyzuje trénovací data a učí se vzorce, které jsou spojeny s různými třídami. Poté jsou neviditelné instance zbaveny svých štítků a přivedeny do klasifikačního algoritmu, který instancím přiřadí štítek. Přiřazené štítky jsou poté porovnány s původními štítky, aby se zjistilo, jak přesný byl klasifikátor strojového učení, a posoudí, jak dobře se model naučil, jaké vzory předpovídají které třídy.

Algoritmy strojového učení fungují na základě analýzy numerických dat. To znamená, že aby bylo možné použít algoritmus strojového učení na textová data, je třeba text převést do číselného formátu. Existují různé metody kódování textových dat jako číselných dat a vytváření metod strojového učení kolem těchto dat. Níže se budeme zabývat některými různými způsoby reprezentace textových dat.

Bag-of-Words

Bag-of-words je jedním z nejčastěji používaných přístupů pro kódování a reprezentaci textových dat. Termín „bag-of-words“ pochází ze skutečnosti, že v podstatě vezmete všechna slova v dokumentech a vložíte je všechna do jednoho „sáčku“, aniž byste věnovali pozornost pořadí slov nebo gramatice a věnovali pozornost pouze četnost slov v tašce. Výsledkem je dlouhé pole neboli vektor obsahující jedinou reprezentaci všech slov ve vstupních dokumentech. Pokud je tedy ve vstupních dokumentech celkem 10000 10000 jedinečných slov, vektory prvků budou dlouhé XNUMX XNUMX slov. Takto se vypočítá velikost vektoru slova taška/prvek.

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

Po určení velikosti vektoru prvků je každému dokumentu v seznamu celkových dokumentů přiřazen vlastní vektor vyplněný čísly, která udávají, kolikrát se dané slovo vyskytuje v aktuálním dokumentu. To znamená, že pokud se slovo „jídlo“ objeví v jednom textovém dokumentu osmkrát, příslušný vektor/pole prvků bude mít na odpovídající pozici osmičku.

Jinak řečeno, všechna jedinečná slova, která se objevují ve vstupních dokumentech, jsou všechna naskládána do jednoho sáčku a pak každý dokument dostane slovní vektor stejné velikosti, který je pak vyplněn počtem, kolikrát se různá slova objevila v dokumentu. .

Textové datové sady budou často obsahovat velké množství jedinečných slov, ale většina z nich se příliš často nepoužívá. Z tohoto důvodu je počet slov použitých k vytvoření vektoru slova obvykle omezen na vybranou hodnotu (N) a potom bude rozměr příznakového vektoru Nx1.

Termín frekvence-inverzní frekvence dokumentu (TF-IDF)

Dalším způsobem, jak reprezentovat dokument na základě slov v něm obsažených, je dabování Termín frekvence-inverzní frekvence dokumentu (TF-IDF). Přístup TF-IDF také vytváří vektor, který představuje dokument na základě slov v něm obsažených, ale na rozdíl od Bag-of-words jsou tato slova vážené více než jen jejich frekvencí. TF-IDF zvažuje důležitost slov v dokumentech a pokouší se kvantifikovat, jak relevantní je toto slovo pro předmět dokumentu. Jinými slovy, TF-IDF analyzuje relevanci místo frekvence a počty slov ve znakovém vektoru jsou nahrazeny skóre TF-IDF, které se vypočítá s ohledem na celý soubor dat.

Přístup TF-IDF funguje tak, že se nejprve vypočítá frekvence termínů, kolikrát se jedinečné termíny objeví v konkrétním dokumentu. TF-IDF však také dbá na to, aby omezil vliv extrémně běžných slov jako „the“, „nebo“ a „and“, protože tato „nedovolené slova“ jsou velmi běžná, přesto poskytují velmi málo informací o obsahu dokumentu. Tato slova je třeba ignorovat, což je to, na co se vztahuje část „frekvence inverzního dokumentu“ v TF-IDF. Děje se tak proto, že čím více dokumentů se konkrétní slovo zobrazuje, tím méně je toto slovo užitečné pro jeho odlišení od ostatních dokumentů v seznamu všech dokumentů. Vzorec, který TF-IDF používá k výpočtu důležitosti slova, je navržen tak, aby zachoval slova, která jsou nejčastější a sémanticky nejbohatší.

Charakteristické vektory vytvořené přístupem TF-IDF obsahují normalizované hodnoty, které se sčítají do jedné a přiřazují každému slovu váženou hodnotu, jak je vypočtena podle vzorce TF-IDF.

Vkládání slov

Vložení slov jsou metody reprezentace textu, které zajišťují, že slova s ​​podobným významem mají podobná číselná vyjádření.

Vložení slov fungují „vektorizací“ slov, což znamená, že představují slova jako vektory s reálnou hodnotou ve vektorovém prostoru. Vektory existují v mřížce nebo matici a mají směr a délku (nebo velikost). Při reprezentaci slov jako vektorů jsou slova převedena na vektory složené ze skutečných hodnot. Každé slovo je mapováno do jednoho vektoru a slova, která mají podobný význam, mají podobný směr a velikost. Tento typ kódování umožňuje algoritmu strojového učení naučit se složité vztahy mezi slovy.

Vložení, která představují různá slova, jsou vytvořena s ohledem na to, jak se daná slova používají. Protože slova, která se používají podobným způsobem, budou mít podobné vektory, proces vytváření vkládání slov automaticky překládá část významu, který slova mají. Naproti tomu přístup pytle slov vytváří křehké reprezentace, kde různá slova budou mít odlišné reprezentace, i když jsou použita ve velmi podobných kontextech.

Výsledkem je, že vkládání slov lépe vystihuje kontext slov ve větě.

K vytváření vkládání slov se používají různé algoritmy a přístupy. Některé z nejběžnějších a nejspolehlivějších metod vkládání slov zahrnují: vrstvy vkládání, word2vec a GloVe.

Vrstvy vkládání

Jedním z potenciálních způsobů, jak používat vkládání slov spolu se systémem strojového učení/hlubokého učení, je použijte vkládací vrstvu. Vrstvy vkládání jsou vrstvy hlubokého učení, které převádějí slova na vložené prvky, které se pak přidávají do zbytku systému hlubokého učení. Vkládání slov se učí, když se síť trénuje na konkrétní textový úkol.

V přístupu vkládání slov budou mít podobná slova podobná reprezentace a budou si blíže než k nepodobným slovům.

Aby bylo možné použít vrstvy pro vkládání, musí být text nejprve předzpracován. Text v dokumentu musí být jednorázově zakódován a velikost vektoru musí být specifikována předem. Jednotlivý text je poté převeden na slovní vektory a vektory jsou předány do modelu strojového učení.

Word2Vec

Word2Vec je další běžnou metodou vkládání slov. Word2Vec používá statistické metody k převodu slov na vložení a je optimalizován pro použití s ​​modely založenými na neuronové síti. Word2Vec byl vyvinut výzkumníky Google a je to jedna z nejběžněji používaných metod vkládání, protože spolehlivě poskytuje užitečné a bohaté vkládání. Reprezentace Word2Vec jsou užitečné pro identifikaci sémantických a syntaktických společných rysů v jazyce. To znamená, že reprezentace Word2Vec zachycují vztahy mezi podobnými koncepty a jsou schopny rozlišit, že shoda mezi „králem“ a „královnou“ je královská a že „král“ implikuje „mužství“, zatímco královna implikuje „ženu“.

Rukavice

Rukavice nebo globální vektor pro reprezentaci slov, staví na vkládacích algoritmech používaných Word2Vec. Metody vkládání GloVe kombinují aspekty Word2Vec a technik maticového faktorizace, jako je latentní sémantická analýza. Výhodou Word2Vec je, že dokáže zachytit kontext, ale jako kompromis špatně zachycuje globální textové statistiky. Naopak tradiční vektorové reprezentace jsou dobré při určování globálních textových statistik, ale nejsou užitečné pro určování kontextu slov a frází. GloVE čerpá z toho nejlepšího z obou přístupů a vytváří slovní kontext na základě globálních textových statistik.

Blogerka a programátorka se specializací v Strojové učení a Hluboké učení témata. Daniel doufá, že pomůže ostatním využívat sílu AI pro společenské dobro.