Sådan tjekker du tekstlighed: cosinuslighed og duplikeret indhold
Cosinuslighed mellem to tekster er et tal fra 0 til 100%, der siger, hvor mange af de samme ord de to tekster faktisk deler, ikke hvor ens de betyder. To omskrevne produktbeskrivelser, der genbruger det meste af ordforrådet, lander typisk højt, omkring 74% i eksemplet nedenfor. To tekster, der siger næsten det samme med helt forskellige ord, kan lande helt nede på 6%. Det er den samme metode, mange plagiatværktøjer og duplicate-content-tjek bygger videre på, og det er værd at forstå præcis hvad tallet måler, før man stoler på det.
Sådan regnes scoren ud
Værktøjet gør fire ting med de to tekster, du indtaster:
- Begge tekster laves om til småt, og tegnsætning fjernes, så teksten bliver til en ren række ord adskilt af mellemrum.
- Ord på ét bogstav og almindelige stopord (“the”, “and”, “a” og lignende) filtreres væk, fordi de findes i stort set alle tekster og derfor ikke siger noget om, hvor ens to tekster reelt er. Stopordslisten dækker i øjeblikket engelsk, portugisisk, spansk, fransk, italiensk og tysk, det er en mindre detalje i implementeringen, men værd at nævne, hvis du tester med andre sprog.
- Hver tekst omdannes til en vektor af ordfrekvenser, altså en optælling af hvor mange gange hvert enkelt ord optræder.
- De to vektorer sammenlignes med cosinuslighed: prikproduktet af de to vektorer divideret med produktet af deres længder. Resultatet omregnes til en procent fra 0 til 100.
Kort sagt: jo flere af de samme ord, i nogenlunde samme antal, jo højere score. Værktøjet forstår ikke betydning, det tæller bogstaveligt talt overlappende ordforråd. Alt regnes lokalt i browseren, så teksterne sendes aldrig til en server.
Eksempel 1: to omskrevne produkttekster (74% lighed)
Forestil dig, at du har to versioner af den samme produktannonce, måske skrevet af to forskellige personer, eller genereret to gange for at “undgå” duplikeret indhold. Prøv at indsætte disse to tekster i værktøjet:
Tekst A: “Buy affordable wireless bluetooth headphones with active noise cancellation and thirty hour battery life. Free shipping on every order today.”
Tekst B: “Shop cheap wireless bluetooth headphones featuring active noise cancellation and a thirty hour battery. Enjoy free shipping on every order this week.”
(Eksemplerne holdes bevidst på engelsk her, så tallene kan efterprøves. Værktøjet virker med tekst på ethvert sprog, engelsk er blot demoens sprog.)
Resultat: 74% lighed, som lander i værktøjets bånd “High similarity”.
| Ord | |
|---|---|
| Fælles (13) | active, battery, bluetooth, cancellation, every, free, headphones, hour, noise, order, shipping, thirty, wireless |
| Kun i A (4) | affordable, buy, life, today |
| Kun i B (5) | cheap, enjoy, featuring, shop, week |
De to tekster ser forskellige ud ved et hurtigt skim, forskellige åbningsord, forskellige småvendinger i slutningen, men de deler langt størstedelen af det ord, der faktisk bærer betydningen: bluetooth, headphones, noise cancellation, battery, shipping, order. Det er præcis den type omskrivning, der ofte sker, når nogen “spinder” en tekst for hurtigt, og en 74%-score fanger det tydeligt, godt over den moderate grænse og lige under værktøjets egen tærskel for høj lighed.
Eksempel 2: samme mening, helt andre ord (6% lighed)
Nu det modsatte tilfælde. Tag samme Tekst A som ovenfor (her kaldet Tekst C) og sammenlign den med en tekst, der reelt siger det samme, men er skrevet helt forfra med andre ord:
Tekst C (samme som Tekst A): “Buy affordable wireless bluetooth headphones with active noise cancellation and thirty hour battery life. Free shipping on every order today.”
Tekst D: “Our over ear audio devices block outside sound automatically and last more than a full day per charge, and delivery costs nothing no matter what you order.”
Resultat: 6% lighed, i bånd “Low similarity”. Det eneste fælles ord er “order”.
Læs Tekst D igen: hovedtelefoner der blokerer lyd, batteri der holder hele dagen, gratis levering uanset ordre. Indholdsmæssigt er det næsten den samme besked som Tekst C. En menneskelig læser ville kalde det samme indhold omskrevet. Men fordi ordforrådet er skiftet helt ud, “over ear audio devices” i stedet for “wireless bluetooth headphones”, “block outside sound” i stedet for “noise cancellation”, “delivery costs nothing” i stedet for “free shipping”, tæller værktøjet næsten intet overlap og lander på 6%.
Det er den vigtigste pointe med begge eksempler set sammen: en høj score er et stærkt tegn på overlap, men en lav score betyder ikke, at indholdet er originalt, den betyder kun, at ordvalget er forskelligt. Værktøjet er godt til at fange den hurtige, dovne omskrivning fra Eksempel 1. Det kan ikke bruges som et plagiatværktøj mod en tekst, der er grundigt omformuleret som i Eksempel 2.
Score-bånd
| Score | Bånd | Betydning |
|---|---|---|
| 70-100% | Høj lighed | Meget af ordforrådet er identisk, sandsynligt duplikeret eller let omskrevet indhold |
| 40-69% | Moderat lighed | Delvist overlap, tjek de fælles ord for at vurdere om det er tilfældigt eller problematisk |
| 1-39% | Lav lighed | Kun spredt overlap i ordforrådet |
| 0% | Ingen lighed | Ingen fælles ord tilbage efter filtrering |
Tjek din egen tekst
Indsæt to tekster herunder og se scoren, samt hvilke ord der er fælles og unikke for hver tekst, med det samme.
Indtast begge tekster ovenfor for at beregne ligheden
TF-cosinuslighed · stopord fjernet · kører i din browser
Almindelige fejl og faldgruber
At tro, det er en rigtig AI-embeddingmodel, der forstår betydning. Det er det ikke. Værktøjet tæller bogstaveligt fælles ord efter frekvens, det har ingen forståelse for synonymer eller sætningsstruktur. Eksempel 2 viser præcis den blinde vinkel: samme mening, 6% score.
At stole på, at en lav score betyder “ikke duplikeret”. En grundigt omskrevet parafrase kan sagtens score tæt på 0%, selvom den i ånd er en kopi af originalen. Brug scoren som et signal om ordforrådsoverlap, ikke som en garanti for originalitet.
At sammenligne en kort tekst med en meget længere side og undre sig over, at scoren ikke er højere. Selvom den korte tekst er fuldt indeholdt i den lange, vil al den ekstra unikke ordforråd i den lange tekst trække scoren ned, fordi lighedsmålet ser på hele vektoren, ikke kun på om noget genfindes.
At glemme, at stopord fjernes før beregningen. En meget kort tekst bestående mest af almindelige ord (“the”, “and”, “a”) kan lovligt score 0%, selv hvis teksterne ligner hinanden overfladisk, simpelthen fordi der ikke er noget indholdsbærende ordforråd tilbage at sammenligne.
Ofte stillede spørgsmål
Hvordan adskiller det her sig fra en rigtig embeddingmodel som OpenAIs text-embedding-3? En rigtig embeddingmodel oversætter tekst til en vektor, der fanger betydning, så to sætninger med helt forskellige ord, men samme indhold, kan stadig ligge tæt på hinanden. Dette værktøj gør noget langt simplere: det tæller, hvor mange af de samme ord to tekster deler. Det er hurtigt, kører lokalt og kræver ingen model, men det ser kun på ordforråd, ikke på mening, hvilket Eksempel 2 tydeligt viser.
Hvilken score bør bekymre mig i forhold til duplikeret indhold og SEO? 70% og opefter, “High similarity”-båndet, er der, hvor det er værd at tage seriøst. Men kig altid på selve listen af fælles og unikke ord frem for kun tallet, to tekster kan ramme en høj score af helt legitime grunde, for eksempel fordi de begge bruger den samme fagterminologi.
Fanger værktøjet omskrevet plagiat? Nej. Eksempel 2 er netop bygget til at vise det: Tekst D siger stort set det samme som Tekst C, men scorer kun 6%, fordi ordvalget er helt anderledes. Til at opdage grundigt omformuleret plagiat kræves en model, der forstår betydning, ikke bare ordoverlap.
Tæller stopord med i scoren? Nej. Almindelige ord som “the”, “and” og “a” fjernes, før frekvensvektorerne bygges, netop fordi de findes i næsten enhver tekst og ville skjule det reelle overlap i indholdsbærende ord.
Bliver min tekst sendt til en server? Nej. Hele beregningen sker i browseren. Teksterne forlader aldrig din enhed.
Kan jeg dele et link med mine to tekster allerede udfyldt? Ikke fra denne indlejrede version. Åbn værktøjets egen side for at få et link, hvor dine tekster er forudfyldt og kan deles direkte.