Maison >développement back-end >Problème PHP >Comment implémenter l'algorithme de similarité cosinus en PHP

Comment implémenter l'algorithme de similarité cosinus en PHP

PHPz
PHPzoriginal
2023-03-31 10:08:08977parcourir

Comprenez les concepts et les principes de l'algorithme de similarité cosinus, qui peut être largement utilisé dans l'analyse de données, la récupération d'informations, l'apprentissage automatique et d'autres domaines. Dans les applications pratiques, en tant que langage de programmation côté serveur couramment utilisé, comment PHP implémente-t-il l'algorithme de similarité cosinus ? Cet article explique comment utiliser PHP pour implémenter l'algorithme de similarité cosinus.

1. Concept et principe de l'algorithme de similarité cosinus

L'algorithme de similarité cosinus est une méthode de calcul de similarité courante, utilisée pour calculer le degré de similarité entre deux vecteurs. L'idée principale est d'utiliser le cosinus de l'angle entre deux vecteurs comme leur similarité.

La formule mathématique de l'algorithme de similarité cosinus est la suivante :

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

où A et B sont deux vecteurs, cosθ est la valeur cosinus entre eux, |A | et |B| sont respectivement leurs longueurs de module.

Dans l'algorithme de similarité cosinus, la plage de valeurs de similarité est comprise entre -1 et 1. Lorsque deux vecteurs ont la même direction, la valeur du cosinus est 1, indiquant que les vecteurs sont complètement similaires ; lorsque les deux vecteurs sont complètement opposés ; directions, la valeur du cosinus est - 1, cela signifie que les vecteurs sont complètement opposés.

2. PHP implémente un algorithme de similarité cosinus

En PHP, nous pouvons stocker des vecteurs via des tableaux et utiliser des fonctions intégrées pour les calculs. Vous trouverez ci-dessous un exemple de code grâce auquel vous pouvez implémenter l'algorithme de similarité cosinus en PHP.

/**

  • Implémentation de l'algorithme de similarité cosinus
  • @param array $a vector A value
  • @param array $b vector B value
  • @return float cosinus similarity value
    */
    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);
    }

    // Exemple
    $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";
    ?>

    Dans le code ci-dessus, la cosine_similarity. fonction Recevez deux vecteurs A et B, puis parcourez leurs paires clé-valeur, calculez leur produit scalaire et leurs valeurs normalisées. En fin de compte, la fonction renvoie une valeur de similarité cosinusoïdale, qui peut être utilisée comme métrique pour évaluer la similarité entre les vecteurs.

    3. Résumé

    L'algorithme de similarité cosinus est l'une des méthodes courantes pour calculer la similarité de deux vecteurs et peut être largement utilisé dans l'analyse de données, la récupération d'informations, l'apprentissage automatique et d'autres domaines. Dans l'application réelle, nous pouvons utiliser la fonction intégrée de PHP pour implémenter l'algorithme de similarité cosinus et calculer rapidement la similarité entre les vecteurs. J'espère que les méthodes et les exemples de code présentés dans cet article pourront être utiles aux lecteurs.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn