N-grama este o succesiune de n elemente [1] . Din punct de vedere semantic , poate fi o succesiune de sunete, silabe, cuvinte sau litere. În practică, N-grama este mai comună ca o serie de cuvinte, frazele stabile sunt numite alocare . O succesiune de două elemente consecutive este adesea numită digramă , o secvență de trei elemente se numește trigramă . Cel puțin patru sau mai multe elemente sunt desemnate ca N-gram, N este înlocuit cu numărul de elemente consecutive.
N-gramele în ansamblu își găsesc aplicarea într-un domeniu larg al științei. Ele pot fi aplicate, de exemplu, în domeniul matematicii teoretice , biologiei , cartografiei și, de asemenea, în muzică . Cele mai frecvente utilizări ale N-gramelor includ următoarele domenii:
De asemenea, N-gramele sunt utilizate pe scară largă în procesarea limbajului natural .
În domeniul prelucrării limbajului natural, N-gramele sunt utilizate în primul rând pentru predicție bazată pe modele probabilistice . Modelul N-gramă calculează probabilitatea ultimului cuvânt al unui N-gram dacă toate cele precedente sunt cunoscute. Când se utilizează această abordare pentru modelarea limbajului, se presupune că aspectul fiecărui cuvânt depinde doar de cuvintele anterioare [2] .
O altă aplicație a N-gramelor este detectarea plagiatului . Dacă împărțiți textul în mai multe fragmente mici, reprezentate prin N-grame, acestea pot fi comparate cu ușurință între ele și astfel obțineți gradul de similitudine al documentelor analizate [3] . N-gramele sunt adesea folosite cu succes pentru a clasifica textul și limba. În plus, ele pot fi folosite pentru a crea funcții care vă permit să obțineți cunoștințe din datele text. Folosind N-grame, se pot găsi eficient candidați pentru a înlocui cuvintele greșite.
Scopul construirii modelelor N-gram este de a determina probabilitatea folosirii unei anumite fraze. Această probabilitate poate fi stabilită formal ca probabilitatea de apariție a unei secvențe de cuvinte într-un anumit corpus (set de texte). De exemplu, probabilitatea expresiei „fericirea este plăcere fără remuşcare” poate fi calculată ca produsul probabilităţilor fiecăruia dintre cuvintele acestei fraze:
P = P(fericire) * P(există|fericire) * P(plăcerea|fericirea este) * P(fără|fericirea este plăcere) * P(căința|fericirea este plăcere fără)Pentru a determina P (fericire), trebuie să numărați de câte ori apare acest cuvânt în text și să împărțiți această valoare la numărul total de cuvinte. Calcularea probabilității P(căința|fericirea este plăcere fără) este mai dificilă. Pentru a simplifica această sarcină, presupunem că probabilitatea unui cuvânt dintr-un text depinde numai de cuvântul anterior. Apoi formula noastră pentru calcularea frazei va lua următoarea formă:
P = P(fericire) * P(au|fericire) * P(plăcere|au) * P(fără|plăcere) * P(remușcare|fără)Calcularea probabilității condiționate P(este|fericire) este ușor. Pentru a face acest lucru, numărăm numărul de perechi de „fericire” și împărțim la numărul de cuvinte „fericire” din text.
Ca rezultat, dacă numărăm toate perechile de cuvinte dintr-un text, putem calcula probabilitatea unei fraze arbitrare. Acest set de probabilități calculate va fi modelul bigramului.
Centrele de cercetare Google au folosit modele N-gram pentru o gamă largă de cercetări și dezvoltare. Acestea includ proiecte precum traducerea statistică dintr-o limbă în alta, recunoașterea vorbirii , corectarea ortografiei, extragerea informațiilor și multe altele. În scopul acestor proiecte, au fost utilizate corpuri de text care conțin câteva trilioane de cuvinte.
Google a decis să-și creeze propria clădire educațională. Proiectul se numește Google teracorpus și conține 1.024.908.267.229 de cuvinte colectate de pe site-uri publice [4] .
Datorită utilizării frecvente a N-gramelor pentru rezolvarea diferitelor probleme, este nevoie de un algoritm de încredere și rapid pentru a le extrage din text. Un instrument adecvat de extragere a N-gramelor ar trebui să poată funcționa cu dimensiuni nelimitate de text, să funcționeze rapid și să utilizeze eficient resursele disponibile. Există mai multe metode pentru extragerea N-gramelor din text. Aceste metode se bazează pe diferite principii:
N-gramele sintactice sunt N-grame definite de căi în arbori de dependență sintactic sau arbori componente, mai degrabă decât de structura liniară a textului [6] [7] . De exemplu, propoziția: „Știrile economice au un impact redus asupra piețelor financiare” poate fi convertită în N-grame sintactice, urmând structura arborescentă a relațiilor sale de dependență : știri-economice, impact-minor, impact-pe-piețe-financiare, si altele [6] .
N-gramele sintactice reflectă structura sintactică spre deosebire de N-gramele liniare și pot fi utilizate în aceleași aplicații ca și N-gramele liniare, inclusiv ca caracteristici într-un model vectorial. Utilizarea N-gramelor sintactice dă rezultate mai bune în rezolvarea anumitor probleme decât utilizarea N-gramelor standard, de exemplu, pentru a determina autoritatea [8] .
procesarea limbajului natural | |
---|---|
Definiții generale | |
Analiza textului |
|
Referire |
|
Traducere automată |
|
Identificarea și colectarea datelor | |
Model tematic | |
Evaluare inter pares |
|
Interfață în limbaj natural |