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:

  1. Azonosítsa azokat a szövegegységeket, amelyek kulcsszavak vagy kulcskifejezések lehetnek, és adja hozzá őket csúcsként a grafikonhoz.
  2. 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.
  3. 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.
  4. 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