Kicsomagolni a Parsing világát!

Ananya Banerjee

Május 24. · 10 perc olvasás

Az elemzés egy mondatban szereplő összes szó elemzésének és szintaktikai és/vagy szemantikai szerepük azonosításának folyamata. Csakúgy, mint tudat alatt, anyanyelvünkben is használjuk a nyelvtant egy mondat kialakításához és megértéséhez. Hasonlóképpen az NLP nyelvtanát használjuk annak megfejtésére, hogy miként épül fel egy mondat, és megértsük annak szintaktikai és szemantikai szerepét. Elsősorban kétféle elemzés létezik: a választókerületi elemzés és a függőség elemzése.

világát

Függőség elemzése mivel a su g gests elnevezés arra összpontosít, hogy egy mondatot szavakra, jelzőkre vagy kifejezésekre bontson, majd elemezze a közöttük lévő bináris függőségi viszonyokat, hogy megértsék nyelvtani szerepüket. Segít a szemantikai kapcsolatok elszámolásában egy mondatban.

Az alábbiakban látható néhány olyan bináris kapcsolat, amelyet egy függőségi elemzés képes azonosítani:

A függőségi elemzés általában olyan kapcsolatokat hoz létre irányított ívek felhasználásával, ahol az ív egyik vége a fő szó, és az a vég, amelyre az ív mutat, maga a szó. Egy fő szó egy kifejezésben (szavak csoportja) egyszerűen olyan szó, amelynek eltávolításakor a kifejezés elveszíti értelmét.

Egy fő szó egy kifejezésben (szavak csoportja) egyszerűen olyan szó, amelynek eltávolításakor a kifejezés elveszíti értelmét.

Kifejezés: „A kedves szomszéd”

Itt, ha eltávolítja a „szomszéd” szót, elveszíti a kifejezés lehetséges logikai jelentését, mivel a „szépnek” önmagában nincs jelentése. Így ennek a mondatnak a feje a „szomszéd”.

Most nem az irányított ívek és csomópontok emlékeztetnek egy irányított gráfra? Ha mégis, akkor teljesen igazad van! A függőségi elemzés elvégzése után nyert függőségi fa nem más, mint egy irányított gráf, ahol minden szó csúcs, és minden csúcshoz vagy szóhoz csak egy bejövő ív tartozik, kivéve a gyökércsúcsot. Ennek oka, hogy csak a függőségi fa gyökércsúcsa (gyökérszava) egy olyan csomópont, ahol nincsenek bejövő ívek. Emellett mindig van egy egyedi útvonal a gyökértől a grafikon bármely más csomópontjáig.

Most hadd mutassak egy példát a függőség-elemzésre.

Mondat: Rose lemondta a dubaji járatát

Most nézze meg ennek a mondatnak a függőségi elemzését.

Itt az olyan záradékos kapcsolatok, mint az nsubj és a dobj, a szubjektumot „Rose” -ként, a „törölt” állítmány közvetlen tárgyát pedig „repülésként” azonosítják. Felhívjuk figyelmét, hogy a „törölt” a fő szó ebben a két kifejezésben, és ez az egyetlen csomópont a grafikonon, amelynek nincs bejövő íve, ezáltal gyökérvé válik. Az olyan kapcsolatok, mint a prep, azt mutatják, hogy a „to” előtagú viszony feje „repülés”. A poss reláció egy birtokos módosító, amely megmutatja, hogy a „her” a „flight” fejszó birtokos módosítója, és a pobj azt mutatja be, hogy a „Dubai” elöljáróság tárgya a „to” fejszavához kapcsolódik.

Röviden, most láthatjuk, hogy az adott mondat egyes szavai hogyan épülnek fel szemantikailag, és korlátozott információval rendelkezünk az adott mondat összes lehetséges szemantikailag levezethető bináris kapcsolatáról. Így a Dependency elemzés egyik óriási előnye, hogy közelítést nyújt a predikátumok és argumentumaik közötti szemantikai viszonyhoz [1]. A függőségi elemzés másik előnye abban rejlik, hogy olyan nyelv mondatait elemzi, ahol a szórend rugalmasabb. Más szavakkal, azok a nyelvek, ahol az ember szabadon elhelyezheti a beszéd bizonyos részeit liberálisabban, a függőség elemzése segít abban, hogy fontos szemantikai információkat szerezzünk a szövegről.

Kérjük, vegye figyelembe, hogy ez csak egy rövid, kevés függőséget tartalmazó példa. Ha többet szeretne megtudni az ilyen kapcsolatokról, olvassa el a Stanford gépelt függőségek kézikönyvét.

Most, hogy megértjük, hogy mit csinál egy függőségi elemzés, a következő fontos kérdés annak megértése, hogy hol alkalmazható. Egy ilyen elemzési technika meglehetősen jelentős az olyan alkalmazásoknál, mint a magfelbontás, a kérdések megválaszolása, az információ kinyerése stb., Ahol a szemantikai kapcsolatok megértése a mondatban kulcsfontosságú.

Az alábbiakban bemutatunk egy példát egy mondat függőségi elemzésének megtalálására spacy használatával.

Választókerület elemzése másrészt magában foglalja a mondattal kapcsolatos szintaktikai információk figyelembevételét. Ez egy mondatot mondatokra bont, és az előre meghatározott nyelvtan és lexikon (vagy szókincs) alapján egyesíti a mondatokat, és így egy fát alkot, amely elemző fa néven ismert. A kifejezések lehetnek főnévi kifejezések (NP), igei kifejezések (VP), határozói kifejezések, melléknevek és/vagy elöljárói kifejezések (PP). Így a választókerületi elemzésnek szintaktikai elemző szerepe van.

Mielőtt tovább folytatnánk, hadd mondjam el gyorsan, mi a nyelvtan az NLP-ben. A nyelvtan a Természetes Nyelvben A Feldolgozás az összes szabály hivatalos formai meghatározása bármilyen nyelven. Ebben a cikkben elsődleges nyelvként az angolt fogjuk használni, hogy egyszerűbbé tegyük a magyarázatot!

Főnév kifejezés (NP): „A fantasztikus autó”

De vajon ez a mondat nem a beszéd más részeiből is áll-e?

# „The”: Cikk/Meghatározó; „Félelmetes”: Melléknév; „Autó”: főnév

Hogyan képviselhetjük ezt a nyelvtani szabályok szempontjából?

Azt mondjuk, NP → Det Adj főnév

Itt Det-t, Adj-t és Noun-t termináloknak nevezzük, mivel közvetlenül jelzik a szavakat a lexikonban vagy a szókincsben. Ezek így nézhetnek ki a lexikonban:

Így az angol nyelvtan minden szabálya hasonlóan ábrázolható. Tehát csak egyfajta nyelvtani típus létezik, vagy vannak több? A válasz igen! A Chomsky osztályozása elsősorban 4 féle nyelvtant ad nekünk.

- 0. típus: Korlátlan nyelvtan

Formátum: x → y, ahol x és y lehetnek nem terminálok és/vagy terminálok. Nincs korlátozás.

- 1. típus: Környezetérzékeny nyelvtan

Formátum: xAy → xzy, ahol x, y és z bármi lehet, és A nem terminál az xAy összefüggésben.

- 2. típus: Kontextusmentes nyelvtan

Formátum: A → x, ahol A nem terminál, és x lehet terminálok vagy nem terminálok sorozata.

- 3. típus: Rendszeres nyelvtan

1. formátum: A → bt, ahol A és b nem terminálok, t pedig terminál.

2. formátum: A → t, ahol A jelentése nem terminál, és t terminál.

Így bármilyen típusú nyelvtant létrehozhatunk igényeink szerint, és felhasználhatjuk egy mondat elemzésére. A könnyedség kedvéért tegyük fel, hogy a cikkben a rendszeres nyelvtant használjuk, hacsak másképp nem említjük.

Most térjünk vissza a választókerület értelmezésének megértésére!

A választókerületi elemző minden mondathoz elemzési fát hoz létre. Nézzünk meg egy példát.

  • S → NP VP
  • NP → NNP
  • Alelnök → VBZ NP
  • NP → DT NN
  • NNP → Rózsa, Liliom, Orchideák
  • VBZ → van, vannak
  • DT → a, a, an
  • ÉN → virág

A mondat elemzési fája az alábbiakban látható.

A fent látható képen láthatja, hogy az elemző fa minden szót tartalmaz levélként vagy terminálként, S-t pedig gyökérként. Most többnyire kétféle elemzés létezhet: Alulról Felfelé és Felülről Le. Alulról felfelé elemzés, az elemző először belsőleg hajtja végre a POS címkézést, hogy megkezdje az egyes szavak szintaktikai szerepének meghatározását. Ezután az előre eldöntött nyelvtan segítségével hozza létre két szó közötti szintaktikai kapcsolatokat, és rekurzív módon egyesíti a kifejezéseket, amíg el nem éri a ROOT: S-t., az elemző S-nél kezdődik, és a nyelvtani szabályokkal bontja ki az egyes kifejezéseket, amíg a mondat összes szavát el nem éri.

Kérjük, ne feledje, hogy érvényes elemző fáról beszélünk itt és érvényes értelmező fa mindig S-t tartalmaz rootként, és csak az adott mondat szavait tartalmazza levelekként. Például, ha az elemző fája több szót tartalmaz levélként, mint amennyit a mondata tartalmaz, akkor az érvénytelen elemző fa.

Érvényes elemző fa mindig S-t tartalmazza ROOT-ként, és csak az adott mondat szavait tartalmazza levelekként.

Fontos megjegyezni, hogy egy mondatnak több elemző fája lehet, de csak az egyik érvényes szintaktikailag és szemantikailag is. Nézzünk meg egy példát:

Mondat: Pizsamában lőttem egy elefántot.

Az előre eldöntött nyelvtan és lexikon vagy szókincs a következő:

Két lehetséges elemzési fája lehet a mondatának, az alábbiak szerint.

Mindkét fa szintaktikailag érvényesnek tűnik, de mindkettő szemantikailag nem érvényes. A szemantikai érvényesség értékelése során fontos megjegyezni, hogy meg kell vizsgálni a kifejezések kombinációját. A bal oldali fában, mivel a „pizsamában lévő elefánt” főnévi kifejezés a „lövéshez” kapcsolódik, úgy hangzik, hogy az író azt akarja mondani, hogy lelőtt egy elefántot, aki pizsamáját viselte. Ha azonban alaposan megnézed a jobb oldali elemzőfát, az „elefántot lőtt” igealak (VP) a „pizsamámban” elnevezésű előszóval (PP) kombinálódik, és ez azt az értelmet közvetíti, hogy az író elefántot lőtt, miközben pizsamáját viseli. Így a mondat helyes jelentését csak a jobb oldalon lévő elemző fa közvetíti, és csak ez az elemző fa a megfelelő elemző fa.

Az NLP szakirodalmában ezt a problémát a strukturális kétértelműség problémájának nevezik ahol egy mondatnak több elemző fája lehet, de csak az egyik pontos.

Most nézzük meg, hogyan lehet ezt megtenni a python használatával. Az nltk CoreNLP Parser-jét használom, amelynek a háttérben a Stanford Parser található. Kérjük, vegye figyelembe, hogy a kód működése érdekében le kell töltenie és be kell indítania a Stanford NLP szervert a helyi számítógépére.

Bizonyára észrevette, hogy csak olyan elemzési technikákról beszéltem, amelyek egyedül a nyelvtant és a lexikont használják az elemző fa kialakításához. Mi a helyzet más megközelítések használatával, amelyek jobb eredményeket hozhatnak nekünk? Két példa a választókerületi elemzésre, amely dinamikus programozást használ alulról felfelé vagy felülről lefelé történő elemzéssel: CKY elemzés és Earley elemzés.

CKY elemző kontextusmentes nyelvtant és dinamikus programozási alulról építkező megközelítést alkalmaz egy elemző fa szerkesztésére bármely adott mondathoz.

Míg Earley Parser tetszőleges kontextusú szabad nyelvtant és dinamikus programozási felülről lefelé megközelítést alkalmaz egy elemző fa létrehozásához bármely adott mondathoz.

Most biztosan azon gondolkodik, hogy miért nem veti be a valószínűség gondolatát módszertanunkba. Mindannyian tudjuk, hogy egyes nyelvtani szabályok nagyobb gyakorisággal fordulnak elő, mint mások, és így nagyobb valószínűséget adhatunk nekik, mint a társaik, ezáltal valószínűségi nyelvtant készítve, amelyet azután elemzésre lehet használni. Most egyszerűen kiszámolhatjuk a végleges elemzési fa valószínűségét, megszorozva az említett fa felépítéséhez használt összes szabály valószínűségét, és amelyik elemzési fa a legnagyobb valószínűséggel választható, az adott mondat pontos elemzési struktúrájaként.

Valószínűségi elemzés olyan nyelvtani szabályokat használ, amelyek nagyobb valószínűséggel társulnak hozzájuk az elemzéshez, és megtalálják a legvalószínűbb elemzési fát.

Ennek az ötletnek még mindig vannak buktatói. Ez a fajta elemzés érzéketlen a kibővített szavakra.

1. mondat: Sült csirkét ettem diétás kokszal.

2. mondat: Rántott csirkét ettem a barátaimmal.

Az első mondatban a „diétás kokszal” NP (főnévi kifejezés), és egy másik NP-ből áll: „diétás koksz” és PP (elöljárói kifejezés): „with” -nel. Más szavakkal:

1. szabály: NP → NP PP

Az 1. szabály valószínűsége: 0.5. (tegyük fel)

A második mondatban a „barátokkal” VP (ige kifejezés), és egy másik NP-ből áll: „friends” és PP (Prepositional Phrase): „with”. Más szavakkal:

2. szabály: VP → VP PP (0.5)

A 2. szabály valószínűsége: 0,5 (tegyük fel)

Most képzelje el, hogy maga a számítógép, és megpróbálja megtalálni, melyik szabályt kell alkalmazni a mondatának elemzéséhez. Mivel mindkét szabály valószínűsége egyenlő, bármelyiket kiválaszthatja, és szintaktikailag érvényes elemzőfát kaphat. Az 1. mondat és a 2. mondat azonban nem ugyanazt jelenti. Az 1. mondat azt jelenti, hogy sült csirkét és diétás kokszot fogyasztott, míg a 2. mondat azt jelenti, hogy Ön és barátai sült csirkét fogyasztottak. Így a valószínűségi elemzők még mindig nem képesek megkülönböztetni, ha két szabály valószínűsége egyenlő, ezáltal érzéketlenné teszi a szó lexikai információival szemben.

Így a következő lépés egy értelmező használata, amely figyelembe veszi azokat a lexikai információkat, amelyeket a valószínűségi elemző figyelmen kívül hagy. A válasz a Lexicalized Probabilistic Parser segítségével történik.

Lexikalizált valószínűségi elemző lexikális információkat használ a szavakról (például az egyes kifejezések fejére vonatkozó információk felhasználásával), valamint egy szabály előfordulásának valószínűségével együtt egy mondatot elemez.

Vannak más típusú értelmezők is, amelyek a természetes nyelv különböző aspektusait használják egy mondat elemzésére, de ebben a cikkben csak néhányra összpontosítottam a legnépszerűbbeket. A cikkben használt python kód itt található.

Remélem, ez a cikk segített megérteni egy kicsit jobban az elemzést!

Köszönöm, hogy elolvasta!

P.S. Ha vannak olyan konkrét témák, amelyekről szeretnéd, ha írnék, akkor kérlek, tedd meg az alábbi megjegyzést! Köszönöm!:)

  1. Beszéd és nyelvfeldolgozás, Dan Jurafsky és James H. Martin 3. kiadása