Luonnollinen kielenkäsittely on koneoppimisen osa, jonka avulla voit käsitellä kirjoitetut sanat koneystävälliseksi kieleksi. Tällaisista teksteistä tulee sitten muokattavia, ja voit käyttää niihin laskentaalgoritmeja haluamallasi tavalla.

Tämän kiehtovan tekniikan logiikka vaikuttaa monimutkaiselta, mutta ei ole sitä. Ja jo nyt, kun hallitset vankan Python -ohjelmoinnin, voit luoda uuden DIY -tekstinkäsittelyohjelman luonnollisen kielen työkalupakilla (NLTK).

Näin pääset alkuun Pythonin NLTK: n kanssa.

Mikä on NLTK ja miten se toimii?

Pythonilla kirjoitettu NLTK sisältää useita merkkijonon manipulointitoimintoja. Se on monipuolinen luonnollisen kielen kirjasto, jossa on laaja mallivarasto erilaisille luonnollisen kielen sovelluksille.

NLTK: n avulla voit käsitellä raakatekstejä ja poimia niistä mielekkäitä ominaisuuksia. Se tarjoaa myös tekstianalyysimalleja, ominaisuuspohjaisia ​​kielioppeja ja runsaasti leksisiä resursseja täydellisen kielimallin rakentamiseen.

NLTK: n asentaminen

Luo ensin projektin juurikansio mihin tahansa tietokoneeseen. Aloita NLTK -kirjaston käyttö avaamalla päätelaite aiemmin luomaasi pääkansioon ja luoda virtuaalinen ympäristö.

Asenna sitten luonnollisen kielen työkalupakki tähän ympäristöön käyttämällä pip:

pip asenna nltk

NLTK: ssa on kuitenkin erilaisia ​​tietojoukkoja, jotka toimivat perustana uusille luonnollisille kielimalleille. Jotta voit käyttää niitä, sinun on käynnistettävä sisäänrakennettu NLTK-tietojen latausohjelma.

Joten kun olet asentanut NLTK: n, avaa Python -tiedostosi millä tahansa koodieditorilla.

Tuo sitten nltk moduuli ja suorita tietojen latausohjelma seuraavan koodin avulla:

pip asenna nltk
nltk.download ()

Yllä olevan koodin suorittaminen päätelaitteen kautta tuo esiin graafisen käyttöliittymän datapakettien valitsemiseksi ja lataamiseksi. Täällä sinun on valittava paketti ja napsautettava ladata -painiketta saadaksesi sen.

Kaikki lataamasi datapaketit menevät määritettyyn hakemistoon, joka on kirjoitettu Lataa hakemisto ala. Voit muuttaa tätä, jos haluat. Yritä kuitenkin säilyttää oletussijainti tällä tasolla.

Aiheeseen liittyviä: Parhaat ilmaiset koodieditorit ensimmäisen sovelluksesi kirjoittamiseen

Huomautus: Datapaketit liitetään oletuksena järjestelmämuuttujiin. Voit siis käyttää niitä myöhempiin projekteihin riippumatta käyttämästäsi Python -ympäristöstä.

Kuinka käyttää NLTK -tunnisteita

Viime kädessä NLTK tarjoaa koulutettuja tokenisointimalleja sanoille ja lauseille. Näiden työkalujen avulla voit luoda sanaluettelon lauseesta. Tai muuntaa kappaleen järkeväksi lausejoukkoksi.

Tässä on esimerkki NLTK: n käytöstä word_tokenizer:

tuoda nltk
osoitteesta nltk.tokenize Tuo word_tokenize
word = "Tämä on esimerkkiteksti"
tokenWord = word_tokenizer (sana)
tulosta (tokenWord)
Lähtö:
['Tämä', 'on', 'an', 'esimerkki', 'teksti']

NLTK käyttää myös esikoulutettua lauseenkoodaajaa nimeltä PunktSentenceTokenizer. Se toimii jakamalla kappaleen lauseiden luetteloon.

Katsotaanpa, miten tämä toimii kahden lauseen kappaleen kanssa:

tuoda nltk
osoitteesta nltk.tokenize tuonti word_tokenize, PunktSentenceTokenizer
lause = "Tämä on esimerkkiteksti. Tämä on opetusohjelma NLTK: lle "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (lause)
tulosta (tokenized_sentence)
Lähtö:
['Tämä on esimerkkiteksti.', 'Tämä on opetusohjelma NLTK: lle']

Voit edelleen merkitä jokaisen lauseen taulukosta, joka on luotu yllä olevasta koodista käyttämällä word_tokenizer ja Python silmukalle.

Esimerkkejä NLTK: n käytöstä

Vaikka emme voi näyttää kaikkia mahdollisia NLTK: n käyttötapauksia, tässä on muutamia esimerkkejä siitä, miten voit aloittaa sen käytön tosielämän ongelmien ratkaisemiseksi.

Hanki sanamääritelmät ja niiden puheosat

NLTK sisältää malleja puheen osien määrittämiseksi, yksityiskohtaisen semantiikan hankkimiseksi ja eri sanojen mahdollisen asiayhteyden käytön.

Voit käyttää wordnet malli, jolla luodaan muuttujia tekstille. Määritä sitten sen merkitys ja puheen osa.

Tarkistetaan esimerkiksi "Apina" mahdolliset muuttujat:

tuoda nltk
nltk.corpusista tuoda wordnet nimellä wn
tulosta (wn.synsets ('apina'))
Lähtö:
[Synset ('monkey.n.01'), Synset ('imp.n.02'), Synset ('tamper.v.01'), Synset ('putter.v.02']]

Yllä oleva koodi antaa mahdolliset sanavaihtoehdot tai syntaksit ja puheen osat "Apinalle".

Tarkista nyt "apinan" merkitys käyttämällä määritelmä menetelmä:

Apina = wn.synset ('apina.n.01'). Määritelmä ()
Lähtö:
mikä tahansa pitkäkarvainen kädellinen (lukuun ottamatta eläimiä)

Voit korvata suluissa olevan merkkijonon muilla luoduilla vaihtoehdoilla nähdäksesi, mitä NLTK -tuloksia.

The pos_tag malli kuitenkin määrittää sanan puheen osat. Voit käyttää tätä word_tokenizer tai PunktSentenceTokenizer () jos käsittelet pitkiä kappaleita.

Näin se toimii:

tuoda nltk
osoitteesta nltk.tokenize tuonti word_tokenize, PunktSentenceTokenizer
word = "Tämä on esimerkkiteksti. Tämä on NLTK -opetusohjelma "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (sana)
i: lle tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
tulosta (partsOfSpeech)
Lähtö:
[('Tämä', 'DT'), ('on', 'VBZ'), ('an', 'DT'), ('esimerkki', 'NN'), ('teksti', 'NN'), ('.', '.')]
[('Tämä', 'DT'), ('on', 'VBZ'), ('a', 'DT'), ('opetusohjelma', 'JJ'), ('päällä', 'IN'), ('NLTK', 'NNP')]

Yllä oleva koodi parittaa jokaisen tokenoidun sanan puhetaginsa kanssa tuple. Voit tarkistaa näiden tunnisteiden merkityksen Penn Treebank.

Saadaksesi puhtaamman tuloksen voit poistaa tulosteen pisteet käyttämällä korvata() menetelmä:

i: lle tokenized_sentence:
tokenWordArray = word_tokenize (i.replace ('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
tulosta (partsOfSpeech)
Puhdistusaine:
[('Tämä', 'DT'), ('on', 'VBZ'), ('an', 'DT'), ('esimerkki', 'NN'), ('teksti', 'NN') ]
[('Tämä', 'DT'), ('on', 'VBZ'), ('a', 'DT'), ('opetusohjelma', 'JJ'), ('päällä', 'IN'), ('NLTK', 'NNP')]

Ominaisuustrendien visualisointi NLTK Plotin avulla

Ominaisuuksien poimiminen raakateksteistä on usein työlästä ja aikaa vievää. Voit kuitenkin tarkastella tekstin vahvimpia ominaisuusmääritteitä käyttämällä NLTK -taajuusjakauman trendikaaviota.

NLTK kuitenkin synkronoi matplotlib. Voit hyödyntää tätä tietosi tietyn trendin tarkasteluun.

Esimerkiksi alla oleva koodi vertaa positiivisten ja negatiivisten sanojen joukkoa jakelukaaviossa käyttäen niiden kahta viimeistä kirjainta:

tuoda nltk
nltk -tuonnista ConditionalFreqDist
Luettelot negatiivisista ja positiivisista sanoista:
negatiivit = [
'epänormaali', 'kumota', 'inhottava',
"kauhistuttava", "ilkeä", "kauhistus"
]
positiivisia = [
'runsaasti', 'runsaasti', 'runsaus',
'runsas', 'saavutettavissa', 'saavutettavissa'
]
# Jaa kunkin taulukon kohteet merkittyihin tupple -pareihin
# ja yhdistä molemmat taulukot:
pos_negData = ([(("negatiivinen", neg) negatiiville negatiiville]+[("positiivinen", pos) positiiviselle pos.])
# Poimi kaksi viimeistä kirjainta tuloksena olevasta taulukosta:
f = (((pos, i [-2:],) for (pos, i) in pos_negData)
# Luo jakokaavio näistä aakkosista
cfd = ConditionalFreqDist (f)
cfd.plot ()

Aakkosjärjestyksen jakauma näyttää tältä:

Kun tarkastelemme kaaviota, sanat päättyvät ce, ds, le, toinenja nt todennäköisemmin positiivisia tekstejä. Mutta ne, jotka päättyvät al, ly, päälläja te ovat todennäköisemmin negatiivisia sanoja.

Huomautus: Vaikka olemme käyttäneet täällä itse luotua dataa, voit käyttää joitain NLTK: n sisäänrakennettuja tietojoukkoja Corpus-lukijan avulla soittamalla niihin korpus luokka nltk. Haluat ehkä katsoa korpuspaketin dokumentaatio nähdäksesi kuinka voit käyttää sitä.

Teknologioiden, kuten Alexan, roskapostin havaitsemisen, chatbotien, tunteiden analyysin ja muun, ilmaantumisen myötä luonnollisen kielen käsittely näyttää kehittyvän ali-inhimilliseksi vaiheekseen. Vaikka olemme tarkastelleet tässä artikkelissa vain muutamia esimerkkejä siitä, mitä NLTK tarjoaa, työkalulla on kehittyneempiä sovelluksia, jotka ovat tämän opetusohjelman laajuutta korkeampia.

Kun olet lukenut tämän artikkelin, sinulla pitäisi olla hyvä idea NLTK: n käytöstä perustasolla. Sinulla ei ole muuta tehtävää kuin toteuttaa tämä tieto itse!

JaaTweetSähköposti
7 Koneoppimiskirjastot etsiville asiantuntijoille

Kiinnostaako koneoppiminen? Aloita näiden kirjastojen käyttö.

Lue seuraava

Liittyvät aiheet
  • Ohjelmointi
  • Python
  • Ohjelmointikielet
  • Ohjelmointi
Kirjailijasta
Idowu Omisola (96 artikkelia julkaistu)

Idowu on intohimoinen kaikkeen älykkääseen tekniikkaan ja tuottavuuteen. Vapaa -ajallaan hän leikkii koodauksella ja vaihtaa shakkilaudalle, kun on kyllästynyt, mutta hän myös rakastaa irtautumista rutiinista silloin tällöin. Hänen intohimonsa näyttää ihmisille tie modernin tekniikan ympärillä motivoi häntä kirjoittamaan enemmän.

Lisää Idowu Omisolasta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi