Python

Výukový program NLTK v Pythone

Výukový program NLTK v Pythone
Éra dát už je tu. Miera, akou sú dnes údaje generované, je vyššia ako kedykoľvek predtým a neustále rastie. Ľudia, ktorí sa každodenne zaoberajú dátami, väčšinou pracujú s neštruktúrovanými textovými dátami. Niektoré z týchto údajov majú priradené prvky, ako sú obrázky, videá, zvuky atď. Niektoré zo zdrojov týchto údajov sú webové stránky, denné blogy, spravodajské weby a mnoho ďalších. Rýchlejšia analýza všetkých týchto údajov je nevyhnutná a mnohokrát rozhodujúca.

Napríklad, podnik môže spustiť nástroj na textovú analýzu, ktorý spracuje tweety o svojom podniku, pričom uvedie názov spoločnosti, miesto, proces a analyzuje emócie súvisiace s týmto tweetom. Správne kroky možno podniknúť rýchlejšie, ak sa táto firma dozvie o rastúcich negatívnych tweetoch pre ňu na konkrétnom mieste, aby sa ušetrila pred hrubým omylom alebo čímkoľvek iným. Ďalším bežným príkladom bude pre YouTube. Správcovia a moderátori Youtube sa dozvedia o účinku videa v závislosti od typu komentárov k videu alebo správ videochatu. To im pomôže nájsť nevhodný obsah na webe oveľa rýchlejšie, pretože teraz odstránili manuálnu prácu a nasadili automatizované roboty na inteligentnú analýzu textu.

V tejto lekcii si preštudujeme niektoré pojmy súvisiace s textovou analýzou pomocou knižnice NLTK v Pythone. Niektoré z týchto koncepcií budú zahŕňať:

NLP bude v tejto lekcii hlavnou oblasťou zamerania, pretože je použiteľná pre obrovské scenáre v reálnom živote, kde môže vyriešiť veľké a zásadné problémy. Ak si myslíte, že to znie zložito, je to tak, ale koncepty sú rovnako ľahko pochopiteľné, ak vedľa seba vyskúšate príklady. Vráťme sa k inštalácii NLTK na vašom počítači a začnite s tým.

Inštaluje sa NLTK

Len na úvod pred začatím môžete pre túto lekciu použiť virtuálne prostredie, ktoré môžeme vytvoriť pomocou nasledujúceho príkazu:

python -m virtualenv nltk
zdroj nltk / bin / aktivovať

Keď je virtuálne prostredie aktívne, môžete si nainštalovať knižnicu NLTK vo virtuálnom prostredí env, aby bolo možné vykonať príklady, ktoré vytvoríme ďalej:

pip nainštalovať nltk

V tejto lekcii využijeme Anacondu a Jupyter. Ak si ho chcete nainštalovať na svoj počítač, pozrite si lekciu, ktorá popisuje „Ako nainštalovať Anaconda Python na Ubuntu 18.04 LTS ”a podeľte sa o svoje pripomienky, ak narazíte na akýkoľvek problém. Ak chcete nainštalovať NLTK s Anacondou, použite v termináli z príkazu Anaconda nasledujúci príkaz:

conda install -c anaconda nltk

Vidíme niečo také, keď vykonáme vyššie uvedený príkaz:

Po nainštalovaní a dokončení všetkých potrebných balíkov môžeme začať používať knižnicu NLTK s nasledujúcim príkazom na import:

importovať nltk

Začnime so základnými príkladmi NLTK, keď už máme nainštalované balíky nevyhnutných predpokladov.

Tokenizácia

Začneme tokenizáciou, ktorá je prvým krokom pri vykonávaní textovej analýzy. Token môže byť akákoľvek menšia časť textu, ktorá sa dá analyzovať. Existujú dva typy tokenizácie, ktoré je možné vykonať pomocou NLTK:

Môžete hádať, čo sa stane s každou tokenizáciou, takže sa ponorme do príkladov kódu.

Tokenizácia vety

Ako naznačuje názov, Tokenizátori vety rozdeľujú text na vety. Vyskúšajme jednoduchý útržok kódu, kde použijeme text, ktorý sme vybrali z tutoriálu Apache Kafka. Vykonáme potrebné dovozy

importovať nltk
od nltk.tokenize import sent_tokenize

Upozorňujeme, že by ste mohli čeliť chybe z dôvodu chýbajúcej závislosti volaného súboru nltk punkt. Pridajte nasledujúci riadok hneď po importovaní do programu, aby ste sa vyhli akýmkoľvek varovaniam:

nltk.download ('punkt')

Pre mňa to prinieslo nasledujúci výstup:

Ďalej použijeme importovaný vetný tokenizer:

text = "" "Téma v Kafke je niečo, na čo sa posiela správa. Spotrebiteľ
aplikácie, ktoré sa o danú tému zaujímajú, vťahujú do nej správu
téma a s týmito údajmi môže urobiť čokoľvek. Do konkrétneho času, ľubovoľný počet
spotrebiteľské aplikácie môžu túto správu načítať koľkokrát.„“ „
vety = sent_tokenize (text)
tlač (vety)

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Podľa očakávania bol text správne usporiadaný do viet.

Tokenizácia slov

Ako naznačuje názov, tokenizátory slov rozdeľujú kúsok textu na slová. Vyskúšajme jednoduchý útržok kódu pre rovnaký text s rovnakým textom ako v predchádzajúcom príklade:

od nltk.importovať slovo_tokenizovať
words = word_tokenize (text)
tlač (slová)

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Podľa očakávania bol text správne usporiadaný do slov.

Distribúcia frekvencie

Teraz, keď sme text porušili, môžeme tiež vypočítať frekvenciu každého slova v texte, ktorý sme použili. Je to veľmi jednoduché urobiť s NLTK, tu je fragment kódu, ktorý používame:

od nltk.pravdepodobný import FreqDist
distribúcia = FreqDist (slová)
tlač (distribúcia)

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Ďalej môžeme v texte nájsť najbežnejšie slová s jednoduchou funkciou, ktorá akceptuje počet slov, ktoré sa majú zobraziť:

# Najčastejšie slová
distribúcia.most_common (2)

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Na záver môžeme urobiť graf rozdelenia frekvencií, ktorý vymaže slová a ich počet v danom texte a jasne pochopí rozdelenie slov:

Stopové slová

Rovnako ako keď hovoríme s inou osobou prostredníctvom hovoru, býva počas hovoru určitý hluk, čo sú nežiaduce informácie. Rovnakým spôsobom obsahuje text z reálneho sveta aj šum, ktorý sa označuje ako Stopové slová. Stopové slová sa môžu v jednotlivých jazykoch líšiť, ale dajú sa ľahko identifikovať. Niektoré stopové slová v anglickom jazyku môžu byť - sú, sú, a, atď.

Na slová, ktoré NLTK pre anglický jazyk považuje N Stop za slová, sa môžeme pozrieť pomocou nasledujúceho útržku kódu:

od nltk.korpusové importné slová
nltk.download ('stopwords')
jazyk = "angličtina"
stop_words = sada (stopwords.slová (jazyk))
print (stop_words)

Pretože skupina zastávkových slov môže byť samozrejme veľká, je uložená ako samostatná množina údajov, ktorú je možné stiahnuť pomocou programu NLTK, ako sme si ukázali vyššie. Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Tieto zastavovacie slová by sa mali z textu odstrániť, ak chcete vykonať presnú textovú analýzu poskytnutej časti textu. Odstráňte ukončovacie slová z našich textových tokenov:

filtrované_slová = []
pre slovo slovami:
ak slovo nie je v stop_words:
filtrované_slová.pripojiť (slovo)
filtrované_slová

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Stemming slova

Kmeň slova je základom tohto slova. Napríklad:

Vykonáme vychádzanie z filtrovaných slov, z ktorých sme v poslednej časti odstránili zastávky. Poďme napísať jednoduchý úryvok kódu, kde na vykonanie operácie použijeme stemmer NLTK:

od nltk.kmeňový import PorterStemmer
ps = PorterStemmer ()
stemmed_words = []
pre slovo vo filtrovaných_slovách:
stemmed_words.pridať (ps.stonka (slovo))
print ("Zastavená veta:", stemmed_words)

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Označovanie POS

Ďalším krokom v textovej analýze je po identifikácii a zoskupení každého slova z hľadiska jeho hodnoty, t.j.e. ak je každé zo slov podstatné meno alebo sloveso alebo niečo iné. Toto sa označuje ako súčasť označovania reči. Teraz vykonajme označovanie POS:

tokeny = nltk.word_tokenize (vety [0])
tlač (tokeny)

Vidíme niečo také, keď vykonáme vyššie uvedený skript:

Teraz môžeme vykonať značkovanie, pre ktoré si budeme musieť stiahnuť ďalšiu množinu údajov, aby sme určili správne značky:

nltk.stiahnuť ('averaged_perceptron_tagger')
nltk.pos_tag (tokeny)


Tu je výstup značkovania:

Teraz, keď sme konečne identifikovali označené slová, ide o množinu údajov, na ktorej môžeme vykonať analýzu sentimentu a identifikovať emócie za vetou.

Záver

V tejto lekcii sme sa zamerali na vynikajúci balík prirodzeného jazyka, NLTK, ktorý nám umožňuje pracovať s neštruktúrovanými textovými dátami na identifikáciu akýchkoľvek zastávkových slov a vykonať hlbšiu analýzu pomocou prípravy ostrej sady dát na analýzu textu s knižnicami ako sklearn.

Všetky zdrojové kódy použité v tejto lekcii nájdete na serveri Github. Podeľte sa o svoju spätnú väzbu k lekcii na Twitteri s @sbmaggarwal a @LinuxHint.

Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...
Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...
Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...