Základy AI
Jak funguje klasifikace textu?
Klasifikace textu je proces analýzy textových sekvencí a přiřazování jim štítku, zařazování je do skupiny na základě jejich obsahu. Klasifikace textu je základem téměř každé úlohy umělé inteligence nebo strojového učení, která zahrnuje zpracování přirozeného jazyka (NLP). Díky klasifikaci 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 chatbotů. Jak přesně funguje klasifikace textu? Jaké jsou různé metody klasifikace textu? Tyto otázky budeme zkoumat níže.
Definice klasifikace textu
Je důležité si uvědomit, co je klasifikace textu, než se budeme zabývat různými metodami klasifikace. Klasifikace textu je jeden z těch termínů, které se aplikují na mnoho různých úkolů a algoritmů, takže je užitečné si uvědomit základní koncept klasifikace textu, než se budeme zabývat různými způsoby, jak ji provádět.
Cokoliv, co zahrnuje vytváření různých kategorií pro text a poté označování různých textových vzorků jako těchto kategorií, lze považovat za klasifikaci textu. Pokud systém provádí tyto základní kroky, lze jej považovat za klasifikátor textu, bez ohledu na metodu, kterou používá k klasifikaci textu, a bez ohledu na to, jak je klasifikátor textu nakonec aplikován. Rozpoznávání e-mailového spamu, organizování dokumentů podle tématu nebo názvu a rozpoznávání sentimentu recenze produktu jsou všechny příklady klasifikace textu, protože jsou prováděny tak, že se bere text jako vstup a výstupem je štítek třídy pro tento text.
Jak funguje klasifikace textu?

Foto: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
Většina metod klasifikace textu lze zařadit do jedné ze tří kategorií: pravidlové metody nebo metody strojového učení.
Pravidlové metody klasifikace
Pravidlové metody klasifikace textu fungují pomocí explicitně navržených lingvistických pravidel. Systém používá pravidla vytvořená inženýrem k určení, do které třídy by měl být zařazen daný text, hledaje nápovědu v podobě sémanticky relevantních textových prvků. Každé pravidlo má vzor, který musí text splňovat, aby byl zařazen do odpovídající kategorie.
Chceme-li být konkrétnější, řekněme, že chcete navrhnout klasifikátor textu, který je schopen rozlišit běžná témata konverzace, jako je počasí, filmy nebo jídlo. Abyste mohli svého klasifikátoru umožnit rozpoznat diskusi o počasí, budete muset zadat, aby hledal slova související s počasím v textu. Budete mít seznam klíčových slov, frází a dalších relevantních vzorů, které lze použít k rozlišení tématu. Například můžete zadat, aby klasifikátor hledal slova jako “vítr”, “déšť”, “slunce”, “sníh” nebo “oblak”. Poté můžete klasifikátoru zadat, aby prošel vstupním textem a spočítal, kolikrát se tato slova objevují v textu, a pokud se objevují častěji než slova související s filmy, můžete text zařadit do kategorie počasí.
Výhodou pravidel 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. Nicméně, pravidlové metody klasifikace jsou také somewhat křehké a často mají problém se generalizací, protože mohou dodržovat pouze předem stanovené vzory, které byly naprogramovány. Například slovo “cloud” může odkazovat na vlhkost ve vzduchu nebo na digitální cloud, kde jsou uložena data. Je obtížné pro pravidlové systémy zvládnout tyto nuance bez toho, aby inženýři strávili spoustu času ručním přizpůsobením a úpravami.
Metody strojového učení
Jak bylo zmíněno výše, pravidlové systémy mají omezení, protože jejich funkce a pravidla musí být předem naprogramována. Naopak, metody klasifikace založené na strojovém učení fungují aplikací algoritmů, které analyzují datové sady pro vzory spojené s určitou třídou.
Algoritmy strojového učení jsou krmeny předem označenými/předem klasifikovanými instancemi, které jsou analyzovány pro relevantní funkce. Tyto předem označené instance jsou trénovací data.
Algoritmus klasifikace strojového učení analyzuje trénovací data a učí se vzorům spojeným s různými třídami. Poté jsou neviditelné instance zbaveny svých štítků a krmeny do algoritmu klasifikace, který jim přiřazuje štítek. Přiřazené štítky jsou poté srovnány s původními štítky, aby se zjistilo, jak přesně se model strojového učení naučil, jaké vzory předpovídají, welche třídy.
Algoritmy strojového učení fungují analýzou numerických dat. To znamená, že aby bylo možné použít algoritmus strojového učení na textová data, musí být text převeden do numerické formy. Existuje několik metod kódování textových dat jako numerických dat a vytváření metod strojového učení kolem tohoto data. Některé z těchto metod budeme probírat níže.
Bag-of-Words
Bag-of-words je jedna 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í z faktu, že vezmete všechny slova v dokumentech a vložíte je do jednoho “sáčku” bez ohledu na pořadí slov nebo gramatiku, přičemž se zaměřujete pouze na četnost slov v sáčku. To vede k dlouhému poli nebo vektoru, který obsahuje jedinou reprezentaci všech slov ve vstupních dokumentech. Pokud existuje 10 000 jedinečných slov celkem ve vstupních dokumentech, budou feature vektory dlouhé 10 000 slov. To je způsob, jakým se velikost sáčku/feature vektoru vypočítá.

Foto: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Po určení velikosti feature vektoru je každému dokumentu v seznamu všech dokumentů přiřazena jeho vlastní vektor naplněný čísly, která indikují, kolikrát se každé slovo objevuje v aktuálním dokumentu. To znamená, že pokud se slovo “jídlo” objevuje osmkrát v jednom textovém dokumentu, odpovídající feature vektor/feature pole bude mít osm na odpovídající pozici.
Jinými slovy, všechny jedinečné slova, která se objevují ve vstupních dokumentech, jsou všechny vloženy do jednoho sáčku a poté každý dokument dostane word vektor stejné velikosti, který je poté naplněn počtem výskytů různých slov v dokumentu.
Textové datové sady často obsahují velké množství jedinečných slov, ale většina z nich se nepoužívá velmi často. Z tohoto důvodu je počet slov použitých pro vytvoření word vektoru obvykle omezen na zvolenou hodnotu (N) a poté bude feature vektor dimenze Nx1.
Term Frequency-Inverse Document Frequency (TF-IDF)
Další způsob, jak reprezentovat dokument na základě slov v něm, je nazvaný Term Frequency-Inverse Document Frequency (TF-IDF). Přístup TF-IDF také vytváří vektor, který reprezentuje dokument na základě slov v něm, ale na rozdíl od Bag-of-words jsou tato slova vážena více než pouze jejich četností. TF-IDF bere v úvahu důležitost slov v dokumentech, snaží se kvantifikovat, jak relevantní je slovo pro předmět dokumentu. Jinými slovy, TF-IDF analyzuje relevance místo četnosti a počty slov ve feature vektoru jsou nahrazeny TF-IDF skóre, které je vypočítáno s ohledem na celou datovou sadu.
Přístup TF-IDF funguje tak, že nejprve vypočítá četnost termínu, počet výskytů jedinečných termínů v rámci konkrétního dokumentu. TF-IDF také omezuje vliv velmi častých slov, jako jsou “the”, “or” a “and”, protože tato “stopwords” jsou velmi častá, ale nesou velmi málo informací o obsahu dokumentu. Tato slova je třeba diskontovat, což je to, co “inverse-document frequency” část TF-IDF znamená. To se provádí proto, že čím více dokumentů obsahuje konkrétní slovo, tím méně užitečné je slovo pro rozlišení dokumentu od ostatních dokumentů v seznamu. 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 nejsemanticky bohatší.
Feature vektory vytvořené přístupem TF-IDF obsahují normalizované hodnoty, které se součtují na jeden, přiřazují každé slovo váhu vypočítanou podle vzorce TF-IDF.
Slovní vnoření
Slovní vnoření jsou metody reprezentace textu, které zajišťují, že slova se podobnými významy mají podobné numerické reprezentace.
Slovní vnoření fungují tak, že “vektorizují” slova, tj. reprezentují slova jako reálné vektory v 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é z reálných hodnot. Každé slovo je mapováno na jeden vektor a slova, která jsou podobná ve významu, mají podobný směr a velikost. Tento typ kódování umožňuje, aby algoritmus strojového učení naučil se složitým vztahům mezi slovy.
Vnoření, která reprezentují různá slova, jsou vytvořena s ohledem na to, jak jsou slova používána. Protože slova, která jsou používána podobným způsobem, budou mít podobné vektory, proces vytváření slovního vnoření automaticky překládá一些 význam, který mají slova.
V důsledku toho jsou slovní vnoření lepší v zachycení kontextu slov.
Existují různé algoritmy a přístupy pro vytváření slovního vnoření. Některé z nejčastějších a nejspolehlivějších metod slovního vnoření zahrnují: vnořovací vrstvy, Word2Vec a GloVe.
Vnořovací vrstvy
Jedním z možných způsobů, jak použít slovní vnoření spolu se systémem strojového učení, je použití vnořovací vrstvy. Vnořovací vrstvy jsou hluboké učení vrstvy, které převádějí slova na vnoření, která jsou poté krmena do zbytku systému hlubokého učení. Slovní vnoření se učí, zatímco síť trénuje pro konkrétní textový úkol.

V přístupu slovního vnoření budou podobná slova mít podobné reprezentace a budou blíže k sobě než k nesrovnatelným slovům.
Chcete-li použít vnořovací vrstvy, musíte nejprve zpracovat text. Text v dokumentu musí být zakódován jedním horkým vektorem a velikost vektoru musí být specifikována předem. Zakódovaný text je poté převeden na word vektory a vektory jsou krmeny do modelu strojového učení.
Word2Vec
Word2Vec je další běžná metoda vnoření slov. Word2Vec používá statistické metody k převodu slov na vnoření a je optimalizován pro použití s modely založenými na neuronových sítích. Word2Vec byl vyvinut výzkumníky z Google (GOOGL ) a je jednou z nejčastěji používaných metod vnoření, protože spolehlivě poskytuje užitečná a bohatá vnoření. Reprezentace Word2Vec jsou užitečné pro identifikaci sémantických a syntaktických shod v jazyce. To znamená, že reprezentace Word2Vec zachycují vztahy mezi podobnými koncepty, schopné rozlišit, že společné mezi “King” a “Queen” je království a že “King” implikuje “mužství”, zatímco “Queen” implikuje “ženskost”.
GloVe
GloVe, nebo Global Vector for Word Representation, staví na algoritmech vnoření používaných Word2Vec. Metody vnoření GloVe kombinují aspekty Word2Vec a technik faktorizace matic, jako je Latentní sémantická analýza. Výhodou Word2Vec je, že může zachytit kontext, ale jako kompromis zachycuje špatně globální statistiku textu. Naopak, tradiční vektorová reprezentace je dobrá pro stanovení globální statistiky textu, ale není užitečná pro stanovení kontextu slov a frází. GloVe čerpá z nejlepších obou přístupů, vytváří slovo-kontext na základě globální statistiky textu.












