Mis on tükeldamine loomuliku keele töötlemisel?

Allikasõlm: 1878431

Hea lugeja!

Selles ajaveebis käsitlen ma tükeldamist nii teoreetiliselt kui ka praktiliselt Pythonis.

Niisiis, alustame…

MÄRKUS: Rakenduseks on parem kasutada Pythoni IDLE-i, kuna väljundiks on puu joonis, mis ilmub eraldi aknas.

päevakord

  • Mis on tükeldamine?
  • Kus tükeldamist kasutatakse?
  • Tükeldamise tüübid
  • Tükeldamise rakendamine Pythonis
  • Tulemused

Mis on tükeldamine?

Tükeldamist defineeritakse kui loomuliku keele töötlemise protsessi, mida kasutatakse antud lauses esinevate kõneosade ja lühikeste fraaside tuvastamiseks.

Meenutades meie vanu häid inglise keele grammatikatunde kooliajal, pange tähele, et kõnes on kaheksa osa, nimelt nimisõna, tegusõna, omadussõna, määrsõna, eessõna, sidesõna, asesõna ja vahesõna. Samuti viitavad ülaltoodud tükeldamise määratluses lühikesed fraasid fraasidele, mis on moodustatud nende kõneosade kaasamisel.

Näiteks tükeldamist saab teha nimisõnafraaside või üksikute nimisõnade, omadussõnade või omadussõnafraaside jms tuvastamiseks ja seega rühmitamiseks. Mõelge allolevale lausele:

"Hommikusöögiks sõin burgereid ja saiakesi."

Sel juhul, kui soovime nimisõnafraase rühmitada või tükkideks jagada, saame “burgerid”, “küpsetised” ja “lõuna”, mis on lause nimisõnad või nimisõnarühmad.

Kus tükeldamist kasutatakse?

Miks me peaksime tahtma midagi õppida, teadmata, kus seda laialdaselt kasutatakse?! Blogi selles jaotises käsitletud rakenduste vaatamine aitab teil uudishimulikuna püsida kuni lõpuni!

Tükeldamist kasutatakse antud lausest vajalike fraaside saamiseks. POS-märgistamist saab aga kasutada ainult nende kõneosade tuvastamiseks, millesse lause iga sõna kuulub.

Kui konkreetse sõna või meid huvitava fraasi ümber on palju kirjeldusi või muudatusi, kasutame tükkideks, et haarata ainult nõutud fraasist, jättes tähelepanuta ülejäänud selle ümber. Järelikult sillutab tükeldamine võimaluse rühmitada nõutud fraasid ja välistada kõik nende ümber olevad modifikaatorid, mis pole meie analüüsi jaoks vajalikud. Kokkuvõtteks võib öelda, et tükkideks tükeldamine aitab meil pikkadest kirjeldustest välja tuua ainuüksi olulised sõnad. Seega on tükeldamine teabe hankimise samm.

Huvitaval kombel laieneb see NLP-s tükeldamise protsess mitmetele teistele rakendustele; näiteks rühmitada teatud kategooria puuvilju, näiteks valgurikkaid puuvilju rühmana, vitamiinirikkaid puuvilju teise rühmana jne. Peale selle saab tükeldamist kasutada ka sarnaste autode rühmitamiseks, näiteks autod, mis toetavad automaatset käiku, ja teised, mis toetavad manuaalkäiku, teise gruppi ja nii edasi.

Tükeldamise tüübid

Laias laastus on kahte tüüpi tükeldamist:

  • Tükeldamine
  • Tükeldab alla

Tükeldamine:

Siin me ei sukeldu sügavale; selle asemel oleme rahul teabe ülevaatega. See lihtsalt aitab meil antud andmetest lühikese ettekujutuse saada.

Tükeldamine:

Erinevalt eelmisest tükeldamise tüübist aitab allapoole tükeldamine saada üksikasjalikku teavet.

Seega, kui soovite lihtsalt ülevaadet, kaaluge "tükeldamist", muidu eelistage "tükeldamist".

Tükeldamise rakendamine Pythonis

Kujutage ette olukorda, kus soovite analüüsi jaoks etteantud tekstist kõik verbid välja võtta. Seega peame sel juhul arvestama verbifraaside tükeldamisega. Seda seetõttu, et meie eesmärk on eraldada antud tekstiosast kõik verbifraasid. Tükeldamine toimub regulaaravaldiste abil.

Ärge muretsege, kui kohtate esimest korda terminit "tavalised väljendid". Allolev tabel on siin teie päästmiseks:

Sümbol

Tähendus

Näide

*

Eelnev märk võib esineda null või rohkem korda, mis tähendab, et eelnev märk võib olla või mitte.

ab* sobitab kõik sisendid, mis algavad tähega ab ja millele järgneb null või rohkem b-sid. Muster sobib ab, abb, abbb ja nii edasi.

+

Eelnev märk peaks esinema vähemalt üks kord.

a+ vastab a,aa,aaa ja nii edasi.

?

Eelnev märk ei pruugi üldse esineda või esineda ainult üks kord, mis tähendab, et eelnev märk on valikuline.

ab? vastab ab,abb, kuid mitte abbb ja nii edasi.

Ülaltoodud tabel sisaldab kõige sagedamini kasutatavaid regulaaravaldisi. Regulaaravaldised on käsureal väga kasulikud, eriti failide kustutamisel, asukoha määramisel, ümbernimetamisel või teisaldamisel.

Igatahes kasutame selle teostuse jaoks ainult *. Sümboliga tutvumiseks vaadake julgelt ülaltoodud tabelit!

Tükeldame kõige populaarsema NLP teegi nltk abil. Niisiis, impordime selle esmalt.

import nltk

Vaatleme allolevat näidisteksti, mille ma ise lõin. Asendage allolev mis tahes näidistekstiga, mida soovite tükeldamiseks rakendada!

sample_text="""
Rama tappis Ravana, et päästa Sita Lankalt. Ramayani legend on India populaarseim eepos. Paljud filmid ja seriaalid on juba ilmunud.
on siin Indias Ramayana põhjal filmitud mitmes keeles. """

On selge, et enne jätkamist tuleb andmed lausemärgistada ja seejärel sõna märgistada. Tokeniseerimine pole midagi muud kui antud tekstiosa jagamine väiksemateks üksusteks, näiteks lauseteks, lause tokeniseerimise ja sõnade puhul, sõnade märgistamise korral.

Pärast märgistamist tehakse iga sõna jaoks POS (kõneosa) sildistamine, milles tuvastatakse iga sõna kõneosa. Nüüd oleme huvitatud ainult verbist kõneosa ja soovime seda välja võtta.

Seetõttu määrake meid huvipakkuv kõneosa nõutava regulaaravaldise abil järgmiselt:

VB: {}

tokenized=nltk.sent_tokenize(sample_text)
for i in tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(silditud_sõnad) chunked.draw()

Regulaaravaldis (RE) on ümbritsetud nurksulgudega (), mis omakorda on suletud nurksulgudesse ({ ja }).

MÄRKUS: Määrake RE vastavalt nõutavale POS-ile

VB tähistab verbi POS. VB-le järgnev punkt tähendab, et see vastab mis tahes VB-le järgnevale märgile. Punkti järel olev küsimärk täpsustab, et mis tahes tähemärk pärast B peab esinema ainult üks kord või ei tohi üldse esineda. Varem nähtud tabelis on see märk aga valikuline. Oleme regulaaravaldise sel viisil raaminud, kuna NLTK-s sisaldavad verbifraasid järgmisi POS-silte:

POS

Tähendus

VB

Tegusõna põhivormis

VBD

tegusõna minevikuvormis

GBV

tegusõna olevikuvormis

VBN

tegusõna mineviku osavormis

VBP

Tegusõna olevikuvormis, kuid mitte ainsuse kolmandas isikus

VBZ

Tegusõna olevikuvormis ja on ainsuse kolmas isik

Seega võivad verbifraasid kuuluda ükskõik millisesse ülaltoodud POS-i. Sellepärast on regulaaravaldis raamitud kui VB.? mis hõlmab kõiki ülaltoodud kategooriaid. RegexpParseri paketti kasutatakse selleks, et kontrollida, kas POS vastab meie nõutavale mustrile, mida oleme varem RE abil maininud.

Kogu koodi saab näha järgmiselt:

import nltk
nltk.download('averaged_perceptron_tagger')
sample_text="""
Rama tappis Ravana, et päästa Sita Lankalt. Ramayani legend on India populaarseim eepos. Paljud filmid ja seriaalid on juba ilmunud.
on siin Indias Ramayana põhjal filmitud mitmes keeles. """
tokenized=nltk.sent_tokenize(sample_text)
for i in tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(silditud_sõnad) chunked.draw()

Tulemused

tükeldatav tulemus
tükeldatav tulemus

Lõpuks saame sõnade POS-i puuvormi koos sõnadega, mille POS vastab antud RE-le. Meie poolt edastatud näidisteksti jaoks saadud väljundi hetktõmmis on näha ülaltoodud joonistel.

Pange tähele, et sõnad, mis rahuldavad meie RE-d ainult verbifraaside puhul, on väljundis selgelt esile tõstetud. Seetõttu on verbifraaside tükeldamine õnnestunud.

Loodetavasti leidsite minu artiklist kasu.

Aitäh!

viited

1. Tükeldamise rakendamine Pythonis

2. Teooria tükeldamise taga

3. NLP-s saadaolevate müügikohtade täielik loend

Minust

Olen Nithyashree V, BTech arvutiteaduse ja inseneriteaduse viimase aasta üliõpilane. Mulle meeldib selliseid lahedaid tehnoloogiaid õppida ja neid praktikas rakendada, eriti jälgida, kuidas need aitavad meil lahendada ühiskonna keerulisi probleeme. Minu huvivaldkonnad on tehisintellekt, andmeteadus ja loomuliku keele töötlemine.

Siin on minu LinkedIn profiil: Minu LinkedIn

Saate lugeda minu teisi artikleid Analytics Vidhya kohta aadressilt siin.

Selles artiklis näidatud meedia ei kuulu Analytics Vidhyale ja seda kasutatakse autori äranägemisel.

Allikas: https://www.analyticsvidhya.com/blog/2021/10/what-is-chunking-in-natural-language-processing/

Ajatempel:

Veel alates Analüütika Vidhya