Krajta

Výukový program NLTK v Pythonu

Výukový program NLTK v Pythonu
Éra dat už je tady. Rychlost, s jakou jsou data dnes generována, je vyšší než kdy dříve a neustále roste. Lidé, kteří se každodenně zabývají daty, většinou pracují s nestrukturovanými textovými daty. Některá z těchto dat mají přidružené prvky, jako jsou obrázky, videa, audio atd. Některé zdroje těchto údajů jsou webové stránky, denní blogy, zpravodajské weby a mnoho dalších. Analýza všech těchto dat vyšší rychlostí je nezbytná a mnohokrát také zásadní.

Například může podnik provozovat stroj pro analýzu textu, který zpracovává tweety o svém podniku se zmínkou o názvu společnosti, umístění, procesu a analyzuje emoce související s tímto tweetem. Správné akce lze podniknout rychleji, pokud se tento podnik dozví o rostoucím negativním tweetu pro něj na konkrétním místě, aby se zachránil před chybou nebo čímkoli jiným. Dalším běžným příkladem bude pro Youtube. Správci a moderátoři Youtube se dozvědí o účinku videa v závislosti na typu komentářů k videu nebo zprávám videochatu. To jim pomůže najít nevhodný obsah na webu mnohem rychleji, protože nyní odstranili manuální práci a použili automatizované roboty pro inteligentní analýzu textu.

V této lekci budeme studovat některé koncepty související s textovou analýzou pomocí knihovny NLTK v Pythonu. Některé z těchto konceptů budou zahrnovat:

NLP bude v této lekci hlavní oblastí zájmu, protože je použitelná pro obrovské scénáře v reálném životě, kde může řešit velké a zásadní problémy. Pokud si myslíte, že to zní složitě, dobře to funguje, ale koncepty jsou stejně snadno pochopitelné, pokud vyzkoušíte příklady vedle sebe. Pojďme skočit do instalace NLTK na vašem počítači, abychom mohli začít.

Instalace NLTK

Jen poznámka před spuštěním, pro tuto lekci můžete použít virtuální prostředí, které můžeme provést pomocí následujícího příkazu:

python -m virtualenv nltk
zdroj nltk / bin / aktivovat

Jakmile je virtuální prostředí aktivní, můžete nainstalovat knihovnu NLTK v rámci virtuálního env, aby bylo možné provést příklady, které vytvoříme dále:

pip install nltk

V této lekci využijeme Anacondu a Jupytera. Chcete-li jej nainstalovat na svůj počítač, podívejte se na lekci, která popisuje „Jak nainstalovat Anaconda Python na Ubuntu 18.04 LTS ”a sdílejte zpětnou vazbu, pokud narazíte na nějaké problémy. Chcete-li nainstalovat NLTK s Anacondou, použijte v terminálu z Anacondy následující příkaz:

conda install -c anaconda nltk

Vidíme něco takového, když provedeme výše uvedený příkaz:

Jakmile jsou všechny potřebné balíčky nainstalovány a hotové, můžeme začít používat knihovnu NLTK s následujícím příkazem importu:

importovat nltk

Pojďme začít se základními příklady NLTK, když máme nainstalované balíčky předpokladů.

Tokenizace

Začneme tokenizací, což je první krok při provádění textové analýzy. Tokenem může být jakákoli menší část textu, kterou lze analyzovat. Existují dva typy tokenizace, které lze provést pomocí NLTK:

Můžete hádat, co se stane s každou tokenizací, takže se ponořme do příkladů kódu.

Tokenizace věty

Jak název odráží, tokenizátoři věty rozdělí část textu na věty. Zkusme jednoduchý úryvek kódu, kde použijeme text, který jsme vybrali z tutoriálu Apache Kafka. Provedeme potřebné importy

importovat nltk
od nltk.tokenize import sent_tokenize

Vezměte prosím na vědomí, že se můžete setkat s chybou kvůli chybějící závislosti volaného nltk punkt. Přidejte následující řádek hned po importu do programu, abyste předešli jakémukoli varování:

nltk.stáhnout ('punkt')

Pro mě to dalo následující výstup:

Dále použijeme importovaný větový tokenizer:

text = "" "Téma v Kafce je něco, kam se posílá zpráva. Spotřebitel
aplikace, které se o dané téma zajímají, do toho vtahují zprávy
téma a může s těmito daty dělat cokoli. Do určité doby libovolný počet
spotřebitelské aplikace mohou tuto zprávu vytáhnout kolikrát.„“ „
věty = sent_tokenize (text)
tisk (věty)

Něco takového vidíme, když provedeme výše uvedený skript:

Podle očekávání byl text správně uspořádán do vět.

Tokenizace slov

Jak název odráží, tokenizátoři slov rozdělují část textu na slova. Zkusme jednoduchý fragment kódu se stejným textem jako v předchozím příkladu:

od nltk.tokenize import word_tokenize
words = word_tokenize (text)
tisk (slova)

Něco takového vidíme, když provedeme výše uvedený skript:

Podle očekávání byl text správně uspořádán do slov.

Distribuce frekvence

Nyní, když jsme text rozbili, můžeme také vypočítat frekvenci každého slova v textu, který jsme použili. Je to velmi jednoduché udělat s NLTK, zde je fragment kódu, který používáme:

od nltk.pravděpodobnost importu FreqDist
distribution = FreqDist (slova)
tisk (distribuce)

Něco takového vidíme, když provedeme výše uvedený skript:

Dále můžeme najít nejběžnější slova v textu s jednoduchou funkcí, která přijímá počet slov, která se mají zobrazit:

# Nejběžnější slova
rozdělení.most_common (2)

Něco takového vidíme, když provedeme výše uvedený skript:

Nakonec můžeme vytvořit graf distribuce frekvence, abychom vyčistili slova a jejich počet v daném textu a jasně porozuměli distribuci slov:

Stop slova

Stejně jako když hovoříme s jinou osobou prostřednictvím hovoru, během hovoru obvykle dochází k nějakému šumu, což je nežádoucí informace. Stejným způsobem obsahuje text z reálného světa také šum, který se označuje jako Stop slova. Stopwords se mohou lišit od jazyka k jazyku, ale lze je snadno identifikovat. Některá stop slova v angličtině mohou být - jsou, jsou, a, atd.

Můžeme se podívat na slova, která jsou NLTK pro anglický jazyk považována za Stopwords s následujícím fragmentem kódu:

od nltk.korpus import stopwords
nltk.stáhnout ('stopwords')
language = "anglicky"
stop_words = set (stopwords.slova (jazyk))
tisk (stop_words)

Protože sada stop slov může být samozřejmě velká, je uložena jako samostatná datová sada, kterou lze stáhnout pomocí NLTK, jak jsme si ukázali výše. Něco takového vidíme, když provedeme výše uvedený skript:

Tato zastavovací slova by měla být z textu odstraněna, pokud chcete provést přesnou analýzu textu pro poskytnutou část textu. Odeberme stop slova z našich textových tokenů:

filtr_words = []
pro slovo slovy:
pokud slovo není v stop_words:
filtrovaný_slov.připojit (slovo)
filtrovaný_slov

Něco takového vidíme, když provedeme výše uvedený skript:

Slovo Stemming

Kmen slova je základem tohoto slova. Například:

Provedeme vyplývající z filtrovaných slov, ze kterých jsme v poslední části odstranili slova zastavení. Pojďme napsat jednoduchý fragment kódu, kde k provedení operace použijeme stemmer NLTK:

od nltk.kmenový import PorterStemmer
ps = PorterStemmer ()
stemmed_words = []
pro slovo ve filtrovaných slovech:
stemmed_words.připojit (ps.kmen (slovo))
print ("Stemmed Sentence:", stemmed_words)

Něco takového vidíme, když provedeme výše uvedený skript:

Označování POS

Dalším krokem v textové analýze je po ukončení identifikace a seskupení každého slova z hlediska jeho hodnoty, tj.E. jestliže každé slovo je podstatné jméno nebo sloveso nebo něco jiného. Toto se nazývá součást značení řeči. Pojďme nyní provést označování POS:

tokeny = nltk.word_tokenize (věty [0])
tisk (žetony)

Něco takového vidíme, když provedeme výše uvedený skript:

Nyní můžeme provést značkování, pro které si budeme muset stáhnout další datovou sadu, abychom identifikovali správné značky:

nltk.stáhnout ('averaged_perceptron_tagger')
nltk.pos_tag (tokeny)


Zde je výstup značkování:

Nyní, když jsme konečně identifikovali označená slova, je to datová sada, na které můžeme provádět analýzu sentimentu, abychom identifikovali emoce za větou.

Závěr

V této lekci jsme se podívali na vynikající balíček přirozeného jazyka, NLTK, který nám umožňuje pracovat s nestrukturovanými textovými daty, abychom identifikovali všechna zastavovací slova a provedli hlubší analýzu tím, že připravíme ostrý datový soubor pro textovou analýzu s knihovnami, jako je sklearn.

Najděte všechny zdrojové kódy použité v této lekci na Githubu. Sdělte nám svůj názor na lekci na Twitteru s @sbmaggarwal a @LinuxHint.

Recenze bezdrátové myši Microsoft Sculpt Touch
Nedávno jsem četl o Microsoft Sculpt Touch bezdrátová myš a rozhodl se ji koupit. Po chvíli používání jsem se rozhodl se s ním podělit o své zkušenost...
Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...