N-gram

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.

Folosind N-grame

Utilizarea generală a N-gramelor

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 .

Utilizarea N-gramelor pentru nevoile de procesare a 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.

Un exemplu de model bigram

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.

Proiecte de cercetare Google

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] .

Metode de extragere a N-gramelor

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-grame sintactice

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] .

Vezi și

Note

  1. Proceedings of the 7th Annual Conference ZNALOSTI 2008, Bratislava, Slovacia, pp. 54-65, februarie 2008. ISBN 978-80-227-2827-0 .
  2. Jurafsky, D. și Martin, JH Procesarea vorbirii și a limbajului: o introducere în procesarea limbajului natural, lingvistica computațională și recunoașterea vorbirii. - Pearson Prentice Hall, 2009. - 988 p. — ISBN 9780131873216 .
  3. Proceedings of the ITAT 2008, Information Technologies - Applications and Theory, Hrebienok, Slovacia, pp. 23-26, septembrie 2008. ISBN 978-80-969184-8-5
  4. FRANZ, Alex, BRANTS, Thorsten. Blogul oficial Google Research: Toate N-gramele noastre vă aparțin Arhivat 17 octombrie 2006 la Wayback Machine . Joi, 03 august 2006 la 8/03/2006 11:26:00. Baza creată de N-grame este în vânzare sub formă de 5 DVD-uri.
  5. M. Nagao și S. Mori. O nouă metodă de statistică N-gramă pentru un număr mare de n și extragerea automată a cuvintelor și expresiilor din date de text mari de japoneză. În Proceedings of the 15th International Conference on Computational Linguistics (COLING 1994), Kyoto, Japonia, 1994.
  6. 1 2 Grigori Sidorov, Francisco Velasquez, Efstathios Stamatatos, Alexander Gelbukh și Liliana Chanona-Hernández. N-grame bazate pe dependență sintactică ca caracteristici de clasificare. LNAI 7630, pp. 1-11, 2012.
  7. Grigori Sidorov. N-grame bazate pe dependență sintactică în corecție gramaticală automată bazată pe reguli în engleză ca a doua limbă. Jurnalul Internațional de Lingvistică și Aplicații Computaționale, Vol. 4, nr. 2, pp. 169-188, 2013.
  8. Grigori Sidorov, Francisco Velasquez, Efstathios Stamatatos, Alexander Gelbukh și Liliana Chanona-Hernández. N-gramele sintactice ca caracteristici de învățare automată pentru procesarea limbajului natural. Sisteme experte cu aplicații, Vol. 41, nr. 3, pp. 853-860, DOI 10.1016/j.eswa.2013.08.015 Arhivat 24 septembrie 2015 la Wayback Machine .