„Python“

NLTK mokymo programa „Python“

NLTK mokymo programa „Python“
Duomenų era jau čia. Duomenų generavimo greitis šiandien yra didesnis nei bet kada ir jis visada auga. Dažniausiai žmonės, kurie kasdien susiduria su duomenimis, dažniausiai dirba su nestruktūrizuotais tekstiniais duomenimis. Kai kurie iš šių duomenų turi susijusių elementų, tokių kaip vaizdai, vaizdo įrašai, garso įrašai ir kt. Kai kurie šių duomenų šaltiniai yra svetainės, kasdieniniai tinklaraščiai, naujienų svetainės ir daugybė kitų. Analizuoti visus šiuos duomenis reikia greičiau ir daug laiko, taip pat labai svarbu.

Pvz., Verslas gali valdyti teksto analizės variklį, kuris apdoroja tweetus apie savo verslą, nurodydamas įmonės pavadinimą, vietą, procesą ir analizuodamas emocijas, susijusias su tuo tweetu. Teisingų veiksmų galima imtis greičiau, jei tas verslas sužino apie vis didėjančius neigiamus „tweetus“ tam tikroje vietoje, kad išsisaugotų nuo klaidos ar bet ko kito. Kitas įprastas pavyzdys „YouTube“. „Youtube“ administratoriai ir moderatoriai sužino apie vaizdo įrašo poveikį, atsižvelgdami į vaizdo įrašo komentarų tipą ar vaizdo pokalbių pranešimus. Tai padės jiems daug greičiau rasti netinkamą turinį svetainėje, nes dabar jie išnaikino rankinį darbą ir naudojo automatizuotus išmaniojo teksto analizės robotus.

Šioje pamokoje mes išnagrinėsime keletą sąvokų, susijusių su teksto analize, naudodamiesi NLTK biblioteka „Python“. Kai kurios iš šių sąvokų apims:

NLP bus pagrindinė šios pamokos sritis, nes ji taikoma milžiniškiems realaus gyvenimo scenarijams, kai ji gali išspręsti dideles ir esmines problemas. Jei manote, kad tai skamba kompleksiškai, gerai, bet sąvokas vienodai lengva suprasti, jei išbandysite pavyzdžius šalia. Pradėkime nuo NLTK diegimo jūsų kompiuteryje, kad galėtumėte jį pradėti.

NLTK diegimas

Prieš pradėdami tik pastabą, galite naudoti virtualią aplinką šioje pamokoje, kurią galime padaryti naudodami šią komandą:

pitonas -m virtualenv nltk
šaltinis nltk / bin / aktyvuoti

Kai virtuali aplinka bus aktyvi, galite įdiegti NLTK biblioteką virtualioje aplinkoje, kad būtų galima vykdyti mūsų sukurtus pavyzdžius:

pip įdiegti nltk

Šioje pamokoje pasinaudosime „Anaconda“ ir „Jupyter“. Jei norite jį įdiegti savo kompiuteryje, peržiūrėkite pamoką, kurioje aprašyta „Kaip įdiegti„ Anaconda Python “į„ Ubuntu 18 “.04 LTS “ir pasidalykite savo atsiliepimais, jei kiltų kokių nors problemų. Norėdami įdiegti NLTK su „Anaconda“, naudokite šią komandą „Anaconda“ terminale:

conda install -c anaconda nltk

Mes matome kažką panašaus, kai vykdome pirmiau nurodytą komandą:

Įdiegę ir atlikę visus reikalingus paketus, galime pradėti naudoti NLTK biblioteką naudodami šį importo pareiškimą:

importuoti nltk

Pradėkime nuo pagrindinių NLTK pavyzdžių dabar, kai turime įdiegtus būtinų sąlygų paketus.

Tokenizavimas

Pradėsime nuo „Tokenization“, kuris yra pirmasis žingsnis atliekant teksto analizę. Žetonas gali būti bet kokia mažesnė teksto dalies dalis, kurią galima analizuoti. Yra du tokenizavimo tipai, kuriuos galima atlikti naudojant NLTK:

Galite atspėti, kas vyksta su kiekvienu ženklinimu, todėl panagrinėkime kodo pavyzdžius.

Sakinio žymėjimas

Kaip atspindi pavadinimas, „Sentence Tokenizers“ suskaido teksto dalį į sakinius. Išbandykime paprastą to paties kodo fragmentą, kur mes naudojame tekstą, kurį pasirinkome iš „Apache Kafka“ mokymo programos. Mes atliksime reikiamą importą

importuoti nltk
nuo nltk.tokenize importuoti sent_tokenize

Atminkite, kad galite susidurti su klaida dėl trūkstamos priklausomybės nuo iškviesto nltk punkt. Pridėkite šią eilutę iškart po importo programoje, kad išvengtumėte įspėjimų:

nltk.atsisiųsti ('punkt')

Man tai suteikė tokį rezultatą:

Tada mes naudojame importuotą sakinio žymeklį:

text = "" "Tema" Kafka "yra kažkas, kur siunčiamas pranešimas. Vartotojas
programos, kurios domisi ta tema, įtraukia pranešimą į ją
tema ir gali daryti bet ką su tais duomenimis. Iki konkretaus laiko bet koks skaičius
vartotojų programos gali parengti šį pranešimą bet kiek kartų."" "
sakiniai = sent_tokenize (tekstas)
spausdinti (sakiniai)

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Kaip ir reikėjo tikėtis, tekstas buvo teisingai išdėstytas sakiniais.

Žodžių žymėjimas

Kaip atspindi pavadinimas, „Word Tokenizers“ suskaido teksto dalį į žodžius. Pabandykime paprastą to paties kodo fragmentą su tuo pačiu tekstu, kaip ir ankstesniame pavyzdyje:

nuo nltk.tokenize importuoti word_tokenize
žodžiai = word_tokenize (tekstas)
spausdinti (žodžiai)

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Kaip ir reikėjo tikėtis, tekstas buvo teisingai išdėstytas žodžiais.

Dažnio pasiskirstymas

Dabar, kai sulaužėme tekstą, taip pat galime apskaičiuoti kiekvieno naudojamo teksto žodžio dažnį. Tai labai paprasta padaryti su NLTK, čia yra mūsų naudojamas kodo fragmentas:

nuo nltk.tikimybės importas „FreqDist“
paskirstymas = FreqDist (žodžiai)
spausdinti (platinimas)

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Toliau galime rasti dažniausiai pasitaikančius žodžius tekste naudodami paprastą funkciją, kuri priima rodomų žodžių skaičių:

# Dažniausiai pasitaikantys žodžiai
paskirstymas.most_common (2)

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Galiausiai galime sukurti dažnio pasiskirstymo diagramą, kad išvalytume žodžius ir jų skaičių pateiktame tekste ir aiškiai suprastume žodžių pasiskirstymą:

Stabdymo žodžiai

Kaip ir tada, kai kalbamės su kitu asmeniu skambučio metu, per skambutį dažniausiai kyla triukšmas, kuris yra nepageidaujama informacija. Taip pat tikrojo pasaulio tekste taip pat yra triukšmo, kuris vadinamas Stabdymo žodžiai. Stabdymo žodžiai gali skirtis, tačiau juos galima lengvai atpažinti. Kai kurie raktiniai žodžiai anglų kalba gali būti, yra, yra, ir tt.

Mes galime pažvelgti į žodžius, kuriuos NLTK laiko angliškais žodžiais, naudojant šį kodo fragmentą:

nuo nltk.korpuso importo stotelės žodžiai
nltk.atsisiųsti ('stopwords')
kalba = "anglų kalba"
stop_words = nustatyti (stopwords.žodžiai (kalba))
spausdinti (stop_words)

Žinoma, stabdymo žodžių rinkinys gali būti didelis, jis saugomas kaip atskiras duomenų rinkinys, kurį galima atsisiųsti iš NLTK, kaip parodyta aukščiau. Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Šie teksto žodžiai turėtų būti pašalinti iš teksto, jei norite atlikti tikslią pateikto teksto teksto analizę. Pašalinkime stotelės žodžius iš savo tekstinių žetonų:

filtered_words = []
už žodį žodžiais:
jei žodis nėra stop_words:
filtruoti_žodžiai.pridėti (žodis)
filtruoti_žodžiai

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Žodžio kilmė

Žodžio kamienas yra to žodžio pagrindas. Pavyzdžiui:

Atliksime filtruotus žodžius, iš kurių paskutiniame skyriuje pašalinome sustabdymo žodžius. Parašykime paprastą kodo fragmentą, kur operacijai atlikti naudojame NLTK šturmaną:

nuo nltk.stiebo importas „PorterStemmer“
ps = PorterStemmer ()
stemmed_words = []
žodžiui filtruotuose_žodžiuose:
stemmed_words.pridėti (ps.kamienas (žodis))
spausdinti ("Stemmed Sentence:", stemmed_words)

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

POS žymėjimas

Kitas tekstinės analizės žingsnis yra po to, kai yra padarinys, - nustatyti ir sugrupuoti kiekvieną žodį pagal jų vertę, t.e. jei kiekvienas žodis yra daiktavardis ar veiksmažodis ar dar kažkas. Tai vadinama kalbos žymėjimo dalimi. Atlikime POS žymėjimą dabar:

žetonai = nltk.word_tokenize (sakiniai [0])
spausdinti (žetonai)

Mes matome kažką panašaus, kai vykdome aukščiau pateiktą scenarijų:

Dabar galime atlikti žymėjimą, kuriam teks atsisiųsti kitą duomenų rinkinį, kad nustatytume teisingas žymas:

nltk.atsisiųsti ('averaged_perceptron_tagger')
nltk.pos_tag (žetonai)


Čia yra žymėjimo išvestis:

Dabar, kai mes pagaliau nustatėme pažymėtus žodžius, tai yra duomenų rinkinys, kuriame galime atlikti nuotaikos analizę, kad nustatytume emocijas už sakinio.

Išvada

Šioje pamokoje apžvelgėme puikų natūralios kalbos paketą NLTK, kuris leidžia mums dirbti su nestruktūruotais tekstiniais duomenimis, norint nustatyti bet kokius sustojimo žodžius ir atlikti gilesnę analizę, paruošiant aštrią duomenų rinkinį teksto analizei su tokiomis bibliotekomis kaip „sklearn“.

„Github“ raskite visą šioje pamokoje naudojamą šaltinio kodą. Prašome pasidalinti savo atsiliepimais apie pamoką „Twitter“ su @sbmaggarwal ir @LinuxHint.

Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...