N-grammi on kielitieteessä käytetty käsite. Se on n merkin, morfeemin tai sanan mittainen jakso. Tavallisesti käytettyjä n-grammeja ovat muun muassa kahden merkin tai sanan mittaiset digrammit (n=2) ja kolmen merkin tai sanan mittaiset trigrammit (n=3). [1]
N-grammimallit ovat tapa rakentaa tilastollisia kielimalleja, joissa käytetään indeksointiyksiköinä vakiomittaisia peräkkäisiä merkkijonoja tai sanoja.[2] Kieliteknologiassa n-grammeihin perustuvia kielimalleja on hyödynnetty muun muassa automaattisessa puheentunnistuksessa, sanan sanaluokan tai merkityksen määrittämisessä, oikeinkirjoituksen tarkistuksessa ja tiedonhaussa.
Merkkeihin perustuvat n-grammit muodostetaan siten, että käsiteltävästä tekstistä muodostetaan kaikki n merkin mittaiset, peräkkäisistä merkeistä koostuvat merkkijonot.[3] Merkkijonot sijaitsevat myös osittain päällekkäin. Esimerkiksi merkkijono Tampere voidaan jakaa 3-grameiksi seuraavasti:
Tam amp mpe per ere
Jokainen edellä mainituista 3-grammeista tallennetaan indeksiin aina erillisenä avainsanana. Silloin kun halutaan löytää indeksin avulla sellaiset dokumentit, jotka sisältävät merkkijonon Tampere, etsitään kaikki sellaiset dokumentit, jotka sisältävät 3-grammin ”Tam” kohdassa i, ”per” kohdassa i+3 ja ”ere” kohdassa i+4.
Merkkipohjaisessa n-grammimallissa oletuksena on, että kieli rakentuu säännönmukaisesta merkistöstä. Tähän merkistöön kuuluvat kaikki kirjoitetussa kielessä esiintyvät merkit, mukaan lukien välimerkit, välilyönnit sekä isot kirjaimet. [2] Tästä johdetun n-grammimallioletuksen mukaan jokaisen merkin esiintyminen riippuu ainoastaan sen edellisestä merkistä.
Tiedonhaun onnistumisen kannalta on tärkeätä muodostaa n-grammit sellaisista kieltä kuvaavista sana- tai merkkijonoista, jotka ovat tarpeeksi pitkiä, jotta ne sisältävät tiedonhaun kannalta tärkeää informaatiota. Mitä pidempiä n-grammit ovat, sen enemmän ne sisältävät juuri lähdekielelleen ominaista informaatiota.[3] Toisaalta hyvin pitkien n-grammien käyttäminen hakuindeksissä hidastaa indeksin tutkimista. Lisäksi pidempiin n-grammeihin mahtuu myös enemmän tunnistusvirheitä.
N-grammimallien ongelma on se, että ne eivät huomioi pidemmän tähtäimen riippuvuuksia sanojen välillä: sanojen välisiä riippuvuuksia esiintyy kuitenkin useilla kielen eri rakennetasoilla. Lisäksi ne ovat myös varsin herkkiä käytetylle tekstiaineistolle, koska pienikin muutos aineistossa aiheuttaa sen, että mallit on opetettava uudelleen käytettävälle ohjelmistolle.