N-gram er en sekvens af n elementer [1] . Set fra et semantisk synspunkt kan det være en sekvens af lyde, stavelser, ord eller bogstaver. I praksis er N-grammet mere almindeligt som en række ord, stabile sætninger kaldes kollokation . En sekvens af to på hinanden følgende elementer kaldes ofte et diggram , en sekvens af tre elementer kaldes et trigram . Mindst fire eller flere elementer er angivet som et N-gram, N erstattes af antallet af på hinanden følgende elementer.
N-gram som helhed finder deres anvendelse inden for et bredt videnskabsområde. De kan for eksempel anvendes inden for teoretisk matematik , biologi , kartografi og også i musik . De mest almindelige anvendelser af N-gram omfatter følgende områder:
N-gram er også meget brugt i naturlig sprogbehandling .
Inden for naturlig sprogbehandling bruges N-gram primært til forudsigelse baseret på probabilistiske modeller . N-gram-modellen beregner sandsynligheden for det sidste ord i et N-gram, hvis alle de foregående er kendte. Når man bruger denne tilgang til sprogmodellering, antages det, at hvert ords udseende kun afhænger af de foregående ord [2] .
En anden anvendelse af N-gram er plagiatdetektion . Hvis man deler teksten op i flere små fragmenter, repræsenteret ved N-gram, kan de let sammenlignes med hinanden og dermed opnå graden af lighed i de analyserede dokumenter [3] . N-gram bruges ofte med succes til at kategorisere tekst og sprog. Derudover kan de bruges til at skabe funktioner, der giver dig mulighed for at få viden fra tekstdata. Ved at bruge N-gram kan man effektivt finde kandidater til at erstatte fejlstavede ord.
Formålet med at bygge N-gram modeller er at bestemme sandsynligheden for at bruge en given sætning. Denne sandsynlighed kan formelt angives som sandsynligheden for forekomst af en række ord i et bestemt korpus (sæt af tekster). For eksempel kan sandsynligheden for sætningen "lykke er fornøjelse uden anger" beregnes som produktet af sandsynligheden for hvert af ordene i denne sætning:
P = P(lykke) * P(der er|lykke) * P(fornøjelse|lykke er) * P(uden|lykke er fornøjelse) * P(omvendelse|lykke er fornøjelse uden)For at bestemme P(lykke), skal du tælle, hvor mange gange dette ord forekommer i teksten, og dividere denne værdi med det samlede antal ord. At beregne sandsynligheden P(omvendelse|lykke er fornøjelse uden) er vanskeligere. For at forenkle denne opgave antager vi, at sandsynligheden for et ord i en tekst kun afhænger af det foregående ord. Derefter vil vores formel til beregning af sætningen have følgende form:
P = P(lykke) * P(har|lykke) * P(fornøjelse|har) * P(uden|fornøjelse) * P(anger|uden)At beregne den betingede sandsynlighed P(er|lykke) er let. For at gøre dette tæller vi antallet af par 'lykke' og dividerer med antallet af ord 'lykke' i teksten.
Som et resultat, hvis vi tæller alle ordpar i en eller anden tekst, kan vi beregne sandsynligheden for en vilkårlig sætning. Dette sæt af beregnede sandsynligheder vil være bigrammodellen.
Googles forskningscentre har brugt N-gram-modeller til en bred vifte af forskning og udvikling. Disse omfatter projekter såsom statistisk oversættelse fra et sprog til et andet, talegenkendelse , stavekorrektion, informationsudtrækning og mere. Til formålet med disse projekter blev der brugt tekstkorpus indeholdende adskillige billioner ord.
Google besluttede at skabe sin egen uddannelsesbygning. Projektet hedder Google teracorpus og indeholder 1.024.908.267.229 ord indsamlet fra offentlige hjemmesider [4] .
På grund af den hyppige brug af N-gram til at løse forskellige problemer, er en pålidelig og hurtig algoritme nødvendig for at udtrække dem fra teksten. Et passende N-gram-udtræksværktøj skal kunne arbejde med ubegrænset tekststørrelse, arbejde hurtigt og udnytte de tilgængelige ressourcer effektivt. Der er flere metoder til at udtrække N-gram fra tekst. Disse metoder er baseret på forskellige principper:
Syntaktiske N-gram er N-gram defineret af stier i syntaktiske afhængighedstræer eller komponenttræer, snarere end af tekstens lineære struktur [6] [7] . For eksempel kan sætningen: "Økonomiske nyheder har ringe indflydelse på de finansielle markeder" konverteres til syntaktiske N-gram, efter træstrukturen af dets afhængighedsforhold : nyheder-økonomiske, indvirkning-mindre, indvirkning-på-markeder-finansielle, og andre [6] .
Syntaktiske N-gram afspejler den syntaktiske struktur i modsætning til lineære N-gram og kan bruges i de samme applikationer som lineære N-gram, herunder som funktioner i en vektormodel. Brugen af syntaktiske N-gram giver bedre resultater til at løse visse problemer end brugen af standard N-gram, for eksempel til at bestemme forfatterskab [8] .
naturlig sprogbehandling | |
---|---|
Generelle definitioner | |
Tekstanalyse |
|
Referencer |
|
Maskinoversættelse |
|
Identifikation og dataindsamling | |
Tematisk model | |
Peer review |
|
Naturlig sproggrænseflade [ |