Utvecklare

Så Kontrollerar Du Textlikhet (Cosinuslikhet Förklarad med Riktiga Exempel)

7 min läsning

Cosinuslikhet mellan två texter är ett tal mellan 0 och 100 % som visar hur mycket ordförråd de delar. 74 % betyder att texterna i praktiken använder samma ord, bara omskrivna. 6 % betyder att de nästan inte delar ett enda ord, även om de skulle kunna handla om exakt samma sak. Det är precis det spannet vi går igenom nedan, med två riktiga texter och de faktiska siffrorna verktyget ger.

Hur poängen faktiskt räknas ut

Metoden bakom siffran är enklare än den låter. Verktyget gör om varje text till en liten skröna av ord och antal:

  1. Texten görs om till gemener, skiljetecken tas bort, och den delas upp på mellanslag.
  2. Korta ord (en enda bokstav) och vanliga stoppord, som “och”, “the” eller “de”, plockas bort eftersom de inte säger något om innehållet.
  3. Det som blir kvar räknas till en vektor: varje unikt ord får en siffra för hur många gånger det förekommer i texten.
  4. De två vektorerna jämförs med cosinuslikhet, alltså skalärprodukten mellan dem delat med produkten av deras längder.
  5. Resultatet skalas till en procentsats mellan 0 och 100 %.

Poängen mäter alltså bara vilka ord som förekommer och hur ofta, inte vad orden betyder. Två texter som delar nästan alla sina ord får en hög poäng även om de är slarvigt omskrivna. Två texter som säger samma sak med helt olika ord får en låg poäng, hur lika de än är för en människa som läser dem. Allt sker lokalt i din webbläsare, inget skickas till någon server.

Exempel 1: samma produkt, lätt omskriven text

Det här är scenariot de flesta faktiskt stöter på: två versioner av samma produktbeskrivning, omskrivna precis så mycket att de ser olika ut för ett snabbt öga men fortfarande delar det mesta av sitt innehåll. Klistra in de här två texterna (behåll dem på engelska, verktyget fungerar med text på vilket språk som helst, engelska används bara som exempel här):

Text A: “Buy affordable wireless bluetooth headphones with active noise cancellation and thirty hour battery life. Free shipping on every order today.”

Text B: “Shop cheap wireless bluetooth headphones featuring active noise cancellation and a thirty hour battery. Enjoy free shipping on every order this week.”

Resultat: 74 % likhet, alltså bandet “Hög likhet”.

Ord
Gemensamma (13)active, battery, bluetooth, cancellation, every, free, headphones, hour, noise, order, shipping, thirty, wireless
Bara i A (4)affordable, buy, life, today
Bara i B (5)cheap, enjoy, featuring, shop, week

Trettio av de ord som räknas är delade, bara nio är unika för endera texten. Det är precis den typen av “duplicering” en produktsida ofta ackumulerar av misstag: en säljare omformulerar en gammal annons, byter ut några adjektiv och en tidsfras, men behåller strukturen och kärnorden intakta. Verktyget fångar det direkt och landar strax under gränsen till det allra högsta bandet.

Exempel 2: samma innehåll, helt annat ordval

Nu jämför vi Text A mot en text som säger nästan exakt samma sak, men utan att återanvända ett enda meningsfullt ord. Text C är identisk med Text A ovan. Text 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 % likhet, bandet “Låg likhet”. Det enda ordet de två texterna delar är “order”.

Läs man Text A och Text D som människa är det uppenbart att de beskriver samma produkt: hörlurar som blockerar omgivningsljud, batteri som räcker en hel dag, gratis frakt. En redaktör skulle utan tvekan kalla det samma innehåll, bara omskrivet. Men verktyget räknar bara delade ord, inte betydelse, och landar därför på 6 %, långt ner i det lägsta bandet.

Det är den viktigaste lärdomen från de här två exemplen tillsammans: en hög poäng är ett starkt tecken på överlapp, men en låg poäng betyder inte att innehållet är originellt, den betyder bara att ordvalet skiljer sig. Verktyget är bra på att fånga slarvig eller stressad duplicering, som i Exempel 1. Det går inte att lita på som ett verktyg mot en genomtänkt omskrivning, som i Exempel 2.

Poängband

PoängBandBetyder
70 % och uppåtHög likhetTexterna delar nästan hela sitt ordförråd
40-69 %Måttlig likhetBetydande överlapp, men också en hel del unikt i varje text
1-39 %Låg likhetBara sporadiska gemensamma ord
0 %Ingen likhetInga delade ord kvar efter att stoppord filtrerats bort

Kontrollera din egen text

Klistra in två textstycken nedan så räknar verktyget ut likheten direkt i din webbläsare.

Ange båda texterna ovan för att beräkna likheten

TF-cosinuslikhet · stoppord borttagna · körs i din webbläsare

Embedding-likhetskalkylator
Gratis, ingen registrering, fungerar på alla enheter.
Öppna hela verktyget

Vanliga misstag

Att tro att det här är en riktig AI-embeddingmodell som förstår betydelse. Det gör den inte. Den räknar delade ord, punkt slut. Exempel 2 ovan visar exakt vad det kostar: en text som betyder samma sak som originalet men skriven med andra ord får en poäng nära noll, trots att innehållet i praktiken är återanvänt.

Att lita på att en låg poäng betyder “inte duplicerat”. En genomtänkt omskrivning kan landa nära 0 % och ändå vara samma innehåll i sak. Om du letar efter innehållsstöld eller plagiat räcker den här typen av ordräkning inte som enda bevis, den fångar bara den bokstavliga överlappningen.

Att jämföra ett kort utdrag mot en mycket längre sida och bli förvånad att poängen inte är högre. Om utdraget faktiskt finns med ordagrant inuti den längre texten sänks ändå poängen av allt det extra, unika ordförrådet i den längre sidan. Ju mer text som inte matchar, desto lägre blir helhetspoängen, även när det korta stycket är helt intakt inuti det längre.

Att inte inse att stoppord filtreras bort innan poängen räknas. Mycket korta texter som mest består av vanliga ord (“och”, “med”, “för”, “the”, “and”) kan landa på precis 0 % efter filtreringen, inte för att texterna är olika i sak, utan för att det inte fanns några innehållsord kvar att jämföra.

Vanliga frågor

Hur skiljer sig det här från en riktig embeddingmodell som OpenAIs text-embedding-3? En riktig embeddingmodell tränas på enorma mängder text och fångar semantisk betydelse, så den känner igen att “hörlurar” och “audio devices” hör ihop även utan ett enda gemensamt ord. Den här kalkylatorn gör ingen sådan tolkning, den räknar bara termfrekvenser och jämför dem med cosinuslikhet. Det gör den snabb, gratis och helt lokal, men blind för synonymer och omskrivningar.

Vilken poäng bör oroa mig ur ett SEO-perspektiv för duplicerat innehåll? 70 % och uppåt, alltså bandet “Hög likhet”, är där det är värt att se närmare på texterna. Men lita inte enbart på siffran, öppna listan över gemensamma och unika ord och bedöm om överlappningen faktiskt är problematisk eller om det bara är naturligt återkommande fackord för ämnet.

Fångar det här verktyget omskrivet plagiat? Nej. Exempel 2 ovan visar det tydligt: en text som säger nästan exakt samma sak som originalet, men med annat ordval, gav bara 6 % likhet. Verktyget är byggt för att hitta bokstavlig ordöverlappning, inte för att avgöra om innebörden är stulen.

Räknas stoppord med i poängen? Nej, vanliga ord som “och”, “för”, “the” och “and” filtreras bort innan vektorerna byggs, tillsammans med ord på en enda bokstav. Bara det som är kvar räknas som innehållsord.

Skickas min text till en server? Nej. Hela beräkningen körs i din egen webbläsare. Ingen av texterna du klistrar in lämnar din enhet.

Kan jag dela en länk med mina texter förifyllda? Ja, men bara på verktygets egen fullständiga sida, inte i det inbäddade läget ovan. Öppna hela verktyget via länken under widgeten för att få en delbar länk med dina texter redan ifyllda.

TextlikhetDuplicerat InnehållCosinuslikhetSEO
Embedding-likhetskalkylator
Prova det nu själv med hela verktyget.
Prova nu