Natural Language Processing (NLP) - Fondements et applications

Auteur: Mohamed CHINY Durée necessaire pour le cours de Natural Language Processing (NLP) - Fondements et applications Niveau recommandé pour le cours de Natural Language Processing (NLP) - Fondements et applications Supports vidéo non disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Leçon 22: Similarité Cosinus: comprendre la notion de proximité vectorielle

Toutes les leçons

Natural Language Processing (NLP) - Fondements et applications

Leçon 1
Natural Language Processing (NLP) - Histoire, définition et applications
Leçon 2
Le prétraitement en NPL: du texte brut aux données exploitables
Leçon 3
La normalisation, étape indispensable du prétraitement linguistique
Leçon 4
Tokenisation: comprendre son rôle dans le prétraitement linguistique pour le NLP
Leçon 5
Gestion des stop words en prétraitement NLP
Leçon 6
Le stemming: Réduction lexicale et normalisation des formes
Leçon 7
Lemmatisation: normaliser les texte en retrouvant la forme canonique des mots
Leçon 8
Byte Pair Encoding (BPE) - Tokenisation en sous-mots et réduction du vocabulaire
Leçon 9
WordPiece: tokenisation en sous-mots pour mieux comprendre le langage
Leçon 10
Extraction n-grammes pour enrichir la représentation du langage
Leçon 11
Exploratory Data Analysis (EDA) en NLP - Explorer pour mieux prédire
Leçon 12
Nuage de mots et histogramme de fréquences: outils visuels pour comprendre un corpus
Leçon 13
PoS Tagging: vers une compréhension linguistique approfondie
Leçon 14
Analyse de cooccurrence: étape clé de l'EDA en NLP exploratoire
Leçon 15
Extraction de caractéristiques en NLP: transformer le texte en vecteurs numériques
Leçon 16
Bag of Words (BoW): une approche basique d'extraction de caractéristiques en NLP
Leçon 17
TF-IDF: pondérer l'importance des mots pour mieux représenter le texte
Leçon 18
Word Embedding: comprendre le langage grâce aux vecteurs sémantiques
Leçon 19
Analyse de sentiments en NLP: Etude de cas avec le dataset US Airline Sentiment et VADER
Leçon 20
Analyse de sentiments avec un réseau LSTM: Classification multi-classes des tweets
Leçon 21
Reconnaissance d'Entités Nommées NER: du langage brut à l'information structurée
Leçon 22
Similarité Cosinus: comprendre la notion de proximité vectorielle
Leçon 23
Construire un système de recommandation avec TF-IDF et Cosine Similarity

Similarité Cosinus: mesurer la proximité entre vecteurs

Qu'est ce que la Similarité Cosinus (ou Cosine Similarity)?

La similarité cosinus (Cosine Similarity) est une mesure mathématique qui permet de comparer deux vecteurs en fonction de l’angle qu’ils forment entre eux. Plutôt que de s’intéresser à la taille ou à la longueur des vecteurs, elle évalue uniquement leur orientation. Deux vecteurs qui pointent dans la même direction auront une similarité proche de 1, tandis que deux vecteurs orthogonaux (perpendiculaires) auront une similarité proche de 0.

Cette approche est particulièrement utile lorsqu’on veut mesurer la ressemblance entre objets représentés sous forme vectorielle, comme des textes, des profils ou des ensembles de caractéristiques. Elle met en avant la similarité de structure plutôt que la quantité brute d’information. Ainsi, même si deux éléments diffèrent en taille ou en volume, ils peuvent être considérés comme proches si leurs vecteurs suivent la ême direction.

Applications pratiques de la similarité cosinus dans le monde réel

La similarité cosinus est largement utilisée dans différents domaines pour comparer des objets représentés sous forme de vecteurs. Quelques exemples pratiques incluent:
  • Recherche documentaire: comparer des articles ou des pages web afin de retrouver ceux qui sont les plus proches d’une requête utilisateur (comme c'est le cas dans la plupart des moteurs de recherche).
  • Systèmes de recommandation: suggérer des films, musiques ou produits similaires en fonction de leurs descriptions ou des préférences des utilisateurs.
  • Traitement du langage naturel: mesurer la ressemblance entre phrases ou documents pour des tâches comme la détection de plagiat ou l’analyse sémantique.
  • Analyse de profils: comparer des utilisateurs ou des clients selon leurs comportements ou caractéristiques pour identifier des groupes similaires.
  • Clustering et classification: évaluer la proximité entre données vectorisées afin de regrouper des éléments proches dans des clusters.

En résumé, la similarité cosinus est un outil polyvalent qui permet de capturer la proximité d’orientation entre vecteurs, ce qui en fait une mesure très utile dans la recherche d’information, la recommandation et l’analyse de données.
Les moteurs de recherche modernes ne se contentent plus de comparer les requêtes mot à mot. Au lieu de cela, ils utilisent des approches vectorielles comme la similarité cosinus pour mesurer la proximité entre une requête et les documents indexés, plutôt que de s’arrêter à une correspondance littérale des mots.

La formule de la similarité cosinus peut être détaillée en mettant en avant ses deux composantes principales: le produit scalaire et la norme des vecteurs \(A = (A_1, A_2, \dots, A_n)\) et \(B = (B_1, B_2, \dots, B_n)\).
Les éléments A1, A2,… et B1, B2,… représentent les coordonnées ou composantes des vecteurs A et B dans un espace, c'est à dire, les valeurs du vecteur sur les axes.
Le produit scalaire \(A⋅B\) mesure la quantité de chevauchement entre deux vecteurs, c’est‑à‑dire la somme des produits de leurs coordonnées correspondantes.

Les normes \(\|A\|\) et \(\|B\|\) représentent la longueur de chaque vecteur dans l’espace.

En divisant le produit scalaire par le produit des normes, on obtient le cosinus de l’angle \(\theta\) entre les deux vecteurs:
\(cos(\theta) = \frac{A \cdot B}{\|A\| \cdot \|B|}\)

\(\|A\| = \sqrt{\sum_{i=1}^{n} A_i^2}, \quad \|B\| = \sqrt{\sum_{i=1}^{n} B_i^2}\)
Cette formulation est puissante car elle neutralise l’effet de la magnitude. Deux vecteurs très longs ou très courts peuvent avoir des valeurs différentes, mais si leur orientation est similaire, le rapport donnera une valeur proche de 1. À l’inverse, si les vecteurs pointent dans des directions opposées, le cosinus sera proche de -1, et s’ils sont orthogonaux (perpendiculaires), il sera proche de 0.

Ainsi, la formule traduit directement la notion d’angle en une mesure de similarité. Elle permet de comparer des objets abstraits (textes, profils, données numériques) en se concentrant sur leur orientation dans l’espace vectoriel, ce qui est particulièrement adapté pour identifier des ressemblances de contenu ou de comportement sans être biaisé par la taille ou la quantité d’information.
Dans la leçon qui va suivre, nous allons explorer un exemple concret de système de recommandation. Ce cas pratique permettra de mettre en application la similarité cosinus et les représentations vectorielles vues précédemment, afin de comprendre comment les moteurs de recherche ou les plateformes de streaming proposent des contenus pertinents à leurs utilisateurs.
         
         
         
         
         
         
Leçon 22
Similarité Cosinus: comprendre la notion de proximité vectorielle