60 votes

Comment les moteurs de recherche trouvent-ils un contenu pertinent ?

Comment Google trouve-t-il du contenu pertinent lorsqu'il analyse le Web ?

Disons, par exemple, que Google utilise la bibliothèque DOM native de PHP pour analyser le contenu. Quelles méthodes lui permettraient de trouver le contenu le plus pertinent d'une page Web ?

Je pense qu'elle rechercherait tous les paragraphes, les classerait par leur longueur, puis, à partir des chaînes de recherche et des paramètres de requête possibles, déterminerait le pourcentage de pertinence de chaque paragraphe.

Disons que nous avons cette URL :

http://domain.tld/posts/stackoverflow-dominates-the-world-wide-web.html

À partir de cette URL, j'ai compris que le nom du fichier HTML était d'une grande importance, et j'ai pu voir à quel point cette chaîne se rapproche de tous les paragraphes de la page !

Un très bon exemple de cela serait le partage Facebook, lorsque vous partagez une page. Facebook bots rapidement le lien et ramène des images, du contenu, etc, etc.

Je pensais qu'une sorte de méthode de calcul serait la meilleure, pour déterminer le pourcentage de pertinence en fonction des éléments environnants et des métadonnées.

Existe-t-il des livres ou des informations sur les meilleures pratiques en matière d'analyse syntaxique du contenu, sur la manière d'obtenir le meilleur contenu d'un site, sur les algorithmes dont on peut parler ou sur une réponse approfondie ?


Voici quelques idées que j'ai en tête :

  • Trouver tous les paragraphes et les classer par longueur de texte brut
  • En quelque sorte, trouvez la largeur et la hauteur de div conteneurs et ordre par (W+H) - @Benoit
  • Vérifiez les méta-mots-clés, le titre, la description et la pertinence des paragraphes.
  • Trouver toutes les balises d'images et les classer par ordre de grandeur et de longueur des nœuds par rapport au paragraphe principal.
  • Vérifiez les données des objets, comme les vidéos, et comptez les nœuds à partir du plus grand paragraphe / div de contenu.
  • Travailler les ressemblances à partir des pages précédentes analysées

La raison pour laquelle j'ai besoin de ces informations :

Je suis en train de construire un site web où les webmasters nous envoient des liens et ensuite nous listons leurs pages, mais je veux que le webmaster soumette un lien, puis je vais et crawle cette page en trouvant les informations suivantes.

  • Une image (le cas échéant)
  • Un paragraphe < 255 de la meilleure tranche de texte
  • Mots-clés qui seraient utilisés pour notre moteur de recherche, (style Stack Overflow)
  • Métadonnées : mots-clés, description, toutes les images, journal des modifications (à des fins de modération et d'administration).

J'espère que vous comprenez que ce projet n'est pas destiné à un moteur de recherche, mais que la façon dont les moteurs de recherche abordent la découverte de contenu s'inscrit dans le même contexte que celui pour lequel j'ai besoin de ce système.

Je ne demande pas de secrets commerciaux, je demande quelle serait votre approche personnelle de la question.

29voto

The Surrican Points 12882

C'est une question très générale mais un sujet très intéressant ! Définitivement upvoted :) Cependant, je ne suis pas satisfait des réponses fournies jusqu'à présent, j'ai donc décidé d'écrire une réponse assez longue à ce sujet.

La raison pour laquelle je ne suis pas satisfait est que les réponses sont fondamentalement toutes vraies (j'aime particulièrement la réponse de kovshenin (+1), qui est très liée à la théorie des graphes...), mais elles sont soit trop spécifiques sur certains facteurs, soit trop générales.

C'est comme si vous demandiez comment faire cuire un gâteau et que vous obteniez les réponses suivantes :

  • Tu fais un gâteau et tu le mets dans le four.
  • Il faut vraiment du sucre dedans !
  • Qu'est-ce qu'un gâteau ?
  • Le gâteau est un mensonge !

Vous ne serez pas satisfaits parce que vous ne voulez pas savoir ce qui fait un bon gâteau. Et bien sûr, il y a beaucoup de recettes.

Bien sûr, Google est l'acteur le plus important, mais, selon le cas d'utilisation, un moteur de recherche peut inclure des facteurs très différents ou les pondérer différemment.

Par exemple, un moteur de recherche permettant de découvrir de nouveaux artistes de musique indépendants peut mettre un malus sur les éléments suivants les sites web d'artistes comportant de nombreux liens externes.

Un moteur de recherche classique fera probablement exactement le contraire pour vous fournir des "résultats pertinents".

Il y a (comme déjà dit) plus de 200 facteurs qui sont publiés par Google. Les webmasters savent donc comment optimiser leurs sites web. Il y en a très probablement beaucoup d'autres dont le public n'a pas connaissance (dans le cas de Google).

Mais dans le terme très borad et abstrait SEO L'optimalisation permet généralement de diviser les éléments importants en deux groupes :

  1. Dans quelle mesure la réponse correspond-elle à la question ? Ou bien : Dans quelle mesure le contenu de la page correspond-il aux termes recherchés ?

  2. Quelle est la popularité/bienveillance de la réponse ? Ou bien : Quel est le pagerank ?

Dans les deux cas, l'important est que je ne parle pas de sites web ou de domaines entiers, mais de pages uniques avec une URL unique.

Il est également important que le pagerank ne représente pas tous les facteurs, mais seulement ceux que Google classe dans la catégorie Popularité. Et par bon, j'entends d'autres facteurs qui n'ont rien à voir avec la popularité.

Dans le cas de Google, la déclaration officielle est qu'ils veulent donner des résultats pertinents à l'utilisateur. Cela signifie que tous les algorithmes seront optimisés pour répondre aux besoins de l'utilisateur.

Après cette longue introduction (je suis heureux que vous soyez encore avec moi...), je vais donc vous donner une liste de facteurs que je considère comme très importants (pour le moment) :

Catégorie 1 (dans quelle mesure la réponse correspond-elle à la question ?

Vous remarquerez que beaucoup de choses dépendent de la structure du document !

  • La page traite principalement de la question exacte.

Signification : les mots d'interrogation apparaissent dans le texte du titre de la page ou dans les paragraphes de l'en-tête. Il en va de même pour la position de ces mots-clés. Plus ils sont placés tôt dans la page, mieux c'est. Répétés souvent aussi (mais pas trop, ce qui est considéré comme du bourrage de mots-clés).

  • L'ensemble du site web traite du sujet (les mots-clés apparaissent dans le domaine/sous-domaine)

  • Les mots sont un sujet important dans cette page (les textes d'ancrage des liens internes sautent aux positions du mot clé ou les textes d'ancrage/liens contiennent le mot clé).

  • Il en va de même si des liens externes utilisent les mots-clés dans le texte du lien pour renvoyer à cette page.

Catégorie 2 (quelle est l'importance/popularité de la page ?)

Vous remarquerez que tous les facteurs ne tendent pas vers cet objectif précis. Certains sont inclus (surtout par Google) juste pour donner un coup de pouce aux pages, qui... eh bien... qui l'ont mérité ou gagné.

  • Le contenu est roi !

L'existence d'un contenu unique que l'on ne trouve pas ou très peu dans le reste du web donne un coup de pouce. Cela se mesure principalement par des combinaisons non ordonnées de mots sur un site web qui sont généralement très peu utilisés (mots importants). Mais il existe également des méthodes beaucoup plus sophistiquées.

  • Récence - plus c'est récent, mieux c'est

  • Changement historique (combien de fois la page a été mise à jour dans le passé. Le changement est bon.)

  • Popularité des liens externes (combien de liens en entrée ?)

Si une page renvoie à une autre page, le lien a plus de valeur si la page elle-même a un pagerank élevé.

  • Diversité des liens externes

fondamentalement des liens provenant de domaines racine différents, mais d'autres facteurs jouent également un rôle. Des facteurs tels que la distance géographique entre les serveurs web des sites liés (selon leur adresse IP).

  • Rang de confiance

Par exemple, si des sites importants, fiables et établis, dont le contenu est rédigé, établissent un lien vers vous, vous obtenez un rang de confiance. C'est pourquoi un lien de Le New York Times vaut beaucoup plus qu'un nouveau site Web étrange, même si son PageRank est plus élevé !

  • Confiance dans le domaine

L'ensemble de votre site Web donne un coup de pouce à votre contenu si votre domaine est fiable. Différents facteurs entrent en ligne de compte. Bien sûr, les liens vers votre domaine sont établis à partir de sites de confiance, mais il est également utile que vous vous trouviez dans le même centre de données que des sites importants.

  • Liens spécifiques au sujet dans.

Si les sites web qui peuvent être rattachés à un sujet renvoient vers vous et que la requête peut également être rattachée à ce sujet, c'est bon.

  • Distribution des liens dans le temps.

Si vous avez gagné beaucoup de liens en un court laps de temps, cela vous sera bénéfique à ce moment-là et dans un avenir proche. Mais pas si bien plus tard dans le temps. Si vous gagnez des liens lentement et régulièrement, cela vous sera bénéfique pour le contenu qui est "intemporel".

  • Liens provenant de domaines restriturés

Un lien à partir d'un .gov Le domaine a une grande valeur.

  • Comportement des utilisateurs en matière de clics

Quel est le taux de clics de vos résultats de recherche ?

  • Temps passé sur le site

Suivi de Google Analytics, etc. Il y a également un suivi si l'utilisateur clique en arrière ou clique sur un autre résultat après avoir ouvert le vôtre.

  • Données collectées sur les utilisateurs

Votes, évaluation, etc., références dans Gmail, etc.

Je vais maintenant introduire une troisième catégorie, et un ou deux points de ce qui précède entreraient dans cette catégorie, mais je n'y ai pas pensé... La catégorie est :

** Quelle est l'importance/la qualité de votre site web en général ?

Toutes vos pages seront classées un peu plus haut en fonction de la qualité de vos sites web.

Les facteurs sont les suivants :

  • Bonne architecture du site (facilité de navigation, structuration, sitemaps, etc...)

  • L'ancienneté (les domaines existant depuis longtemps ont plus de valeur).

  • Informations sur l'hébergeur (quels autres sites web sont hébergés près de chez vous ?

  • Fréquence de recherche de votre nom exact.

Enfin, je tiens à dire qu'un grand nombre de ces facteurs peuvent être enrichis par la technologie sémantique et que de nouveaux facteurs peuvent être introduits.

Par exemple, quelqu'un peut chercher Titanic et vous avez un site web sur les icebergs ... qui peut être mis en corrélation et être reflété.

Identifiants sémantiques nouvellement introduits. Par exemple OWL Les tags peuvent avoir un impact énorme à l'avenir.

Par exemple, un blog sur le film Titanic pourrait mettre un signe sur cette page indiquant qu'il s'agit du même contenu que celui de l'article de Wikipedia sur le même film.

Ce type de liaison est actuellement en cours de développement et de mise en place et personne ne sait comment il sera utilisé.

Peut-être que le contenu dupliqué est filtré, et que seul le plus important du même contenu est affiché ? Ou peut-être l'inverse ? Que vous obtenez un grand nombre de pages qui correspondent à votre requête. Même si elles ne contiennent pas vos mots-clés ?

Google applique même des facteurs de pertinence différente en fonction du sujet de votre requête de recherche !

21voto

John Mee Points 12004

C'est délicat, mais je vais tenter le coup :

Une image (le cas échéant)

  • La première image de la page
  • l'image dont le nom comprend les lettres "logo".
  • l'image dont le rendu est le plus proche du haut-gauche (ou du haut-droit)
  • l'image qui apparaît le plus souvent sur d'autres pages du site
  • une image plus petite que certaines dimensions maximales

Un paragraphe < 255 de la meilleure tranche de texte

  • le contenu de la balise titre
  • contenu de la balise meta DeepL content
  • contenu de la première balise h1
  • contenu de la première balise p

Mots-clés qui seraient utilisés pour notre moteur de recherche, (style stack overflow)

  • sous-chaîne du nom de domaine
  • sous-chaîne de l'url
  • sous-chaîne de la balise titre
  • proximité entre le terme et le mot le plus courant de la page et le haut de la page

Métadonnées : mots-clés, description, toutes les images, journal des modifications (à des fins de modération et d'administration).

  • ak ! gag ! Erreur de syntaxe.

11voto

kovshenin Points 4475

Je ne travaille pas chez Google, mais il y a environ un an, j'ai lu qu'ils avaient plus de 200 facteurs pour classer leurs résultats de recherche. Bien sûr, le facteur le plus important est la pertinence, et votre question est donc très intéressante dans ce sens.

Qu'est-ce que la pertinence et comment la calculer ? Il existe plusieurs algorithmes et je parie que Google a le sien, mais ceux que je connais sont les suivants Corrélation de Pearson y Distance euclidienne .

Un bon livre que je suggère sur ce sujet (pas nécessairement sur les moteurs de recherche) est le suivant Programmation de l'intelligence collective par Toby Segaran (O'Reilly). Quelques exemples tirés du livre montrent comment récupérer des données à partir de sites Web tiers via des API ou le screen-scraping, et comment trouver des entrées similaires, ce qui est assez intéressant.

Quoi qu'il en soit, revenons à Google. Les autres techniques de pertinence sont bien sûr la recherche plein texte et vous pouvez vous procurer un bon livre sur MySQL ou Sphinx. @Chaoley a suggéré TSEP, qui est également très intéressant.

Mais vraiment, je connais des gens d'un moteur de recherche russe appelé Yandex ici, et tout ce qu'ils font est sous NDA, donc je suppose que vous pouvez vous approcher, mais vous ne pouvez pas obtenir la perfection, sauf si vous travaillez chez Google ;)

A la vôtre.

3voto

flixic Points 43

Répondre réellement à votre question (et pas seulement de manière générale sur les moteurs de recherche) :

Je pense qu'aller un peu comme Instapaper le fait serait la meilleure option.

Logique derrière instapaper (je ne l'ai pas créé donc je ne connais certainement pas les rouages internes, mais il est assez facile de prédire comment il fonctionne) :

  1. Trouvez le plus gros du texte dans des éléments de type texte (l'utilisation des balises de paragraphe, bien que très élégante, ne fonctionnera pas avec ces sites pourris qui utilisent des div au lieu de p). En gros, vous devez trouver un bon équilibre entre les éléments de bloc (divs, p, etc.) et la quantité de texte. Fixez un seuil : si un nombre X de mots ne sont pas divisés par les balises, ce texte appartient au corps du texte principal. Ensuite, élargissez aux frères et sœurs en maintenant le seuil de texte / balises d'une manière ou d'une autre.

  2. Une fois que vous avez fait la partie la plus difficile - trouver quel texte appartient à l'article réel - cela devient assez facile. Vous pouvez trouver la première image autour de ce texte et l'utiliser comme vignette. De cette façon, vous éviterez les publicités, car elles ne seront pas si proches du corps du texte du point de vue du balisage.

  3. Enfin, la partie amusante consiste à trouver des mots-clés. Vous pouvez faire des tas de choses : ordonner les mots par fréquence, supprimer le bruit (et, ou, etc.) et vous obtenez quelque chose de sympa. Mélangez cela avec "l'élément de texte court proéminent au-dessus de la zone de texte du corps détecté" (c'est-à-dire le titre de votre article), le titre de la page, le méta et vous obtenez quelque chose d'assez savoureux.

Toutes ces idées, si elles sont mises en œuvre correctement, seront à l'épreuve des balles, car elles ne reposent pas sur le balisage sémantique. En rendant votre code complexe, vous vous assurez que même les sites Web très mal codés seront détectés correctement.

Bien sûr, cela s'accompagne d'un inconvénient : des performances médiocres, mais je suppose qu'elles ne devraient pas être si médiocres.

Conseil : pour les sites Web de grande envergure, vers lesquels les gens font très souvent des liens, vous pouvez définir manuellement l'élément HTML qui contient le corps du texte (que je décrivais au point 1). Cela garantira l'exactitude et accélérera les choses.

J'espère que cela vous aidera un peu.

1voto

Chaoley Points 415

La plupart des moteurs de recherche recherchent le titre et la méta-description dans l'en-tête du document, puis le titre un et le contenu textuel dans le corps. Les balises alt des images et les titres des liens sont également pris en compte. Aux dernières nouvelles, Yahoo utilisait la balise meta keyword mais la plupart ne le font pas.

Vous pouvez télécharger les fichiers open source de The Search Engine Project (TSEP) sur Sourceforge. https://sourceforge.net/projects/tsep/ et regardez comment ils s'y prennent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X