similar_text

(PHP 4, PHP 5, PHP 7, PHP 8)

similar_textİki dizge arasındaki benzerliği hesaplar

Açıklama

similar_text(string$dizge1, string$dizge2, float&$yüzde = null): int

Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) kitabında açıkladığı şekilde iki dizge arasındaki benzerliği hesaplar. Ancak bu gerçeklenim Oliver'in kod örneğindeki gibi bir yığıt kullanmaz. Ayrıca bu algoritmanın hesaplama karmaşıklığı, N en uzun dizgenin uzunluğu olmak üzere O(N**3)'tür.

Bağımsız Değişkenler

dizge1

İlk dizge.

dizge2

İkinci dizge.

Bilginize:

dizge1 ve dizge2 yer değiştirise farklı sonuçlar ortaya çıkabilir; aşağıdaki örnek fikir verebilir.

yüzde

Benzerlik oranını belirtmek için kullanılır. Bir gönderimi üçüncü bağımsız değişkende aktararak, similar_text() işlevinin sonucu verilen dizgelerin uzunluklarının ortalamasının 100 katına bölünerek benzerlik yüzde olarak hesaplanır.

Dönen Değerler

Her iki dizgede eşleşen karakterlerin sayısı döner.

Eşleşen karakterlerin sayısı, en uzun ilk ortak alt dizgeyi bularak ve bunu önekler ve son ekler için ard arda bularak hesaplanır. Bulunan tüm ortak alt dizelerin uzunlukları toplanır.

Örnekler

Örnek 1 - similar_text() bağımsız değişken takaslama örneği

dizge1 ve dizge2 takaslandığında farklı sonuçlar elde edileceğini gösteren örnek.

<?php
$sim
= similar_text('bafoobar', 'barfoo', $perc);
echo
"similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo
"similarity: $sim ($perc %)\n";

Yukarıdaki örnek şuna benzer bir çıktı üretir:

similarity: 5 (71.428571428571 %) similarity: 3 (42.857142857143 %)

Ayrıca Bakınız

  • levenshtein() - İki dizge arasındaki Levenştayn mesafesini hesaplar
  • soundex() - Bir dizgenin sestek anahtarını hesaplar
To Top