Python

NLTK juhendaja Pythonis

NLTK juhendaja Pythonis
Andmete ajastu on juba käes. Andmete genereerimise kiirus on täna suurem kui kunagi varem ja see kasvab alati. Enamasti töötavad igapäevaselt andmetega tegelevad inimesed enamasti struktureerimata tekstiandmetega. Mõnel neist andmetest on seotud elemente, nagu pildid, videod, helid jms. Mõned nende andmete allikad on veebisaidid, igapäevased ajaveebid, uudiste veebisaidid ja palju muud. Kõigi nende andmete kiiremini analüüsimine on vajalik ja palju aega ka ülioluline.

Näiteks võib ettevõte käitada tekstianalüüsi mootorit, mis töötleb oma ettevõtte kohta käivaid säutse, mainides ettevõtte nime, asukohta, protsessi ja analüüsides selle säutsuga seotud emotsioone. Õigeid toiminguid saab teha kiiremini, kui see ettevõte saab teada selle kohta, kuidas konkreetses asukohas kasvavad selle jaoks negatiivsed säutsud, et päästa end vea või muu eest. Teine levinud näide Youtube. Youtube'i administraatorid ja moderaatorid saavad teada video mõjust sõltuvalt videole tehtud kommentaaride tüübist või videovestluse sõnumitest. See aitab neil veebisaidilt sobimatut sisu palju kiiremini leida, sest nüüd on nad käsitsi töötamise kaotanud ja kasutanud automatiseeritud nutikat tekstianalüüsi roboteid.

Selles tunnis uurime Pythonis NLTK teegi abil mõningaid tekstianalüüsiga seotud mõisteid. Mõni neist mõistetest hõlmab järgmist:

NLP on selles õppetükis põhirõhk, kuna seda saab kasutada tohutute reaalsete stsenaariumide korral, kus see suudab lahendada suuri ja olulisi probleeme. Kui arvate, et see kõlab keeruliselt, siis nii see on, kuid mõisteid on sama lihtne mõista, kui proovite näiteid kõrvuti. Hakkame alustama teie arvutisse NLTK installimist, et sellega alustada.

NLTK installimine

Enne alustamist võite lihtsalt märkida, et saate selle õppetunni jaoks kasutada virtuaalset keskkonda, mille saame teha järgmise käsuga:

python -m virtualenv nltk
allikas nltk / bin / activate

Kui virtuaalne keskkond on aktiivne, saate NLTK teegi installida virtuaalsesse env-sse, et saaksime järgmiselt loodud näited täita:

pip install nltk

Selles tunnis kasutame Anaconda ja Jupyterit. Kui soovite selle oma arvutisse installida, vaadake õppetundi, mis kirjeldab artiklit „Kuidas Anaconda Pythoni installida Ubuntu 18.04 LTS ”ja jagage oma tagasisidet, kui teil on probleeme. NLTK installimiseks koos Anacondaga kasutage Anaconda terminalis järgmist käsku:

conda install -c anaconda nltk

Ülaloleva käsu täitmisel näeme midagi sellist:

Kui kõik vajalikud paketid on installitud ja tehtud, saame alustada järgmise NLTK-teegi kasutamist järgmise impordilausega:

import nltk

Alustame NLTK põhinäidetega nüüd, kui eeltingimuste paketid on installitud.

Tokeniseerimine

Alustame märgistamisest, mis on esimene samm tekstianalüüsi tegemisel. Luba võib olla tekstitüki mis tahes väiksem osa, mida saab analüüsida. NLTK-ga saab teha kahte tüüpi tokeniseerimist:

Võite arvata, mis juhtub iga tokeniseerimisega, nii et uurime koodinäiteid.

Lause tokeniseerimine

Nagu nimi peegeldab, jagavad Lausemärgised tekstilõigu lauseteks. Proovime sama koodi lihtsat koodilõiku, kus kasutame Apache Kafka õpetusest valitud teksti. Teeme vajaliku impordi

import nltk
alates nltk.tokenize import sent_tokenize

Pange tähele, et võite kokku puutuda veaga, kuna nltk kutsutakse sõltumatust punkt. Hoiatuste vältimiseks lisage järgmine rida kohe pärast programmi importimist:

nltk.lae alla ('punkt')

Minu jaoks andis see järgmise väljundi:

Järgmisena kasutame imporditud lause tokenizerit:

text = "" "Kafka teema on see, kuhu sõnum saadetakse. Tarbija
sellest teemast huvitatud rakendused tõmbavad sõnumi selle sisse
teema ja saab nende andmetega kõike teha. Kuni kindla ajani on suvaline arv
tarbijarakendused saavad seda teadet mitu korda tõmmata."" "
laused = sent_tokenize (tekst)
print (laused)

Ülaloleva skripti käivitamisel näeme midagi sellist:

Ootuspäraselt oli tekst korrektselt lauseteks korraldatud.

Sõna tokeniseerimine

Nagu nimi peegeldab, jagab Word Tokenizers tekstitüki sõnadeks. Proovime lihtsat koodijuppi sama tekstiga nagu eelmine näide:

alates nltk.tokenize import sõna_tokenize
sõnad = sõna_tokenize (tekst)
print (sõnad)

Ülaloleva skripti käivitamisel näeme midagi sellist:

Ootuspäraselt oli tekst korrektselt sõnadesse paigutatud.

Sageduse jaotumine

Nüüd, kui oleme teksti purustanud, saame arvutada ka kasutatud sõna iga sõna sageduse. NLTK-ga on seda väga lihtne teha, siin on koodilõik, mida kasutame:

alates nltk.tõenäosuse importimine FreqDist
jaotus = FreqDist (sõnad)
trükk (levitamine)

Ülaloleva skripti käivitamisel näeme midagi sellist:

Järgmisena leiame tekstist kõige tavalisemad sõnad lihtsa funktsiooniga, mis aktsepteerib kuvatavate sõnade arvu:

# Enamlevinud sõnad
levitamine.kõige tavalisem (2)

Ülaloleva skripti käivitamisel näeme midagi sellist:

Lõpuks saame koostada sagedusjaotuse graafiku, et selgitada sõnad ja nende arv antud tekstis ning mõista selgelt sõnade jaotust:

Märksõnad

Täpselt nagu kõne ajal teise inimesega rääkides, kipub kõne üle tekkima müra, mis on soovimatu teave. Samamoodi sisaldab pärismaailma tekst ka müra, mida nimetatakse Märksõnad. Märksõnad võivad erinevates keeltes erineda, kuid neid saab hõlpsasti tuvastada. Mõned ingliskeelsed märksõnad võivad olla, on, on, a, jne.

Saame vaadata järgmise koodilõiguga sõnu, mida NLTK peab ingliskeelseks märksõnaks:

alates nltk.korpuse importimise märksõnad
nltk.allalaadimine ('stopwords')
keel = "eesti"
stop_words = seatud (stopwords.sõnad (keel))
print (stop_words)

Kuna peatussõnade komplekt võib muidugi olla suur, salvestatakse see eraldi andmekogumina, mille saab alla laadida NLTK-ga, nagu ülalpool näidatud. Ülaloleva skripti käivitamisel näeme midagi sellist:

Need peatussõnad tuleks tekstist eemaldada, kui soovite ette nähtud tekstitüki kohta täpset tekstianalüüsi teha. Eemaldame stopp-sõnad oma tekstimärkidest:

filtered_words = []
sõna sõnades:
kui sõna pole stop_wordsis:
filtered_words.lisa (sõna)
filtered_words

Ülaloleva skripti käivitamisel näeme midagi sellist:

Sõna tuletamine

Sõna tüvi on selle sõna alus. Näiteks:

Teeme tuletatud filtreeritud sõnadest, millest eemaldasime viimases osas peatussõnad. Kirjutame lihtsa koodilõigu, kus kasutame NLTK-i varreoperatsiooni toimingu sooritamiseks:

alates nltk.varre import PorterStemmer
ps = PorterStemmer ()
stemmed_words = []
sõna filtritud märksõnades:
stemmed_words.lisa (ps.tüvi (sõna))
print ("Varustatud lause:", stemmed_words)

Ülaloleva skripti käivitamisel näeme midagi sellist:

POS-i sildistamine

Järgmine samm tekstianalüüsis on pärast tuletamist iga sõna tuvastamine ja rühmitamine nende väärtuse järgi, s.t.e. kui kumbki sõna on nimisõna või tegusõna või midagi muud. Seda nimetatakse kõnesildistamise osaks. Teostame POS-i märgistamise nüüd:

märgid = nltk.sõna_tokenize (laused [0])
print (märgid)

Ülaloleva skripti käivitamisel näeme midagi sellist:

Nüüd saame teha märgistuse, mille jaoks peame õigete siltide tuvastamiseks alla laadima teise andmekogumi:

nltk.allalaadimine ('keskmiselt_perceptron_tagger')
nltk.pos_tag (märgid)


Siin on märgistuse väljund:

Nüüd, kui oleme lõpuks märgitud sõnad tuvastanud, on see andmekogum, mille abil saame sentimentide analüüsi teha lause taga olevate emotsioonide tuvastamiseks.

Järeldus

Selles tunnis vaatasime suurepärast loomuliku keele paketti NLTK, mis võimaldab meil töötada struktureerimata tekstiandmetega, et tuvastada kõik peatussõnad ja teostada sügavamat analüüsi, valmistades ette terava andmekogumi tekstianalüüsiks raamatukogudega nagu sklearn.

Githubist leiate kõik selles õppetükis kasutatud lähtekoodi. Palun jagage oma tagasisidet õppetunni kohta Twitteris @sbmaggarwal ja @LinuxHint.

Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...