0

スロションを探しています。2 つの文字列を比較して、一意性の割合を取得する必要があります。

例えば:

{
String A = "Hello"
String B = "Hello"
Uniqueness percent = 0%
}

{
String A = "Hello friend"
String B = "Hello mate"
Uniqueness percent = 50%
}

{
String A = "Hey"
String B = "Hello"
Uniqueness percent = 100%
}
4

3 に答える 3

1

ほら、このコードは、similar_text() php 関数に基づいています。文字列を単語全体ではなく文字で比較していることがわかります。例を見てください。

<?php

    if(isset($_REQUEST["str_a"]) && isset($_REQUEST["str_b"])) {

        $str_a = $_REQUEST["str_a"];    
        $str_b = $_REQUEST["str_b"];    

        function compare_them($str_1, $str_2) {

            $str_1 = trim(strtolower($str_1));
            $str_2 = trim(strtolower($str_2));

            similar_text($str_1, $str_2, $percentage);

            $formated_percents = number_format($percentage);

            return $formated_percents; 

        }

        $calculated = compare_them($str_a, $str_b);

    }


?>

<form action="" method="get">

    string a: <input type="text" value="" name="str_a" />
    <br />
    string b: <input type="text" value="" name="str_b" />
    <br />
    <br />
    <input type="submit" value="submit" />

</form>

<h2>
<?php 

    if(isset($_REQUEST["str_a"]) && isset($_REQUEST["str_b"])) { 

        print "string a = " . $str_a . " <br />string b = " . $str_b . " <br />percents match = " . $calculated . "%"; 

    }

?>
</h2>

これがライブの例です:
http://simplestudio.rs/yard/percent/percent.php

于 2012-10-05T01:00:35.697 に答える
1

PHP には、使用できる言語関数がいくつかあります。

http://php.net/manual/en/function.levenshtein.php

http://www.php.net/manual/en/function.soundex.php

http://www.php.net/manual/en/function.similar-text.php

http://www.php.net/manual/en/function.metaphone.php

あなたの質問には一意性の基準に関する詳細が欠けているため、これらのいずれかがニーズを満たすかどうかを確認する必要があります。

于 2012-10-05T00:20:46.533 に答える
0

similar_text() を使用できます

similar_text($string1,$string2,$percentage);
echo $percentage;

http://www.php.net/manual/en/function.similar-text.php

パフォーマンスが重要なソリューションを探している場合は、最適化されたアルゴリズムを使用する必要があります (ほとんどの場合、これは適切なソリューションです)。

于 2012-10-05T00:38:09.020 に答える