PKE, TextRank, TopicRank és YAKE!
Sziasztok NLP-rajongók! Nemrég több megközelítést is megvizsgáltam a kulcsszavak dokumentumokból való kinyerésére, és rábukkantam erre a meglehetősen híres PKE könyvtárra. Grafikon alapú és statisztikai algoritmusokat használ a kulcsszavak és kulcskifejezések kinyerésére, ami egyszerűbb (de nem ezért elhanyagolandó), mint a mindenütt jelenlévő transzformátor alapú modellek. Élvezd! 😄
A "PKE (Python Keyphrase Extraction)" egy nyílt forráskódú Python-alapú kulcsszó- és kulcskifejezés-kivonat könyvtár. Egy végpontok közötti kulcskifejezés-kivonási folyamatot biztosít, amelyben minden egyes komponens könnyen módosítható vagy bővíthető új modellek fejlesztése érdekében.
Felügyelet nélküli kulcskifejezés-kivonási modellek
A PKE jelenleg a következő grafikon alapú modelleket valósítja meg:
- "TextRank"
- "SingleRank"
- "TopicRank"
- TopicalPageRank
- "PositionRank"
- "MultipartiteRank"
A grafikon alapú modellek többé-kevésbé ezt a folyamatot követve működnek:
- Azonosítsa azokat a szövegegységeket, amelyek kulcsszavak vagy kulcskifejezések lehetnek, és adja hozzá őket csúcsként a grafikonhoz.
- Azonosítsa az ilyen szövegegységeket összekötő relációkat, és ezekkel a relációkkal rajzoljon éleket a gráf csúcsai között.
- Iteráljon egy gráf-alapú rangsoroló algoritmust (pl. PageRank) a konvergencia eléréséig. Egy gráf alapú rangsoroló algoritmus minden csúcsra pontszámot ad, ami a gráfban való „jelentőségét” jelenti.
- Rendezze a csúcsokat pontszámuk alapján, és válassza ki a legjobbakat kulcsszóként vagy kulcskifejezésként.
A PKE a következő statisztikai modelleket is megvalósítja:
- "TfIdf"
- "KPMiner"
- "YAKE"!
A statisztikai modellek a dokumentumokon kiszámított előfordulás alapú statisztikákon alapulnak, amelyeket gyakran heurisztikával kombinálnak, hogy minden egyes kulcsszóra vagy kulcskifejezésre pontszámot kapjanak.
Nézzük meg, hogyan működik néhány ilyen algoritmus kódmintákkal.
TextRank
A TextRank algoritmus egy gráf alapú kulcskifejezés-kivonási modell.
A gráfot főnevek és melléknevek csúcsaiból építi fel, és éleket ad közéjük, amikor ezek a szavak egymás közelében fordulnak elő a dokumentumokban (lehetővé téve, hogy bizonyos számú átlapoló szó legyen közöttük).
Ezután egy grafikonon alapuló rangsoroló algoritmust használnak (a Google PageRank-ból származtatva) az egyes jelölt kulcsszavak pontozására. Végül a szomszédos, magas pontszámú jelölt kulcsszavakat kulcskifejezésekké egyesítik, és a legmagasabb pontszámot elérők az algoritmus kimenete.
Íme egy példa a TextRank alkalmazására a Python Wikipédia-oldalának kivonatára.
TopicRank
A TopicRank egy másik gráf-alapú kulcskifejezés-kivonó algoritmus, de a TextRank-tól eltérően a jelölt kulcskifejezések a dokumentumok leghosszabb főnévi kifejezései.
Ezek a főnévi kifejezések azután témákba vannak csoportosítva, ahol két kifejezést csoportosít, ha több mint 25%-ban vannak átfedő szavak.
Ezután a TopicRank létrehoz egy gráfot, amelyben a témákat csúcsként használja, és éleket ad hozzá az egyes csúcsok közé, olyan súlyozással, amely arányos azzal, hogy a két téma milyen közel van a dokumentumban.
Ezután ugyanazt a TextRank gráf alapú rangsoroló algoritmust használjuk, és kiválasztjuk a legjobb pontszámot elért témákat. Az algoritmus végül egy-egy reprezentatív kulcskifejezést ad ki minden kiválasztott témakörből.
Lássunk egy mintakódot a TopicRank segítségével.
YAKE!
"YAKE!" egy statisztikai kulcskifejezés-kivonási modell.
A dokumentumokat szójelzőkké alakítja, majd mindegyikhez kiszámol néhány statisztikát, például az előfordulások számát, ha sok különböző szót tartalmazó mondatban szerepelnek, kis- és nagybetűk stb.
Ezeket a statisztikákat azután összevonják egy végső pontszámmá, amelyet a következőkre használnak fel:
- Adja vissza a legmagasabb pontszámot elérő szavakat, azaz a kivont kulcsszavakat;
- Kombináld a magas pontszámú szomszédos szavakat kulcskifejezésekké.
Lássunk egy mintakódot a YAKE!-val.
Köszönöm hogy elolvastad! Ha többet szeretne megtudni az NLP-ről, ne felejtse el követni az NLPlanet „Medium”, „LinkedIn” és „Twitter” oldalakon!
NLPlanettel kapcsolatos bejegyzések