Metin Benzerliği Nasıl Kontrol Edilir: Kosinüs Benzerliği ile Yinelenen İçerik
İki metin arasındaki kosinüs benzerliği, iki metnin kelime dağarcığının ne kadar örtüştüğünü 0 ile 100 arasında bir sayıyla ifade eder. %74 gibi yüksek bir skor, iki metnin neredeyse aynı kelimeleri kullandığı anlamına gelir; genelde iki metnin aslında tek bir metnin hafifçe değiştirilmiş hali olduğunun işaretidir. %6 gibi düşük bir skor ise iki metnin farklı kelimelerle yazıldığını gösterir, ama bu tek başına metinlerin farklı şeyler anlattığı anlamına gelmez. Aşağıda ikisini de gerçek örneklerle göstereceğiz.
Skor nasıl hesaplanıyor
Hesaplama, anlamı değil kelime kullanımını ölçüyor. Araç önce her iki metni küçük harfe çeviriyor, noktalama işaretlerini kaldırıyor ve kelimelere ayırıyor. Ardından tek harflik kelimeleri ve “the”, “and”, “için”, “bir” gibi çok yaygın bağlaç/edat türü kelimeleri (stop word) listeden çıkarıyor, çünkü bu kelimeler neredeyse her metinde bulunur ve gerçek benzerlik hakkında bilgi vermez. Şu an bu yaygın kelime listesi sadece İngilizce, Portekizce, İspanyolca, Fransızca, İtalyanca ve Almanca için tanımlı; Türkçe metinlerde bu adım devreye girmiyor, yani Türkçe metinlerde “ve”, “bir”, “bu” gibi kelimeler de sayıma dahil oluyor.
Kalan kelimelerden her metin için bir kelime-frekans vektörü oluşturuluyor: her benzersiz kelime bir boyut, o kelimenin metinde kaç kez geçtiği de o boyuttaki değer. İki vektör arasındaki kosinüs benzerliği, bu iki vektörün nokta çarpımının, vektörlerin büyüklüklerinin çarpımına bölünmesiyle bulunuyor. Sonuç, iki vektör arasındaki açının kosinüsü; iki metin tamamen aynı kelimeleri aynı oranda kullanıyorsa 1’e (yüzde 100’e), ortak kelime yoksa 0’a yaklaşıyor. Tüm bu işlem tarayıcınızda çalışıyor, hiçbir metin sunucuya gönderilmiyor.
Burada önemli olan şu: bu bir yapay zeka embedding modeli değil. OpenAI’nin text-embedding-3 gibi gerçek embedding modelleri kelimelerin anlamını öğrenir ve “ucuz” ile “uygun fiyatlı”yı benzer kabul edebilir. Bu araç öyle bir şey yapmıyor, sadece birebir aynı kelimelerin ne sıklıkta tekrar ettiğini sayıyor.
Örnek 1: yeniden yazılmış iki ürün açıklaması
Aynı ürünü satan iki farklı sayfa düşünün. Biri diğerinden kopyalanmış gibi görünmesin diye birkaç kelime değiştirilmiş, ama cümle yapısı ve kelimelerin çoğu aynı kalmış. Aşağıdaki iki metni araca yapıştırdığımızda ne çıktığına bakalım (örnek metinler İngilizce; araç herhangi bir dilde çalışıyor, İngilizce sadece bu makalenin demo dili):
Metin A: “Buy affordable wireless bluetooth headphones with active noise cancellation and thirty hour battery life. Free shipping on every order today.”
Metin B: “Shop cheap wireless bluetooth headphones featuring active noise cancellation and a thirty hour battery. Enjoy free shipping on every order this week.”
Sonuç: %74 benzerlik, “High similarity” (yüksek benzerlik) bandında.
| Kategori | Kelimeler |
|---|---|
| Ortak kelimeler (13) | active, battery, bluetooth, cancellation, every, free, headphones, hour, noise, order, shipping, thirty, wireless |
| Sadece A’da (4) | affordable, buy, life, today |
| Sadece B’de (5) | cheap, enjoy, featuring, shop, week |
İki metin insan gözüyle bakıldığında farklı görünebilir; biri “buy” diyor, diğeri “shop” diyor, biri “affordable” diyor, diğeri “cheap” diyor. Ama anlamlı kelimelerin büyük çoğunluğu (13 kelime) birebir aynı. Araç bunu %74 olarak işaretliyor, yani “moderate” bandının üzerinde ve aracın kendi “high” eşiğine yakın. Bu, gerçek hayatta en sık karşılaşılan senaryo: kendi ürün sayfanızı acele yeniden yazdığınızda ya da bir tedarikçinin verdiği ürün açıklamasını başka bir sayfada da kullandığınızda, farkında olmadan aynı içeriği çoğaltmış olabilirsiniz.
Örnek 2: aynı orijinal metin, gerçek bir parafraz karşısında
Şimdi tam tersi durumu görelim. Metin C, yukarıdaki Metin A ile birebir aynı. Metin D ise aynı ürünü anlatıyor ama neredeyse hiç ortak kelime kullanmadan:
Metin 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.”
Sonuç: %6 benzerlik, “Low similarity” (düşük benzerlik) bandında. Ortak kelime tek bir tane: “order”.
Metin D aslında Metin A ile aynı şeyi anlatıyor: kulak üstü/kablosuz bir kulaklık, dış sesi engelleyen bir özellik, tam güne yayılan pil ömrü, ücretsiz kargo. Bir insan bu iki metni okuduğunda “bu aynı içerik, sadece farklı yazılmış” der. Ama araç sadece kelimeleri saydığı için %6 gibi düşük bir skor veriyor.
Bu iki örneği yan yana koyduğumuzda net bir sonuç çıkıyor: yüksek bir skor, kelime düzeyinde gerçek bir örtüşmenin güçlü bir işareti. Ama düşük bir skor, içeriğin özgün olduğu anlamına gelmiyor; sadece kelimelerin farklı olduğu anlamına geliyor. Araç, aceleyle veya dikkatsizce yeniden yazılmış içeriği (Örnek 1) yakalamakta iyi, ama iyi parafraz edilmiş bir metne karşı intihal (plagiarism) tespiti olarak güvenilemez (Örnek 2).
Skor bantları
| Skor | Bant | Ne anlama gelir |
|---|---|---|
| %70 ve üzeri | Yüksek benzerlik | Kelime dağarcığının büyük kısmı ortak; yinelenen içerik riski yüksek |
| %40 - %69 | Orta benzerlik | Belirgin bir örtüşme var ama iki metin de kendine özgü kelimeler içeriyor |
| %1 - %39 | Düşük benzerlik | Az sayıda ortak kelime; farklı yazılmış olabilir, farklı konu da olabilir |
| %0 | Benzerlik yok | Anlamlı kelimeler arasında hiç ortak kelime yok |
Kendi metninizi kontrol edin
Aşağıdaki araç, sitenin embedding benzerlik hesaplayıcısının gömülü hâli. İki metni yapıştırın, skoru ve ortak/benzersiz kelime listesini anında görün. Her şey tarayıcınızda çalışıyor, metinleriniz hiçbir yere gönderilmiyor.
Benzerliği hesaplamak için yukarıya her iki metni girin
TF kosinüs benzerliği · durak kelimeler kaldırıldı · tarayıcınızda çalışır
Sık yapılan hatalar
Bunu gerçek bir embedding modeli sanmak. Bu araç anlamı anlamıyor, sadece kelimeleri sayıyor. Örnek 2’de gördüğümüz gibi, aynı anlama gelen ama farklı kelimelerle yazılmış iki metin %6 gibi düşük bir skor alabiliyor. Gerçek semantik benzerlik için OpenAI text-embedding-3 gibi bir embedding modeline ihtiyaç var; bu araç onun yerine geçmiyor.
Düşük skoru “özgün içerik” garantisi sanmak. Birinin sizin metninizi alıp her kelimesini değiştirerek yeniden yazması, düşük bir skorla sonuçlanabilir, ama içerik aynı fikri, aynı yapıyı ve aynı bilgiyi taşıyor olabilir. Düşük skor sadece kelime düzeyinde farklı olduğunu söyler, telif ya da özgünlük garantisi vermez.
Kısa bir metni çok daha uzun bir sayfayla karşılaştırıp skorun düşük çıkmasına şaşırmak. Kısa metniniz uzun sayfanın içinde birebir geçse bile, uzun sayfadaki onlarca ekstra benzersiz kelime toplam vektörü seyreltir ve skoru aşağı çeker. Bu durumda karşılaştırmayı benzer uzunluktaki metin parçalarıyla yapmak daha anlamlı sonuç verir.
Yaygın kelimelerin (stop word) elendiğini bilmemek. Çok kısa ve çoğunlukla “ve”, “bir”, “bu” gibi yaygın kelimelerden oluşan iki metin, anlamlı kelime neredeyse kalmadığı için %0 çıkabilir. Bu bir hata değil, hesaplamanın doğal bir sonucu; ama beklenmedik bir %0 gördüğünüzde önce metinlerin gerçekten anlamlı kelime içerip içermediğini kontrol edin.
Sıkça sorulan sorular
Bu araç OpenAI’nin text-embedding-3 gibi gerçek bir embedding modelinden nasıl farklı? Gerçek embedding modelleri metni bir sinir ağından geçirerek anlamı temsil eden yüzlerce boyutlu bir vektör üretir; “ucuz” ile “uygun fiyatlı” gibi eş anlamlı kelimeleri yakın kabul edebilir. Bu araç ise sadece birebir aynı kelimelerin kaç kez geçtiğini sayıyor, kelimeler arasında anlam ilişkisi kurmuyor.
Yinelenen içerik (duplicate content) SEO açısından hangi skor beni endişelendirmeli? %70 ve üzeri, yani “yüksek benzerlik” bandı, ciddiye almanız gereken eşik. Ama sadece sayıya bakmayın; ortak ve benzersiz kelime listesine de göz atın, çünkü hangi kelimelerin örtüştüğü, örtüşmenin tesadüfi mi yoksa gerçekten aynı içeriğin yeniden yazılmış hali mi olduğunu gösterir.
Parafraz edilmiş bir intihali yakalar mı? Hayır. Örnek 2’de gösterdiğimiz gibi, Metin A ile aynı fikri anlatan ama tamamen farklı kelimelerle yazılmış Metin D, sadece %6 skor alıyor. Gerçek bir intihal tespiti için anlam tabanlı bir embedding modeli ya da özel bir intihal tespit servisi gerekiyor.
Yaygın kelimeler (stop word) skora dahil ediliyor mu? Hayır, “the”, “and” gibi çok yaygın İngilizce, Portekizce, İspanyolca, Fransızca, İtalyanca ve Almanca kelimeler sayımdan önce eleniyor. Türkçe için bu liste henüz tanımlı değil, yani Türkçe metinlerde “ve”, “bir” gibi kelimeler de sayıma dahil oluyor ve skoru bir miktar etkileyebiliyor.
Metnim bir sunucuya gönderiliyor mu? Hayır. Hesaplama tamamen tarayıcınızda çalışıyor, hiçbir metin ağ üzerinden herhangi bir sunucuya iletilmiyor.
Sonucu link ile paylaşabilir miyim? Bu yazının içine gömülü widget’ta hayır, ama aracın kendi sayfasını açarsanız, girdileriniz otomatik olarak URL’ye yansır ve o linki paylaşarak başka birine aynı iki metni ve skoru gösterebilirsiniz.