Python

NLTK apmācība Python

NLTK apmācība Python
Datu laikmets jau ir klāt. Datu ģenerēšanas ātrums šodien ir lielāks nekā jebkad agrāk, un tas vienmēr pieaug. Cilvēki, kas ikdienā nodarbojas ar datiem, lielākoties strādā ar nestrukturētiem teksta datiem. Dažiem no šiem datiem ir saistīti elementi, piemēram, attēli, video, audio utt. Daži no šo datu avotiem ir vietnes, ikdienas emuāri, ziņu vietnes un daudzi citi. Visu šo datu ātrāka analīze ir nepieciešama, un arī tas ir daudz laika.

Piemēram, uzņēmums var palaist teksta analīzes motoru, kas apstrādā tweets par savu biznesu, pieminot uzņēmuma nosaukumu, atrašanās vietu, procesu un analizējot emocijas, kas saistītas ar šo tvītu. Pareizas darbības var veikt ātrāk, ja šis uzņēmums uzzina par negatīvu tvītu pieaugumu konkrētā vietā, lai glābtu sevi no kļūdām vai visa cita. Vēl viens izplatīts piemērs būs Youtube. Youtube administratori un moderatori uzzina par videoklipa efektu atkarībā no videoklipā izteikto komentāru veida vai video tērzēšanas ziņojumiem. Tas viņiem palīdzēs daudz ātrāk atrast neatbilstošu saturu vietnē, jo tagad viņi ir izskauduši manuālo darbu un izmantojuši automatizētas viedās teksta analīzes robotprogrammatūras.

Šajā nodarbībā mēs izpētīsim dažus jēdzienus, kas saistīti ar teksta analīzi, izmantojot NLTK bibliotēkas palīdzību Python. Daži no šiem jēdzieniem ietvers:

NLP šajā nodarbībā būs galvenā uzmanības joma, jo tā ir piemērojama milzīgiem reālās dzīves scenārijiem, kur tā var atrisināt lielas un izšķirošas problēmas. Ja jūs domājat, ka tas izklausās sarežģīti, labi, ka tas ir, bet jēdzieni ir vienlīdz viegli saprotami, ja izmēģināt piemērus blakus. Sāksim instalēt NLTK savā datorā, lai sāktu darbu.

NLTK instalēšana

Pirms sākat tikai piezīmi, šajā nodarbībā varat izmantot virtuālo vidi, kuru mēs varam izveidot ar šādu komandu:

pitons -m virtualenv nltk
avots nltk / bin / aktivizēt

Kad virtuālā vide ir aktīva, varat instalēt NLTK bibliotēku virtuālajā env, lai varētu izpildīt nākamos veidotos piemērus:

pip instalēt nltk

Šajā nodarbībā mēs izmantosim Anaconda un Jupyter. Ja vēlaties to instalēt savā datorā, skatiet nodarbību, kurā aprakstīts “Kā instalēt Anaconda Python uz Ubuntu 18.04 LTS ”un dalieties savās atsauksmēs, ja rodas kādas problēmas. Lai instalētu NLTK ar Anaconda, terminālā no Anaconda izmantojiet šādu komandu:

conda install -c anaconda nltk

Izpildot iepriekš minēto komandu, mēs redzam kaut ko līdzīgu:

Kad visas nepieciešamās pakotnes ir instalētas un veiktas, mēs varam sākt izmantot NLTK bibliotēku ar šādu importēšanas paziņojumu:

importa nltk

Sāksim ar pamata NLTK piemēriem tūlīt, kad mums ir instalētas priekšnoteikumu paketes.

Tokenizācija

Mēs sāksim ar Tokenization, kas ir pirmais solis teksta analīzes veikšanā. Marķieris var būt jebkura mazāk analizējama teksta daļa. Ir divi marķēšanas veidi, kurus var veikt ar NLTK:

Jūs varat uzminēt, kas notiek ar katru no Tokenization, tāpēc pievērsīsimies kodu piemēriem.

Teikuma marķēšana

Kā norāda nosaukums, teikuma marķieri sadala teksta daļu teikumos. Izmēģināsim vienkāršu koda fragmentu tam pašam, kur mēs izmantojam tekstu, kuru izvēlējāmies no Apache Kafka apmācības. Mēs veiksim nepieciešamo importu

importa nltk
no nltk.tokenize importēt sent_tokenize

Lūdzu, ņemiet vērā, ka var rasties kļūda, jo trūkst atkarības no izsauktā nltk punkt. Pievienojiet šādu rindu tūlīt pēc importēšanas programmā, lai izvairītos no brīdinājumiem:

nltk.lejupielādēt ('punkt')

Man tas deva šādu rezultātu:

Pēc tam mēs izmantojam importēto teikuma marķieri:

text = "" "Tēma Kafka ir kaut kas tāds, kur tiek nosūtīts ziņojums. Patērētājs
lietojumprogrammas, kuras interesējas par šo tēmu, ievelk ziņu tajā
tēmu un ar šiem datiem var darīt jebko. Līdz noteiktam laikam jebkurš skaits
patērētāju lietojumprogrammas var nosūtīt šo ziņojumu vairākas reizes."" "
teikumi = sent_tokenize (teksts)
drukāt (teikumi)

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Kā jau bija paredzēts, teksts tika pareizi sakārtots teikumos.

Vārdu marķēšana

Kā norāda nosaukums, Word Tokenizers sadala teksta daļu vārdos. Izmēģināsim vienkāršu koda fragmentu tam pašam ar tādu pašu tekstu kā iepriekšējā piemērā:

no nltk.tokenize importēt vārdu_tokenize
vārdi = word_tokenize (teksts)
drukāt (vārdi)

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Kā jau bija paredzēts, teksts tika pareizi sakārtots vārdos.

Frekvences sadalījums

Tagad, kad mēs esam sadalījuši tekstu, mēs varam arī aprēķināt katra vārda biežumu izmantotajā tekstā. Tas ir ļoti vienkārši izdarāms ar NLTK, šeit ir mūsu izmantotais koda fragments:

no nltk.varbūtības importa FreqDist
sadalījums = FreqDist (vārdi)
izdruka (izplatīšana)

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Tālāk tekstā varam atrast visbiežāk lietotos vārdus ar vienkāršu funkciju, kas pieņem parādāmo vārdu skaitu:

# Visizplatītākie vārdi
izplatīšana.most_common (2)

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Visbeidzot, mēs varam izveidot frekvences sadalījuma diagrammu, lai noskaidrotu vārdus un to skaitu dotajā tekstā un skaidri saprastu vārdu sadalījumu:

Stopvārdi

Tāpat kā tad, kad mēs sarunājamies ar citu personu, izmantojot zvanu, pār zvanu mēdz būt zināms troksnis, kas ir nevēlama informācija. Tādā pašā veidā teksts no reālās pasaules satur arī troksni, ko sauc par Stopvārdi. Atslēgvārdi dažādās valodās var atšķirties, taču tos var viegli noteikt. Daži no atslēgvārdiem angļu valodā var būt - ir, ir, a, utt.

Mēs varam apskatīt vārdus, kurus NLTK uzskata par atslēgvārdiem angļu valodā, ar šādu koda fragmentu:

no nltk.korpusa importēšanas atslēgvārdi
nltk.lejupielādēt ('stopwords')
language = "angļu valoda"
stop_words = iestatīt (stopwords.vārdi (valoda))
drukāt (stop_words)

Tā kā, protams, pieturas vārdu kopa var būt liela, tā tiek glabāta kā atsevišķa datu kopa, kuru var lejupielādēt ar NLTK, kā parādīts iepriekš. Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Šie vārdi ir jānoņem no teksta, ja vēlaties veikt precīzu teksta analīzi paredzētajam teksta fragmentam. Noņemsim pieturas vārdus no mūsu tekstuālajiem marķieriem:

filtered_words = []
vārdam vārdos:
ja vārds nav stop_words:
filtered_words.pievienot (vārds)
filtered_words

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Vārds izriet

Vārda pamats ir vārda kāts. Piemēram:

Mēs veiksim radušos filtrētos vārdus, no kuriem pēdējā sadaļā mēs noņēmām pieturas vārdus. Uzrakstīsim vienkāršu koda fragmentu, kur operācijas veikšanai izmantojam NLTK stumbru:

no nltk.kātu imports PorterStemmer
ps = PorterStemmer ()
stemmed_words = []
vārdam filtrētos vārdos:
stemmed_words.pievienot (ps.kāts (vārds))
drukāt ("Stemmed Sentence:", stemmed_words)

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

POS marķēšana

Pēc teksta analīzes nākamais solis ir identificēt un sagrupēt katru vārdu pēc to vērtības, t.i.e. ja katrs no vārdiem ir lietvārds vai darbības vārds vai kaut kas cits. To sauc par runas marķēšanas daļu. Veiksim POS marķēšanu tūlīt:

žetoni = nltk.word_tokenize (teikumi [0])
druka (žetoni)

Mēs redzam kaut ko līdzīgu, izpildot iepriekš minēto skriptu:

Tagad mēs varam veikt marķēšanu, kurai mums būs jāielādē cita datu kopa, lai identificētu pareizos tagus:

nltk.lejupielādēt ('averaged_perceptron_tagger')
nltk.pos_tag (žetoni)


Šeit ir marķēšanas rezultāts:

Tagad, kad mēs beidzot esam identificējuši atzīmētos vārdus, šī ir datu kopa, kurā mēs varam veikt sentimenta analīzi, lai identificētu emocijas, kas slēpjas aiz teikuma.

Secinājums

Šajā nodarbībā mēs apskatījām lielisku dabiskās valodas paketi NLTK, kas ļauj mums strādāt ar nestrukturētiem teksta datiem, lai identificētu visus apstāšanās vārdus un veiktu dziļāku analīzi, sagatavojot asu datu kopu teksta analīzei ar tādām bibliotēkām kā sklearn.

Github vietnē atrodiet visu šajā nodarbībā izmantoto avota kodu. Lūdzu, dalieties savās atsauksmēs par nodarbību Twitter vietnē @sbmaggarwal un @LinuxHint.

Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...
Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...
Kā instalēt un spēlēt Doom uz Linux
Ievads liktenī Doom sērija radās 90. gados pēc sākotnējā Doom izlaišanas. Tas bija tūlītējs hīts, un kopš tā laika spēļu sērija ir saņēmusi daudzas ba...