PHPでコサイン類似度アルゴリズムを実装する方法

PHPz
リリース: 2023-03-31 10:16:27
オリジナル
726 人が閲覧しました

データ分析、情報検索、機械学習などの分野で広く使用できるコサイン類似度アルゴリズムの概念と原理を理解します。実際のアプリケーションでは、一般的に使用されるサーバー側プログラミング言語として、PHP はコサイン類似度アルゴリズムをどのように実装するのでしょうか?この記事では、PHP を使用してコサイン類似度アルゴリズムを実装する方法を紹介します。

1. コサイン類似度アルゴリズムの概念と原理

コサイン類似度アルゴリズムは、2 つのベクトル間の類似度を計算するために使用される一般的な類似度計算方法です。中心的なアイデアは、2 つのベクトル間の角度の余弦をそれらの類似度として使用することです。

コサイン類似度アルゴリズムの数式は次のとおりです:

cosθ= A·B / |A|·|B|

ここで、A と B は 2 つのベクトルです。 、cosθ はそれらの間の余弦値、|A| と |B| はそれぞれモジュール長です。

コサイン類似度アルゴリズムでは、類似度の値の範囲は -1 ~ 1 です。 2 つのベクトルの方向が同じ場合、コサイン値は 1 (ベクトルが完全に類似していることを意味します)、2 つのベクトルが直交している場合、コサイン値は 0 (ベクトルが完全に異なっていることを意味します)、2 つのベクトルが完全に逆の場合、方向、コサイン値が - 1 であることは、ベクトルが完全に反対であることを意味します。

2. PHP はコサイン類似度アルゴリズムを実装します

PHP では、配列を介してベクトルを保存し、組み込み関数を使用して計算を実行できます。以下は、PHP でコサイン類似度アルゴリズムを実装できるサンプル コードです。

/**

  • コサイン類似度アルゴリズムの実装
  • @param array $a Vector A value
  • @param array $b Vector B value
  • @return float コサイン類似度値
    */
    function cosine_similarity($a, $b) {
    $dot_product = 0;
    $a_norm = 0;
    $b_norm = 0;

    foreach ($a as $key => $value) {

    $dot_product += $value * $b[$key]; $a_norm += pow($value, 2); $b_norm += pow($b[$key], 2);
    ログイン後にコピー

    }

    $a_norm = sqrt($a_norm) ;
    $b_norm = sqrt($b_norm);

    return $dot_product / ($a_norm * $b_norm);
    }

    // 例
    $a = [1, 2, 3, 4, 5];
    $b = [6, 7, 8, 9, 10];
    $c = [2, 3, 6, 7 , 9];

    echo cosine_similarity($a, $b) . "\n";
    echo cosine_similarity($a, $c) . "\n";
    ?>

    上記のコードでは、cosine_similarity 関数は 2 つのベクトル A と B を受け取り、それらのキーと値のペアを走査し、それらの内積と正規化された値を計算します。最終的に、この関数はコサイン類似度の値を返します。この値は、ベクトル間の類似性を評価するためのメトリックとして使用できます。

    3. 概要

    コサイン類似度アルゴリズムは、2 つのベクトルの類似度を計算する一般的な方法の 1 つであり、データ分析、情報検索、機械学習などの分野で広く使用できます。実際のアプリケーションでは、PHP の組み込み関数を使用してコサイン類似度アルゴリズムを実装し、ベクトル間の類似度を迅速に計算できます。この記事で紹介した方法とサンプルコードが読者の参考になれば幸いです。

    以上がPHPでコサイン類似度アルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!