Loomuliku keele töötlemine on masinõppe aspekt, mis võimaldab töödelda kirjutatud sõnu masinasõbralikuks keeleks. Sellised tekstid muutuvad seejärel muudetavaks ja saate neile arvutuslikke algoritme käivitada, kui soovite.
Selle lummava tehnoloogia loogika tundub keeruline, kuid pole seda. Ja isegi praegu, olles kindlalt kursis Pythoni põhiprogrammeerimisega, saate loomuliku keele tööriistakomplektiga (NLTK) luua uudse isetegemise tekstitöötlusprogrammi.
Siit saate teada, kuidas alustada Pythoni NLTK -ga.
Mis on NLTK ja kuidas see toimib?
Pythoniga kirjutatud NLTK pakub erinevaid stringide manipuleerimise funktsioone. See on mitmekülgne loomuliku keele raamatukogu, millel on lai näidishoidla erinevate loomulike keelte rakenduste jaoks.
NLTK abil saate töödelda töötlemata tekste ja ekstraheerida neist olulisi funktsioone. Samuti pakub see tekstianalüüsi mudeleid, funktsioonipõhiseid grammatikaid ja rikkalikke leksikaalseid ressursse täieliku keelemudeli loomiseks.
NLTK seadistamine
Esiteks looge projekti juurkaust kõikjal arvutis. NLTK teegi kasutamise alustamiseks avage oma terminal varem loodud juurkausta ja luua virtuaalne keskkond.
Seejärel installige sellesse keskkonda loomuliku keele tööriistakomplekt pip:
pip install nltk
NLTK sisaldab aga mitmesuguseid andmekogumeid, mis on aluseks uutele looduskeele mudelitele. Nendele juurdepääsuks peate keerutama sisseehitatud andmete allalaadija NLTK.
Niisiis, kui olete NLTK edukalt installinud, avage oma Pythoni fail mis tahes koodiredaktori abil.
Seejärel importige nltk moodul ja käivitage andmete allalaadija, kasutades järgmist koodi:
pip install nltk
nltk.download ()
Ülaltoodud koodi käivitamine terminali kaudu avab graafilise kasutajaliidese andmepakettide valimiseks ja allalaadimiseks. Siin peate valima paketi ja klõpsama nuppu Lae alla nuppu selle saamiseks.
Kõik allalaaditud andmepaketid lähevad määratud kataloogi, mis on kirjutatud Kataloogi allalaadimine valdkonnas. Soovi korral saate seda muuta. Kuid proovige sellel tasemel vaikimisi asukohta säilitada.
Seotud: Parimad tasuta kooditoimetajad esimese rakenduse kirjutamiseks
Märge: Andmepaketid lisatakse vaikimisi süsteemimuutujatele. Niisiis, saate neid kasutada järgnevate projektide jaoks olenemata kasutatavast Pythoni keskkonnast.
Kuidas kasutada NLTK Tokenizerit
Lõppkokkuvõttes pakub NLTK sõnade ja lausete jaoks koolitatud sümboolika mudeleid. Nende tööriistade abil saate genereerida lausest sõnade loendi. Või muuda lõik mõistlikuks lausemassiks.
Siin on näide NLTK kasutamise kohta word_tokenizer:
import nltk
saidilt nltk.tokenize impordi sõna_tokenize
word = "See on näidistekst"
tokenWord = word_tokenizer (sõna)
print (tokenWord)
Väljund:
['See', 'on', 'an', 'näide', 'tekst']
NLTK kasutab ka eelkoolitatud lauseloendajat nimega PunktSentenceTokenizer. See toimib, tükeldades lõigu lausete loendiks.
Vaatame, kuidas see kahelauselise lõiguga toimib:
import nltk
saidilt nltk.tokenize impordi word_tokenize, PunktSentenceTokenizer
lause = "See on näidistekst. See on õpetus NLTK jaoks "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (lause)
print (tokenized_sentence)
Väljund:
['See on näidistekst.', 'See on õpetus NLTK jaoks']
Saate ülaltoodud koodist genereeritud massiivi iga lause täiendavalt tokeniseerida, kasutades word_tokenizer ja Python silmuse jaoks.
Näiteid NLTK kasutamise kohta
Seega, kuigi me ei suuda näidata kõiki võimalikke NLTK kasutusviise, on siin mõned näited selle kohta, kuidas saate seda hakata kasutama reaalsete probleemide lahendamiseks.
Hankige sõnamääratlusi ja nende kõneosi
NLTK pakub mudeleid kõneosade määramiseks, üksikasjaliku semantika hankimiseks ja erinevate sõnade võimaliku kontekstuaalse kasutamise jaoks.
Võite kasutada wordnet mudel teksti jaoks muutujate genereerimiseks. Seejärel määrake selle tähendus ja kõne osa.
Näiteks kontrollime "Monkey" võimalikke muutujaid:
import nltk
alates nltk.corpus importige Wordnet kui wn
print (wn.synsets ('ahv'))
Väljund:
[Synset ('ahv.n.01'), Synset ('imp.n.02'), Synset ('tamper.v.01'), Synset ('putter.v.02']]
Ülaltoodud kood väljastab "Ahvile" võimalikud sõna alternatiivid või süntaksid ja kõneosad.
Nüüd kontrollige sõna "ahv" tähendust, kasutades määratlus meetod:
Ahv = wn.synset ('ahv.n.01'). Definitsioon ()
Väljund:
mis tahes mitmesugused pika sabaga primaadid (välja arvatud röövloomad)
Sulgudes oleva stringi saate asendada teiste loodud alternatiividega, et näha, millised NLTK väljundid on.
The pos_tag mudel määrab aga sõna kõneosad. Saate seda kasutada koos word_tokenizer või PunktSentenceTokenizer () kui tegelete pikemate lõikudega.
See toimib järgmiselt.
import nltk
saidilt nltk.tokenize impordi word_tokenize, PunktSentenceTokenizer
word = "See on näidistekst. See on õpetus NLTK kohta "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (sõna)
i jaoks tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
print (partsOfSpeech)
Väljund:
[('See', 'DT'), ('on', 'VBZ'), ('an', 'DT'), ('näide', 'NN'), ('tekst', 'NN'), ('.', '.')]
[('See', 'DT'), ('on', 'VBZ'), ('a', 'DT'), ('õpetus', 'JJ'), ('sees', 'IN'), („NLTK”, „NNP”)]
Ülaltoodud kood ühendab iga sümboolse sõna koos kõnesildiga paaris. Saate vaadata nende siltide tähendust Penn Treebank.
Puhtama tulemuse saamiseks saate väljundis olevad punktid eemaldada, kasutades asenda () meetod:
i jaoks tokenized_sentence:
tokenWordArray = word_tokenize (i.asend ('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
print (partsOfSpeech)
Puhastaja väljund:
[('See', 'DT'), ('on', 'VBZ'), ('an', 'DT'), ('näide', 'NN'), ('tekst', 'NN') ]
[('See', 'DT'), ('on', 'VBZ'), ('a', 'DT'), ('õpetus', 'JJ'), ('sees', 'IN'), („NLTK”, „NNP”)]
Funktsioonide suundumuste visualiseerimine NLTK graafiku abil
Toortekstidest funktsioonide väljavõtmine on sageli tüütu ja aeganõudev. Kuid NLTK sagedusjaotuse suundumuste graafiku abil saate vaadata teksti kõige tugevamaid omaduste määrajaid.
NLTK sünkroonib aga matplotlib. Saate seda kasutada oma andmete konkreetse trendi vaatamiseks.
Näiteks võrdleb allolev kood positiivsete ja negatiivsete sõnade kogumit jaotusgraafikul, kasutades nende kahte viimast tähestikku:
import nltk
nltk importist ConditionalFreqDist
Negatiivsete ja positiivsete sõnade loendid:
negatiivid = [
"ebanormaalne", "kaotada", "vastik",
"vastik", "vastik", "jäledus"
]
positiivsed = [
"külluses", "külluses", "külluses",
"rikkalik", "juurdepääsetav", "juurdepääsetav"
]
# Jagage iga massiivi üksused märgistatud tupplepaarideks
# ja ühendage mõlemad massiivid:
pos_negData = ([(("negatiivne", neg) negatiivsete negatiivsete puhul]+[("positiivne", pos) positiivsete puhul pos)])
# Tõmmake saadud massiivist välja kaks viimast tähestikku:
f = (((pos, i [-2:],) jaoks (pos, i) pos_negData)
# Looge nende tähestike jaotusgraafik
cfd = ConditionalFreqDist (f)
cfd.plot ()
Tähestiku jaotusskeem näeb välja selline:
Graafikut tähelepanelikult vaadates lõpevad sõnad ce, ds, le, ndja nt on suurem tõenäosus olla positiivne tekst. Aga need, mis lõpevad al, ly, pealja te on tõenäolisemalt negatiivsed sõnad.
Märge: Kuigi oleme siin kasutanud ise genereeritud andmeid, pääsete mõnele NLTK sisseehitatud andmekogumile juurde oma korpuse lugeja abil, helistades neile korpus klass nltk. Võib -olla soovite vaadata korpuspaketi dokumentatsioon et näha, kuidas saate seda kasutada.
Tänu selliste tehnoloogiate tekkimisele nagu Alexa, rämpsposti tuvastamine, vestlusrobotid, sentimentanalüüs ja palju muud, näib loomuliku keele töötlemine kujunevat alaminimlikuks faasiks. Kuigi oleme selles artiklis kaalunud vaid mõnda näidet selle kohta, mida NLTK pakub, on tööriistal selle õpetuse ulatusest kõrgemad täiustatud rakendused.
Olles seda artiklit lugenud, peaks teil olema hea idee, kuidas NLTK -d baastasemel kasutada. Nüüd jääb üle vaid need teadmised ise ellu viia!
Kas olete huvitatud masinõppe valdkonnast? Alustage nende raamatukogude kasutamist.
Loe edasi
- Programmeerimine
- Python
- Programmeerimiskeeled
- Programmeerimine
Idowu on kirglik kõige nutika tehnoloogia ja tootlikkuse vastu. Vabal ajal mängib ta kodeerimisega ja lülitab malelauale, kui tal on igav, kuid talle meeldib ka aeg -ajalt rutiinist lahti saada. Tema kirg näidata inimestele teed kaasaegses tehnoloogias motiveerib teda rohkem kirjutama.
Telli meie uudiskiri
Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!
Tellimiseks klõpsake siin