La célèbre citation de Gertrude Stein est un bel exemple qui montre à quel point le langage humain peut être compliqué. La phrase est ambiguë et permet de multiples interprétations. Mais pouvons-nous créer un algorithme intelligent, réellement capable de comprendre le sens du langage humain?
Avant que Google n’introduise RankBrain, la recherche sémantique et tout ce qui concerne l’apprentissage automatique, la vie des référenceurs semblait plus facile. Nous sommes maintenant exposés à un flot d’informations spéculatives émanant de personnes influentes de l’industrie. Pour aggraver les choses, les porte-parole de Google partagent des informations obscures sur les signaux de qualité et répètent le mantra . Existe-t-il un moyen de distinguer les hypothèses des faits réels sur les algorithmes? La réponse est oui ». Il existe deux domaines de l’informatique, le traitement du langage naturel et la recherche d’informations, qui abordent un vaste ensemble de problèmes liés au référencement. Il existe des algorithmes bien documentés pour la classification du texte et la récupération des documents pertinents en réponse à une requête de l’utilisateur. Pas de doute, juste de la science pure.
Si vous souhaitez en savoir un peu plus sur les concepts académiques tels que « recherche sémantique », « recherche par mot clé », « optimisation du contenu » et autres mots à la mode, continuez votre lecture! Toutefois, sachez que cet article ne vous donnera pas de recette magique pour un référencement sur page, mais qu’il répondra plutôt à certaines des questions « pourquoi » que vous avez probablement.
Qu’est-ce qu’un mot
le mot est le plus petit élément constitutif de la signification et un point de départ logique de notre voyage. Essayons de savoir comment les mots sont représentés dans les programmes informatiques. Encours de route, je vais mettre en évidence certaines forces et faiblesses de ces approches.
Dans le cas le plus simple, un programme informatique voit dans un texte une séquence de caractères alphanumériques et de ponctuation. Ceci est une soi-disant représentation brute.
« Les programmes du programmeur ont été programmés. »
Des mots séparés peuvent être délimités par des espaces ou des signes de ponctuation. En conséquence, nous obtenons une liste de jetons. Notez qu’à ce stade, nous considérons également les caractères de ponctuation comme des jetons distincts.
Le tout premier jeton de la liste ci-dessous pose un dilemme. Comment devrions-nous traiter les caractères majuscules? Faut-il changer tous les caractères en minuscule? Il semble raisonnable d’aller pour ce choix. Après tout, « Le » et « le » représentent évidemment le même mot, à savoir l’article défini. Mais qu’en est-il de « Smith » et « Smith »? Ce peut être un nom propre, un nom avec une signification « quelqu’un qui fabrique et répare des choses enfer », ou le même nom au début d’une phrase.
Les jetons non traités préservent toutes les informations linguistiques, mais simultanément, nous obtenons plus de bruit en entrée. Un post-traitement supplémentaire peut être utilisé pour éliminer les informations inutiles.
les programmes du programmeur ont été programmés.
Les mots peuvent avoir différentes formes. Par exemple, le jeton « programmes » de notre exemple est en fait une forme plurielle du nom « programme ». « Programmé » est le passé simple du verbe « programme ». Les formes initiales de mots ou les formes qui représentent des mots dans un dictionnaires ont appelées lemmas. Et une autre étape logique consiste à représenter les mots par leurs lemmes respectifs.
le programme du programmeur a été programmé.
Jusqu’ici tout va bien. Vous avez probablement entendu dire que les moteurs de recherche utilisent les listes de mots vides afin de prétraiter les textes saisis. Une liste de mots vides est un ensemble de jetons supprimés d’un texte. Les mots vides peuvent inclure des mots fonctionnels et de la ponctuation. Les mots fonctionnels sont des mots qui n’ont pas de signification indépendante, par exemple les verbes ou les pronoms auxiliaires.
Supprimons les mots fonctionnels de la phrase. En conséquence, l’énoncé initial comprend uniquement des mots de contenu (les mots ayant une signification sémantique). Cependant, il n’ya aucun moyen de dire que le programme en question est en quelque sorte lié au programmeur.
programme de programmation
Je peux imaginer que tu t’ennuies. Mais attendez! Nous n’avons pas encore fini! Un mot peut être représenté par sa tige. Une tige est une partie d’un mot auquel nous attachons normalement des affixes. Par exemple, nous pouvons attacher le suffixe « -er » (avec la signification d’une personne effectuant une action) à la tige « programme ».
Examinez la phrase d’entrée après avoir remplacé les lemmes par les tiges.
programme programme programme
Nous avons réussi à tronquer l’entrée initiale dans une séquence peu informative. La leçon à retenir est la suivante: il existe 3 manières typiques de représenter des mots:
- Jetons
- Lemmas
- Tiges
De plus, nous pouvons supprimer les mots fonctionnels ou convertir les mots en minuscules.
Ces représentations et leurs combinaisons sont utilisées en fonction de la tâche de traitement de la langue. Par exemple, il est déraisonnable de supprimer les mots fonctionnels si nous devons différencier les textes en anglais et en français. Si nous devons détecter des noms propres dans un texte, il est raisonnable de conserver la casse des caractères d’origine, etc.
Les unités linguistiques décrites ci-dessus sont les éléments constitutifs de structures plus grandes, telles que des documents, dont nous discuterons plus tard.
Il est important de comprendre comment et pourquoi on divise une phrase en unités, car ces unités font partie d’une métrique que tous les référenceurs utilisent ou connaissent, à savoir la « densité de mots clés ». Bien que les SEO réputés le contestent plutôt catégoriquement, « la densité des mots clés n’est pas utilisée – combien de fois devons-nous le dire ». Et il sont proposé TF-IDF comme une meilleure alternative car elle est liée à la recherche sémantique. Je montrerai plus loin dans l’article que le nombre de mots bruts et le nombre de mots pondérés (TF-IDF) peuvent être utilisés à la fois pour la recherche lexicale et la recherche sémantique.
La densité de mots-clés est une métrique pratique et simple qui a le droit d’exister. Juste ne soyez pas obsédé par cela.
Il convient également de garder à l’esprit que les moteurs de recherche traitent très probablement les formes de mots grammaticaux comme des mots du même type. mot-clé.
Le sac de mots

Le sac de mots est un modèle utilisé dans le traitement du langage naturel pour représenter un texte (d’une requête de recherche à un livre à l’échelle 1). Bien que le concept remonte aux années 50, il est toujours utilisé pour la classification de texte et la recherche d’informations (c’est-à-dire les moteurs de recherche).
Je vais l’utiliser pour montrer comment les moteurs de recherche peuvent trouver un document pertinent dans une collection en réponse à une requête de recherche.
Si nous voulons représenter un texte entant que sac de mots, nous comptons simplement le nombre de fois que chaque mot distinct apparaît dans le texte et listons ces comptes (enter mes mathématiques, il s’agit d’un vecteur). Avant de compter, on peut appliquer les techniques de prétraitement décrites dans la partie précédente de l’article.
En conséquence, toutes les informations concernant la structure, la syntaxe et la grammaire du textes ont perdues.
Il n’est pas très utile d’utiliser un texte séparé sous forme de liste de chiffres. Toutefois, si nous avons une collection de documents (par exemple, toutes les pages Web indexées par un moteur de recherche donné), nous pouvons créer un modèle spatial vectoriel à partir des textes disponibles.
Le terme peut sembler effrayant, mais en réalité, l’idée est plutôt simple. Imaginez une feuille de calcul dans la quelle chaque colonne représente le sac de mots d’un texte (vecteur de texte) et chaque ligne représente un mot de la collection de ces textes (vecteur de mots). Le nombre de colonnes est égal au nombre de documents de la collection. Le nombre de lignes est égal au nombre de mots uniques trouvés dans l’ensemble de la collection de documents.
La valeur à l’intersection de chaque ligne et colonne est le nombre de fois où le mot correspondant apparaît dans le texte correspondant. La feuille de calcul ci-dessous représente l’espace vectoriel de certaines pièces de Shakespeare. Par souci de simplicité, nous utilisons seulement quatre mots.
Rappelez-vous, j’ai déjà mentionné que le sac de mots est en fait un vecteur. Une bonne chose à propos des vecteurs est que nous pouvons mesurer la distance ou l’angle entre eux. Plus la distance ou l’angle est petit, plus les vecteurs et les documents qu’ils représentent sont « similaires ». Ceci peut être réalisé en utilisant une métrique de similarité cosinus. La valeur obtenue est comprise entre 0 et 1. Plus la valeur est élevée, plus les documents sont similaires.

Trouver un document pertinent: comment faire
Nous disposons maintenant de suffisamment d’informations pour expliquer comment trouver un document dans la collection qui soit pertinent pour une requête de recherche.
Supposons qu’un utilisateur recherche « bataille d’Agin court ». C’est un court document qui peut être intégré dans l’espace vectoriel de l’exemple ci-dessus. Le vecteur respectif est [1, 0, 0, 0]. « bon », « imbécile » et « esprit » n’ont pas de compte. Nous pouvons en suite calculer la similarité de la requête de recherche pour chaque document de la collection. Les résultats figurent dans le tableau ci-dessous. On peut remarquer que Henry V est le meilleur Il n’est pas surprenant que le mot « bataille » apparaisse le plus souvent dans ce texte et que le document puisse être considéré comme plus pertinent pour la requête. Notez également qu’il n’est pas nécessaire que tous les mots d’une recherche soient présent dans le texte.
Une telle approche trop simpliste présente plusieurs inconvénient sévidents:
Il est vulnérable au bourrage de mots clés. On peut augmenter considérablement la pertinence d’un document par rapport à une requête de recherche en répétant simplement le mot requis autant de fois que nécessaire afin de battre les documents concurrents de la collection.
La représentation du sac de mots pour le document suivant
J’ai été impressionné, c’était pas mal!
Je n’étais pas impressionné, c’était mauvais!
seront absolument les mêmes, bien qu’ils aient des significations différentes. Rappelez-vous que le modèle de sac de mots supprime toute la structure des documents sous-jacents.
Le modèle de sac de mots avec fréquence de mots n’est pas la meilleure mesure. Il est biaisé en faveur de mots très fréquents et n’est pas discriminant. Dans la sous-section suivante, vous allez apprendre pourquoi.
TF-IDF et loi de Zipf
La loi de Zipf stipule que, compte tenu du nombre important de mots utilisés, la fréquence d’un mot est inversement proportionnelle à son rang dans le tableau des fréquences. Le nombre de mots N a donc une fréquence proportionnelle à 1 / N. En conséquence, il existe un modèle intéressant dans les langues naturelles. Les 18% (environ) les mots les plus fréquemment utilisés représentent plus de 80% des occurrences de mots. Cela signifie que quelques mots sont souvent utilisés et beaucoup de mots sont rarement utilisés.
Les mots fréquents apparaîtront dans de nombreux textes d’une collection. En conséquence, ces mots rendent plus difficile la différenciation des textes représentés par le sac de mots. De plus, les mots les plus fréquents sont souvent des mots fonctionnels sans signification sémantique. Ils ne peuvent pas décrire le sujet d’un texte.
Nous pouvons appliquer la pondération TF-IDF (fréquence de terme – fréquence de document inverse) afin de réduire le poids des mots fréquemment utilisés dans l’ensemble des textes. Le score TF-IDF est calculé à l’aide de la formule suivante:

Où la première composante est la fréquence terme – la fréquence du mot dans le document. Et la deuxième composante est la fréquence de document inverse. Il s’agit du nombre de documents d’une collection divisé par la fréquence d’exécution d’un mot, qui correspond au nombre total de documents dans lesquels le mot apparaît. Le second composant est utilisé pour attribuer un poids plus élevé aux mots qui ne figurent que dans quelques documents. la collection.
Dans le tableau ci-dessous, certaines valeurs IDF pour certains mots des jeux de Shakespeare, allant de mots extrêmement informatifs qui ne figurent que dans une seule pièce, comme Romeo, à ceux qui sont si courants qu’ils sont totalement non discriminants puisqu’ils figurent dans les 37 pièces. comme « bon » ou « doux ».
Les IDF de mots très courants sont égaux à 0. Par conséquent, leurs fréquences dans le modèle de sac de mots seront également égales à 0. Les fréquences des mots rares seront augmentées.
Je doute que le modèle du sac de mots soit utilisé de nos jours dans les moteurs de recherche commerciaux. Il existe des modèles qui captent mieux la structure du texte et prennent en compte davantage de caractéristiques linguistiques, mais l’idée de base reste la même. Les documents et les requêtes de recherche sont transformés en vecteurs, et la similarité ou la distance entre les vecteurs est utilisée comme mesure de pertinence.
Ce modèle permet de comprendre le fonctionnement de la recherche lexicale par opposition à la recherche sémantique. Pour la recherche lexicale, il est essentiel qu’un document contienne les mots mentionnés dans une requête de recherche. Bien que cela ne soit pas nécessaire pour la recherche sémantique.
La loi de Zipf démontre qu’il existe des proportions prévisibles dans un texte rédigé en langage naturel. Les écarts par rapport aux proportions typiques sont faciles à détecter. Par conséquent, il n’est pas difficile de signaler un texte sur optimisé qui est « non naturel ».
Le système de pondération TF-IDF n’est pas une clé du monde magique de la recherche sémantique. Lorsque TF-IDF est appliqué à un modèle, les entités de document étiquetées par des mots de contenu prennent plus de poids dans le vecteur de document. Et il est tentant d’interpréter le phénomène comme un phénomène lié à la « sémantique ».
La recherche sémantique
La recherche sémantique est un mot à la mode dans la communauté du référencement depuis 2013. La recherche sémantique dénoteune recherche significative, par opposition à la recherche lexicale où le moteur de recherche recherche des correspondances littérales des mots de la requête ou de leurs variantes, sans en comprendre le sens général. .
Remarque: le modèle du sac de mots est un exemple de recherche lexicale.
Mais comment un moteur de recherche peut-il apprendre le sens d’un mot? Il existe même un problème plus complexe de haut niveau. Comment devrions-nous représenter le sens de sorte qu’un programme informatique puisse le comprendre et l’utiliser pratiquement?
Le concept clé qui aide à répondre à ces questions est l’hypothèse de distribution qui a été formulée pour la première fois dès les années cinquante. Les linguiste sont remarqué que les mots ayant une signification similaire tendaient à se trouver dans le même environnement (c’est-à-dire près des mêmes mots), la différence de signification entre deux mots correspondant à peu près à la différence dans leur environnement.
Voici un exemple simple. Supposons que vous rencontriez les phrases suivantes et que vous n’ayez aucune idée de ce qu’est une langoustine:
Les langoustines sont considérées comme un mets délicat.
Les langoustines ont une chair blanche et charnue juteuse, légèrement sucrée et maigre dans la queue et le corps.
Lors du choix des langoustines, nous veillons à une couleur orange claire.
Et vous rencontrez également les éléments suivants. Je suppose que la plupart des lecteurs savent ce qu’est une crevette:
Les crevettes sont un délice qui se marie bien avec le vin blanc et la sauce au beurre.
De la viande de crevette tendre peut être ajoutée aux pâtes.
Lorsqu’elles sont bouillies, les crevettes changent de couleur en rouge.
Le fait que la langoustine apparaisse avec des mots comme délicatesse, viande et pâtes pourrait suggérer que la langoustine est une sorte de crustacé comestible semblable à une crevette. Ainsi, on peut définir un mot en fonction de l’environnement dans le quel il se trouve, tel que l’ensemble des contextes dans les quel sil apparaît, les mots voisins.
Comment pouvons-nous transformer ces observations en quelque chose de significatif pour un programme informatique? Nous pouvons construire un modèle similaire au sac de mots. Mais au lieu de documents, nous allons étiqueter les colonnes avec des mots. Il est courant d’utiliser de petits contextes au tour de quatre mots autour d’un mot cible. Dans ce cas, chaque cellule du modèle représente le nombre d’occurrences du mot de colonne dans une fenêtre contextuelle (par exemple, plus de moins quatre mots) autour du mot de ligne. Examinons ces fenêtres de quatre mots (l’exemple du livre Jurafsky& Martin, Traitement de la parole et du langage):
Pour chaque mot, nous collectons les comptes (à partir des fenêtres au tour de chaque occurrence) des occurrences de mots de contexte. Et nous obtenons la matrice mot-mot co-occurrence semblable à celle que nous avons déjà vue précédemment. Vous pouvez remarquer que « numérique » et « information » se ressemblent davantage que « abricot ». Notez que le nombre de mots peut être remplacé par d’autres mesures, telles que des informations mutuelles ponctuelles.
Chaque mot et sa sémantique sont représentés par un vecteur. Les propriétés sémantiques de chaque mot sont déterminées par ses voisins, c’est-à-dire par les contextes typiques dans lesquels le mot apparaît. Un tel modèle peut facilement capturer la synonymie et la relation de mot. Les vecteurs de deux mots similaire s’apparaîtront proches l’un de l’autre. Et les vecteurs des mots qui apparaissent dans le même champ de sujet formeront des groupes dans l’espace.
Il n’y a pas de magie derrière la recherche sémantique. La différence conceptuelle réside dans le fait que les mots sont représentés comme des intégrations vectorielles mais pas comme des éléments lexicaux (chaînes de caractères).S
Les modèles sémantiques permettent de capturer des synonymes, des mots associés et des cadres sémantiques. Un cadre sémantique est un ensemble de mots qui désignent des perspectives ou des participants à un type d’événement particulier. Par exemple, le cadre sémantique « 5 heures du thé » peut inclure tradition, thé, tasse, bouilloire, cuillère, sucre, boisson, pauvre, infusion, etc.
Lors de la création de nouveaux contenus, il peut être utile de penser à la dimension des cadres sémantiques. C’est à dire. N’oubliez pas le cadre sémantique pour le quel vous souhaitez classer votre page, et non un mot clé en particulier.
Les moteurs de recherche ont mieux réussi à extraire des informations des pages Web, mais il est toujours judicieux de leur donner des astuces à l’aide de balises de données structurées.
Round-up
La linguistique informatique est une science passionnante et en évolution rapide. Les concepts présentés dans cet article ne sont ni nouveaux ni révolutionnaires. Mais ils sont plutôt simples et permettent d’obtenir une vue de base de haut niveau sur le problème.