N-grammaa

N-grammi  on n elementin sarja [1] . Semanttisesta näkökulmasta se voi olla äänten, tavujen, sanojen tai kirjainten sarja . Käytännössä N-grammi on yleisempi sanasarjana, pysyviä lauseita kutsutaan kollokaatioksi . Kahden peräkkäisen elementin sekvenssiä kutsutaan usein digrammiksi , kolmen elementin sekvenssiä kutsutaan trigrammiksi . Vähintään neljä tai useampi elementti on merkitty N-grammiksi, N korvataan peräkkäisten elementtien lukumäärällä.

N-grammien käyttö

N-grammien yleinen käyttö

N-grammat kokonaisuutena löytävät sovelluksensa laajalla tieteenalalla. Niitä voidaan soveltaa esimerkiksi teoreettisen matematiikan , biologian , kartografian ja myös musiikin alalla . N-grammien yleisimmät käyttötarkoitukset ovat seuraavat:

Lisäksi N-grammia käytetään laajasti luonnollisen kielen käsittelyssä .

N-grammien käyttö luonnollisen kielen käsittelytarpeisiin

Luonnollisen kielen prosessoinnissa N-grammeja käytetään ensisijaisesti todennäköisyysmalleihin perustuvaan ennustamiseen . N-grammin malli laskee N-gramman viimeisen sanan todennäköisyyden, jos kaikki edelliset tunnetaan. Käytettäessä tätä lähestymistapaa kielen mallintamiseen oletetaan, että kunkin sanan ulkoasu riippuu vain edellisistä sanoista [2] .

Toinen N-grammien sovellus on plagioinnin havaitseminen . Jos jaat tekstin useisiin pieniin fragmentteihin, joita edustavat N-grammat, niitä voidaan helposti verrata toisiinsa ja siten saada analysoitujen asiakirjojen samankaltaisuusaste [3] . N-grammeja käytetään usein menestyksekkäästi tekstin ja kielen luokitteluun. Lisäksi niiden avulla voidaan luoda toimintoja, joiden avulla voit saada tietoa tekstitiedoista. N-grammien avulla voidaan löytää tehokkaasti ehdokkaita korvaamaan väärin kirjoitetut sanat.

Esimerkki biggram-mallista

N-grammien mallien rakentamisen tarkoituksena on määrittää tietyn lauseen käyttötodennäköisyys. Tämä todennäköisyys voidaan asettaa muodollisesti sanajonon esiintymistodennäköisyydeksi tietyssä korpuksessa (tekstijoukossa). Esimerkiksi lauseen "onnellisuus on nautintoa ilman katumusta" todennäköisyys voidaan laskea tämän lauseen jokaisen sanan todennäköisyyksien tulona:

P = P(onnellisuus) * P(on|onnellisuus) * P(ilo|onnellisuus on) * P(ilman|onni on ilo) * P(katumus|onnellisuus on iloa ilman)

P(onnellisuuden) määrittämiseksi sinun on laskettava, kuinka monta kertaa tämä sana esiintyy tekstissä, ja jaettava tämä arvo sanojen kokonaismäärällä. Todennäköisyyden P (parannus|onnellisuus on ilo ilman) laskeminen on vaikeampaa. Tämän tehtävän yksinkertaistamiseksi oletetaan, että sanan todennäköisyys tekstissä riippuu vain edellisestä sanasta. Sitten lauseen laskentakaavamme on seuraavan muodon:

P = P(onnellisuus) * P(onnellisuus) * P(ilo|onnellisuus) * P(ilman|iloa) * P(katumuus|ilman)

Ehdollisen todennäköisyyden P(on|onnellisuus) laskeminen on helppoa. Tätä varten laskemme "onnellisuus" -parien lukumäärän ja jaamme tekstin "onnellisuus" -sanojen määrällä.

Tämän seurauksena, jos laskemme kaikki sanaparit jossain tekstissä, voimme laskea mielivaltaisen lauseen todennäköisyyden. Tämä laskettujen todennäköisyyksien joukko on biggramimalli.

Googlen tutkimusprojektit

Googlen tutkimuskeskukset ovat käyttäneet N-gramm-malleja monenlaiseen tutkimukseen ja kehitykseen. Näitä ovat muun muassa tilastolliset käännökset kielestä toiseen, puheentunnistus , oikeinkirjoituksen korjaus, tiedon poimiminen ja paljon muuta. Näiden hankkeiden tarkoituksiin käytettiin useita biljoonaa sanaa sisältäviä tekstikorjauksia.

Google päätti luoda oman koulutusrakennuksen. Projekti on nimeltään Google teracorpus, ja se sisältää 1 024 908 267 229 sanaa, jotka on kerätty julkisilta verkkosivustoilta [4] .

N-grammien erottamismenetelmät

Koska N-grammeja käytetään usein erilaisten ongelmien ratkaisemiseen, tarvitaan luotettava ja nopea algoritmi niiden poimimiseen tekstistä. Sopivan N-gramman poimintatyökalun tulee kyetä toimimaan rajoittamattoman tekstikoon kanssa, toimimaan nopeasti ja käyttämään käytettävissä olevia resursseja tehokkaasti. On olemassa useita menetelmiä N-grammien poimimiseen tekstistä. Nämä menetelmät perustuvat erilaisiin periaatteisiin:

Syntaktiset N-grammit

Syntaktiset N-grammit ovat N-grammeja, jotka määritellään syntaktisten riippuvuuspuiden tai komponenttipuiden poluilla tekstin lineaarisen rakenteen sijaan [6] [7] . Esimerkiksi lause: "Talousuutisilla on vähän vaikutusta rahoitusmarkkinoihin" voidaan muuntaa syntaktisiksi N-grammeiksi seuraamalla sen riippuvuussuhteiden puurakennetta : uutiset-taloudellinen, vaikutus-pieni, vaikutus markkinoihin-taloudellinen, ja muut [6] .

Syntaktiset N-grammit heijastavat syntaktista rakennetta toisin kuin lineaariset N-grammit, ja niitä voidaan käyttää samoissa sovelluksissa kuin lineaarisia N-grammeja, mukaan lukien piirteitä vektorimallissa. Syntaktisten N-grammien käyttö antaa parempia tuloksia tiettyjen ongelmien ratkaisemisessa kuin tavallisten N-grammien käyttö esimerkiksi tekijän määrittämisessä [8] .

Katso myös

Muistiinpanot

  1. 7. vuosikonferenssin tiedote ZNALOSTI 2008, Bratislava, Slovakia, s. 54-65, helmikuu 2008. ISBN 978-80-227-2827-0 .
  2. Jurafsky, D. ja Martin, JH Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition. - Pearson Prentice Hall, 2009. - 988 s. — ISBN 9780131873216 .
  3. Proceedings of ITAT 2008, Information Technologies - Applications and Theory, Hrebienok, Slovakia, ss. 23.–26. syyskuuta 2008. ISBN 978-80-969184-8-5
  4. FRANZ, Alex, BRANTS, Thorsten. Virallinen Google-tutkimusblogi: Kaikki N-grammimme kuuluvat sinulle . Arkistoitu 17. lokakuuta 2006 Wayback Machinessa . Torstai 3. elokuuta 2006 klo 8/03/2006 11:26:00. Luotu N-grammien pohja on myynnissä 5 DVD:n muodossa.
  5. M. Nagao ja S. Mori. Uusi N-grammien tilastointimenetelmä suurelle n-määrälle ja sanojen ja lauseiden automaattinen erottaminen japanin suuresta tekstidatasta. Proceedings of the 15th International Conference on Computational Linguistics (COLING 1994), Kioto, Japani, 1994.
  6. 1 2 Grigori Sidorov, Francisco Velasquez, Efstathios Stamatatos, Alexander Gelbukh ja Liliana Chanona-Hernández. Syntaktiseen riippuvuuteen perustuvat N-grammit luokitusominaisuuksina. LNAI 7630, s. 1-11, 2012.
  7. Grigori Sidorov. Syntaktiseen riippuvuuteen perustuvat N-grammit sääntöpohjaisessa automaattisessa englannin kielioppikorjauksessa. International Journal of Computational Linguistics and Applications, Voi. 4, ei. 2, s. 169-188, 2013.
  8. Grigori Sidorov, Francisco Velasquez, Efstathios Stamatatos, Alexander Gelbukh ja Liliana Chanona-Hernández. Syntaktiset N-grammit koneoppimisominaisuuksina luonnollisen kielen käsittelyyn. Expert Systems with Applications, Voi. 41, nro. 3, s. 853-860, DOI 10.1016/j.eswa.2013.08.015 Arkistoitu 24. syyskuuta 2015 Wayback Machinessa .