La lisibilité consiste principalement en des heuristiques qui "fonctionnent bien" dans de nombreux cas.
J'ai écrit quelques articles de recherche sur ce sujet et je voudrais expliquer pourquoi il est facile de trouver une solution qui fonctionne bien et quand il devient difficile de se rapprocher de 100% de précision.
Il semble y avoir une loi linguistique sous-jacente au langage humain qui se manifeste également (mais pas exclusivement) dans le contenu des pages Web, qui sépare déjà assez clairement deux types de texte (texte intégral ou non intégral ou, grosso modo, " contenu principal "vs" passe-partout ").
Pour obtenir le contenu principal du HTML, il suffit dans de nombreux cas de ne conserver que les éléments de texte HTML (c'est-à-dire des blocs de texte qui ne sont pas interrompus par du balisage) qui comptent plus de 10 mots environ. Il semble que les humains choisissent entre deux types de texte («court» et «long», mesurés par le nombre de mots qu'ils émettent) pour deux motivations différentes d'écriture de texte. Je les appellerais des motivations «de navigation» et «d'information».
Si un auteur veut vous rapidement obteniez ce qui est écrit, il utilise du texte "de navigation", c'est-à-dire quelques mots (comme "STOP", "Lisez ceci", "Cliquez ici"). C'est le type de texte le plus important dans les éléments de navigation (menus, etc.)
Si un auteur veut que vous compreniez profondément ce qu'il veut dire, il utilise de nombreux mots. De cette manière, l'ambiguïté est levée au prix d'une augmentation de la redondance. Le contenu de type article appartient généralement à cette classe car il ne contient que quelques mots.
Bien que cette séparation semble fonctionner dans une pléthore de cas, elle devient délicate avec les titres, les phrases courtes, les clauses de non-responsabilité, les pieds de page de copyright, etc.
Il existe des stratégies et des fonctionnalités plus sophistiquées qui aident à séparer le contenu principal du passe-partout. Par exemple, la densité des liens (nombre de mots dans un bloc qui sont liés par rapport au nombre total de mots dans le bloc), les caractéristiques des blocs précédents / suivants, la fréquence d'un texte de bloc particulier dans le Web «entier», le Structure DOM du document HTML, image visuelle de la page, etc.
Vous pouvez lire mon dernier article " Détection de plaques chauffantes à l'aide des fonctionnalités de texte peu profond " pour obtenir un aperçu d'un point de vue théorique. Vous pouvez également regarder la vidéo de ma présentation sur VideoLectures.net.
La «lisibilité» utilise certaines de ces fonctionnalités. Si vous regardez attentivement le journal des modifications SVN, vous verrez que le nombre de stratégies variait au fil du temps, tout comme la qualité d'extraction de Readability. Par exemple, l'introduction de la densité de liens en décembre 2009 a beaucoup contribué à l'amélioration.
À mon avis, cela n'a donc aucun sens de dire "La lisibilité fait comme ça", sans mentionner le numéro de version exact.
J'ai publié une bibliothèque d'extraction de contenu HTML Open Source appelée Chaudière , qui fournit plusieurs stratégies d'extraction différentes. Selon le cas d'utilisation, l'un ou l'autre des extracteurs fonctionne mieux. Vous pouvez essayer ces extracteurs sur les pages de votre choix à l'aide de l'application Web-chaudière compagnon sur Google AppEngine.
Pour laisser parler les nombres, consultez la page " Benchmarks " sur le wiki de la chaudière qui compare certaines stratégies d'extraction, y compris la chaudière, la lisibilité et Apple Safari.
Je dois mentionner que ces algorithmes supposent que le contenu principal est en fait du texte intégral. Il y a des cas où le "contenu principal" est autre chose, par exemple une image, un tableau, une vidéo, etc. Les algorithmes ne fonctionneront pas bien dans de tels cas.
À votre santé,
Christian