Az N-gram n elemből álló sorozat [1] . Szemantikai szempontból ez lehet hangok, szótagok, szavak vagy betűk sorozata . A gyakorlatban az N-gram gyakoribb szavak sorozataként, a stabil kifejezéseket kollokációnak nevezik . Két egymást követő elem sorozatát gyakran digramnak , a három elemből álló sorozatot trigramnak nevezik . Legalább négy vagy több elemet N-grammal jelöltünk meg, az N helyére az egymást követő elemek száma kerül.
Az N-gramok összességében a tudomány széles területén alkalmazzák. Alkalmazhatók például az elméleti matematika , biológia , térképészet , de a zene területén is . Az N-gramok leggyakoribb felhasználási területei a következők:
Ezenkívül az N-gramokat széles körben használják a természetes nyelvi feldolgozásban .
A természetes nyelvi feldolgozás területén az N-gramokat elsősorban valószínűségi modelleken alapuló előrejelzésre használják . Az N-grammodell egy N-gram utolsó szava valószínűségét számítja ki , ha az összes előzőt ismerjük. Ha ezt a megközelítést alkalmazzuk a nyelvi modellezéshez, feltételezzük, hogy az egyes szavak megjelenése csak az előző szavaktól függ [2] .
Az N-gramok másik alkalmazása a plágiumészlelés . Ha a szöveget több apró, N-grammokkal ábrázolt töredékre osztjuk, könnyen összehasonlíthatók egymással, és így megkaphatjuk az elemzett dokumentumok hasonlóságának mértékét [3] . Az N-gramokat gyakran sikeresen használják szöveg és nyelv kategorizálására. Emellett olyan függvények létrehozására is használhatók, amelyek segítségével szöveges adatokból tudhatunk meg. Az N-gramok használatával hatékonyan találhatunk jelölteket a hibásan írt szavak helyettesítésére.
Az N-gram modellek felépítésének célja egy adott kifejezés használatának valószínűségének meghatározása. Ez a valószínűség formálisan beállítható egy szósorozat előfordulásának valószínűségeként egy bizonyos korpuszban (szöveghalmazban). Például a „boldogság lelkiismeret-furdalás nélküli öröm” kifejezés valószínűsége kiszámítható a kifejezés minden egyes szava valószínűségének szorzataként:
P = P(boldogság) * P(van|boldogság) * P(öröm|boldogság van) * P(nélkül|a boldogság öröm) * P(bűnbánat|boldogság öröm nélkül)A P(boldogság) meghatározásához meg kell számolni, hogy ez a szó hányszor fordul elő a szövegben, és el kell osztani ezt az értéket a szavak teljes számával. A P(bűnbánat|boldogság öröm nélkül) valószínűség kiszámítása nehezebb. A feladat egyszerűsítésére feltételezzük, hogy egy szó valószínűsége a szövegben csak az előző szótól függ. Ekkor a kifejezés kiszámítására szolgáló képlet a következő formában lesz:
P = P(boldogság) * P(van|boldogság) * P(öröm|öröm) * P(öröm nélkül) * P(bűnbánat|nélkül)A P(is|boldogság) feltételes valószínűség kiszámítása egyszerű. Ehhez megszámoljuk a „boldogság” párok számát, és elosztjuk a „boldogság” szavak számával a szövegben.
Ennek eredményeként, ha egy szövegben az összes szópárt megszámoljuk, kiszámíthatjuk egy tetszőleges kifejezés valószínűségét. Ez a kiszámított valószínűség-készlet lesz a biggram-modell.
A Google kutatóközpontjai N-gram modelleket használtak számos kutatáshoz és fejlesztéshez. Ezek közé tartoznak az olyan projektek, mint a statisztikai fordítás egyik nyelvről a másikra, a beszédfelismerés , a helyesírás-javítás, az információ kinyerése stb. E projektek céljaira több billió szót tartalmazó szövegkorpusokat használtak.
A Google úgy döntött, hogy létrehozza saját oktatási épületét. A projekt neve Google teracorpus, és 1 024 908 267 229 szót tartalmaz nyilvános webhelyekről [4] .
Az N-gramok gyakori használata különféle problémák megoldására miatt megbízható és gyors algoritmus szükséges ezeknek a szövegből való kiemeléséhez. Egy megfelelő N-gramos kivonatoló eszköznek képesnek kell lennie korlátlan szövegmérettel, gyorsan dolgozni és hatékonyan kihasználni a rendelkezésre álló erőforrásokat. Számos módszer létezik az N-gramok szövegből való kinyerésére. Ezek a módszerek különböző elveken alapulnak:
A szintaktikai N-gramok olyan N-gramok, amelyeket a szintaktikai függőségi fák vagy összetevőfák elérési útjai határoznak meg, nem pedig a szöveg lineáris szerkezete [6] [7] . Például a következő mondat: „A gazdasági híreknek kevés hatása van a pénzügyi piacokra” szintaktikai N-grammokká konvertálható, követve a függőségi viszonyok fastruktúráját : hír-gazdasági, hatás-kisebb, hatás-piaci-pénzügyi, és mások [6] .
A szintaktikai N-gramok a szintaktikai struktúrát tükrözik a lineáris N-gramoktól eltérően, és ugyanazokban az alkalmazásokban használhatók, mint a lineáris N-gramok, beleértve a vektormodell jellemzőit is. A szintaktikai N-gramok használata jobb eredményeket ad bizonyos problémák megoldásában, mint a szabványos N-gramok használata, például a szerzőség meghatározására [8] .
természetes nyelvi feldolgozás | |
---|---|
Általános meghatározások | |
Szövegelemzés |
|
Hivatkozás |
|
Gépi fordítás |
|
Azonosítás és adatgyűjtés | |
Tematikus modell | |
Peer review |
|
Természetes nyelvű felület |