Piton

Vodič za NLTK u Pythonu

Vodič za NLTK u Pythonu
Era podataka je već ovdje. Brzina generiranja podataka danas je veća nego ikad i ona uvijek raste. Uglavnom ljudi koji se svakodnevno bave podacima uglavnom rade s nestrukturiranim tekstualnim podacima. Neki od ovih podataka imaju pridružene elemente poput slika, videozapisa, zvuka itd. Neki od izvora ovih podataka su web stranice, dnevni blogovi, web stranice s vijestima i mnogi drugi. Analiza svih ovih podataka bržom brzinom neophodna je i puno vremena, također presudna.

Na primjer, poduzeće može pokrenuti mehanizam za analizu teksta koji obrađuje tweetove o svom poslu spominjući naziv tvrtke, mjesto, proces i analizirajući emocije povezane s tim tweetom. Ispravne radnje mogu se poduzeti brže ako to poduzeće sazna za rastuće negativne tweetove za njega na određenom mjestu kako bi se spasilo od greške ili bilo čega drugog. Još jedan uobičajeni primjer će za Youtube. Administratori i moderatori na YouTubeu upoznaju se s učinkom videozapisa ovisno o vrsti komentara na videozapisu ili porukama video chata. To će im pomoći da mnogo brže pronađu neprikladan sadržaj na web mjestu, jer su sada iskorijenili ručni rad i zaposlili automatizirane pametne botove za analizu teksta.

U ovoj ćemo lekciji proučiti neke koncepte povezane s analizom teksta uz pomoć NLTK biblioteke u Pythonu. Neki od ovih pojmova uključuju:

NLP će biti glavno područje fokusa u ovoj lekciji jer je primjenjiv na ogromne scenarije iz stvarnog života gdje može riješiti velike i ključne probleme. Ako mislite da ovo zvuči složeno, dobro jest, ali koncepte je jednako lako razumjeti ako isprobate primjere jedan pored drugog. Krenimo u instaliranje NLTK-a na vaš stroj da započnemo s njim.

Instaliranje NLTK

Samo napomenu prije početka, za ovu lekciju možete koristiti virtualno okruženje koje možemo napraviti slijedećom naredbom:

python -m virtualenv nltk
izvor nltk / bin / aktiviraj

Jednom kada je virtualno okruženje aktivno, možete instalirati NLTK knjižnicu unutar virtualnog okruženja tako da se mogu izvršavati primjeri koje sljedeći kreiramo:

pip instalirati nltk

U ovoj ćemo lekciji koristiti Anacondu i Jupyter. Ako ga želite instalirati na svoj stroj, pogledajte lekciju koja opisuje „Kako instalirati Anaconda Python na Ubuntu 18.04 LTS ”i podijelite svoje povratne informacije ako se suočite s bilo kojim problemom. Da biste instalirali NLTK s Anacondom, upotrijebite sljedeću naredbu u terminalu iz Anaconde:

conda install -c anaconda nltk

Otprilike ovako vidimo kad izvršimo gornju naredbu:

Jednom kada su instalirani i gotovi svi potrebni paketi, možemo započeti s korištenjem knjižnice NLTK sa sljedećim izrazom o uvozu:

uvoziti nltk

Krenimo s osnovnim primjerima NLTK-a sada kada imamo instalirane pakete preduvjeta.

Tokenizacija

Započet ćemo s tokenizacijom koja je prvi korak u izvođenju analize teksta. Token može biti bilo koji manji dio teksta koji se može analizirati. Postoje dvije vrste tokenizacije koje se mogu provesti s NLTK:

Možete pogoditi što se događa na svakoj od tokenizacija, pa zaronimo u primjere koda.

Tokenizacija rečenice

Kako naziv odražava, Tokenizers rečenica dijeli dio teksta u rečenice. Pokušajmo s jednostavnim isječkom koda za isti gdje se služimo tekstom koji smo odabrali iz udžbenika Apache Kafka. Izvršit ćemo potreban uvoz

uvoziti nltk
iz nltk.tokenize uvoz sent_tokenize

Imajte na umu da biste se mogli suočiti s pogreškom zbog nedostajuće ovisnosti za pozvani nltk punkt. Dodajte sljedeći redak odmah nakon uvoza u program kako biste izbjegli upozorenja:

nltk.preuzmi ('punkt')

Za mene je dao sljedeći rezultat:

Dalje, koristimo se rečenicama koje smo uveli:

text = "" "Tema na Kafki je nešto gdje se šalje poruka. Potrošač
aplikacije koje zanima ta tema uvlače poruku u to
temu i može učiniti sve s tim podacima. Do određenog vremena, bilo koji broj
Potrošačke aplikacije mogu povući ovu poruku bilo koji broj puta."" "
rečenice = poslan_tokenizirati (tekst)
ispis (rečenice)

Otprilike ovako vidimo kad izvršimo gornju skriptu:

Očekivano, tekst je pravilno organiziran u rečenice.

Tokenizacija riječi

Kako naziv govori, Word Tokenizers dijelove teksta dijeli na riječi. Pokušajmo s jednostavnim isječkom koda za isti s istim tekstom kao u prethodnom primjeru:

iz nltk.tokenize uvoz word_tokenize
riječi = riječ_tokenizirati (tekst)
ispis (riječi)

Otprilike ovako vidimo kad izvršimo gornju skriptu:

Očekivano, tekst je pravilno organiziran u riječi.

Distribucija frekvencije

Sad kad smo slomili tekst, možemo izračunati i učestalost svake riječi u tekstu koji smo koristili. S NLTK je vrlo jednostavno, evo isječka koda koji koristimo:

iz nltk.vjerojatnost uvoz FreqDist
distribucija = FreqDist (riječi)
ispis (distribucija)

Otprilike ovako vidimo kad izvršimo gornju skriptu:

Dalje, u tekstu možemo pronaći najčešće riječi s jednostavnom funkcijom koja prihvaća broj prikazanih riječi:

# Najčešće riječi
distribucija.najčešće_često (2)

Otprilike ovako vidimo kad izvršimo gornju skriptu:

Napokon, možemo napraviti grafikon raspodjele frekvencija kako bismo raščistili riječi i njihov broj u danom tekstu i jasno razumjeli raspodjelu riječi:

Lozinke

Baš kao kad razgovaramo s drugom osobom putem poziva, tijekom poziva obično se čuje neka buka koja je neželjena informacija. Na isti način, tekst iz stvarnog svijeta također sadrži buku koja se naziva Lozinke. Lozinke se mogu razlikovati od jezika do jezika, ali ih je lako prepoznati. Neke od zaustavljenih riječi na engleskom jeziku mogu biti - jesu, jesu, su, su, itd.

Riječi koje NLTK smatra engleskim jezikom za zaustavljanje možemo pogledati sa sljedećim isječkom koda:

iz nltk.zaustavne riječi za uvoz korpusa
nltk.preuzimanje ('stopwords')
jezik = "engleski"
stop_words = set (stopwords.riječi (jezik))
ispis (stop_words)

Kako, naravno, skup zaustavnih riječi može biti velik, pohranjen je kao zaseban skup podataka koji se može preuzeti s NLTK-om kao što smo gore prikazali. Otprilike ovako vidimo kad izvršimo gornju skriptu:

Ove zaustavne riječi treba ukloniti iz teksta ako želite izvršiti preciznu analizu teksta za ponuđeni dio teksta. Uklonimo zaustavne riječi iz naših tekstualnih tokena:

filtered_words = []
za riječ u riječima:
ako riječ nije u stop_words:
filtrirane_ riječi.dodati (riječ)
filtrirane_ riječi

Otprilike ovako vidimo kad izvršimo gornju skriptu:

Iskušivanje riječi

Osnova riječi je osnova te riječi. Na primjer:

Izvest ćemo izvedbu na filtriranim riječima iz kojih smo uklonili zaustavne riječi u posljednjem odjeljku. Napišimo jednostavan isječak koda gdje koristimo NLTK-ov matični element za izvođenje operacije:

iz nltk.uvoz stabljike PorterStemmer
ps = PorterStemmer ()
stemmed_words = []
za riječ u filtered_words:
matične_ riječi.dodati (ps.stabljika (riječ))
ispis ("Temeljna rečenica:", matične_ riječi)

Otprilike ovako vidimo kad izvršimo gornju skriptu:

POS označavanje

Sljedeći korak u tekstualnoj analizi je identifikacija i grupiranje svake riječi u smislu njihove vrijednosti, tj.e. ako je svaka od riječi imenica ili glagol ili nešto drugo. To se naziva dijelom označavanja govora. Izvršimo označavanje POS-a sada:

žetoni = nltk.word_tokenize (rečenice [0])
ispis (žetoni)

Otprilike ovako vidimo kad izvršimo gornju skriptu:

Sada možemo izvršiti označavanje, za što ćemo morati preuzeti drugi skup podataka kako bismo identificirali ispravne oznake:

nltk.preuzimanje ('prosječni_perceptron_tagger')
nltk.pos_tag (tokeni)


Evo rezultata označavanja:

Sad kad smo napokon identificirali označene riječi, ovo je skup podataka na kojem možemo provesti analizu osjećaja kako bismo identificirali osjećaje iza rečenice.

Zaključak

U ovoj smo lekciji pogledali izvrstan paket prirodnog jezika, NLTK koji nam omogućuje rad s nestrukturiranim tekstualnim podacima kako bismo prepoznali bilo koje zaustavne riječi i izveli dublju analizu pripremajući oštar skup podataka za analizu teksta s bibliotekama poput sklearn.

Pronađite sve izvorne kodove korištene u ovoj lekciji na Githubu. Molimo podijelite svoje povratne informacije o lekciji na Twitteru s @sbmaggarwal i @LinuxHint.

Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...
10 najboljih igara za igranje na Ubuntuu
Windows platforma bila je jedna od dominantnih platformi za igre zbog ogromnog postotka igara koje se danas razvijaju kako bi podržavale Windows. Može...
5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...