N-gram-extraktor

Ett n-gram är en sammanhängande sekvens av n ord i en text. Extraktorn gör om din text till gemener, delar den i ord vid varje blanksteg och skiljetecken och räknar sedan varje n-gram av den längd du valt (1 till 8). Resultatet är en frekvenstabell i CSV-format, sorterad från vanligast till ovanligast: precis den tabell som ligger bakom kontroller av nyckelordstäthet i SEO, utjämning av språkmodeller och plagiatkontroll.

Så extraherar du n-gram

  1. 1

    Klistra in din text

    Lägg in en artikel, en transkribering eller en produkttext. Det finns ingen längdgräns för rimliga texter.

  2. 2

    Välj n

    Unigram (1), bigram (2), trigram (3) och upp till 8. En längd per körning.

  3. 3

    Extrahera

    Texten görs om till gemener och delas i ord; skiljetecken behandlas som avgränsare och tas bort.

  4. 4

    Läs frekvenstabellen

    Varje n-gram visas med antalet förekomster, sorterat med de vanligaste först.

  5. 5

    Kopiera CSV-filen

    Utdata är kommaseparerad (N-gram,Count) och kan klistras in direkt i ett kalkylblad.

Vad varje n-gramlängd avslöjar

N Namn Användningsfall
1 Unigram Nyckelordstäthet, ämneskartläggning
2 Bigram Fraser (“search intent”, “page speed”), kollokationer
3 Trigram Longtail-fraser, egenskapsdetektering
4+ Fyrgram och längre Upptäckt av duplicerat innehåll, plagiatflaggor

Så delar verktyget upp din text

  • Allt görs om till gemener, så “The” och “the” hamnar på samma rad.
  • Ett ord är en obruten följd av bokstäver, siffror eller apostrofer. Alla andra tecken (skiljetecken, symboler, radbrytningar) räknas som avgränsare och tas bort.
  • Meningsgränser bevaras inte. Sista ordet i en mening och första ordet i nästa kan ändå bilda ett n-gram, så läs par som korsar en meningsgräns med viss skepsis. Är det viktigt: analysera en mening eller ett stycke i taget.
  • Stoppord behålls. Ingenting filtreras bort åt dig; ta bort de raderna ur CSV-filen efteråt om du bara vill ha meningsbärande fraser.
  • Ord hittas med hjälp av blanksteg och skiljetecken. Svenskan skiljer ord åt med blanksteg, så verktyget fungerar direkt. Tänk bara på att svenskan gärna sätter ihop ord: det som på engelska är ett bigram (“search intent”) är på svenska ofta ett enda ord (“sökintention”), så unigram säger mer på svenska än på engelska. Kinesiska, japanska och thailändska skriver däremot utan mellanrum mellan orden: en hel mening kommer in som ett enda ord och måste först delas upp med ett segmenteringsverktyg (jieba, MeCab, en thailändsk ordsegmenterare).

När du bör ta bort stoppord

Stoppord är högfrekventa funktionsord, på engelska “the”, “a”, “of” och “and”, på svenska “och”, “att”, “det” och “som”. Behåller du dem fylls bigramlistan med skräp av typen “of the” och “och att”. Extraktorn tar inte bort dem åt dig, så radera de raderna ur exporten när du vill åt meningsbärande fraser, och behåll dem när du studerar stil, författarattribuering eller språkmodeller där funktionsorden i sig bär signal.

Användningsfall inom SEO

För en artikel som siktar på “nginx config generator”, kontrollera:

  • Att ditt mål-bigram och mål-trigram finns bland de 20 vanligaste. Om “nginx config” ligger på plats 40 använder du förmodligen termen för sällan.
  • Att du inte stoppar in nyckelord i överdrift. Ligger termen etta med stor marginal läses texten som skräppost.
  • Att semantiska grannar finns. Besläktade bigram som “server block”, “proxy pass” och “ssl certificate” försäkrar sökmotorerna om att ämnet verkligen täcks.

NLP och akademisk användning

  • Språkmodeller använder n-gramfrekvenser för utjämning och backoff (Kneser-Ney, Good-Turing).
  • Författarattribuering jämför trigramfördelningar mellan tänkbara författare.
  • Utvärdering av maskinöversättning (BLEU) poängsätter n-gramöverlappet mellan maskinens översättning och referensöversättningen.

Vanliga frågor

Allt från en tweet (där n-gram knappt säger något) till ett bokkapitel. För statistisk tillförlitlighet krävs över 1 000 ord för bigram och över 10 000 för trigram. Under det blir rangordningen brusig.

Inte här. Texten görs alltid om till gemener före räkningen, så “The” och “the” (liksom “Apple” och “apple”) delar rad i stället för att splittras. Det finns inget skiftlägeskänsligt läge: behöver du hålla isär egennamn eller kod får du märka ut dem i texten innan du klistrar in den.

De fungerar som ordavgränsare och hamnar aldrig inuti ett n-gram. Däremot bryter de inte räknefönstret: sista ordet i en mening och första ordet i nästa räknas fortfarande ihop till ett bigram. Behöver du strikta meningsgränser får du köra en mening eller ett stycke i taget.

Bara om du segmenterar texten först. Ord identifieras som följder av bokstäver och siffror mellan avgränsare, och de språken skrivs utan mellanrum mellan orden, så en hel mening kommer in som ett enda ord. Kör texten genom en segmenterare (jieba, MeCab, en thailändsk ordsegmenterare) så att orden skiljs åt med blanksteg, och klistra sedan in resultatet. Svenska, engelska och övriga språk med mellanrum mellan orden fungerar direkt.

Verktyget använder ingen lista alls, så du filtrerar efter exporten. Den vanligaste engelska listan är NLTK:s uppsättning på 179 ord, som de flesta SEO-verktyg använder. Snowball, SpaCy och scikit-learn har något olika listor. För svenska finns färdiga svenska stoppordslistor i NLTK och i Snowballs svenska uppsättning.

Relaterade verktyg

Verktyget finns på andra språk