La legibilidad consiste principalmente en heurísticas que "de alguna manera funcionan bien" en muchos casos.
He escrito algunos artículos de investigación sobre este tema y me gustaría explicar los antecedentes de por qué es fácil encontrar una solución que funcione bien y cuándo se vuelve difícil acercarse al 100% de precisión.
Parece haber una ley lingüística subyacente en el lenguaje humano que también (pero no exclusivamente) se manifiesta en el contenido de la página web, que ya separa claramente dos tipos de texto (texto completo y no texto completo o, más o menos, " contenido principal "frente a" repetitivo ").
Para obtener el contenido principal de HTML, en muchos casos es suficiente mantener solo los elementos de texto HTML (es decir, bloques de texto que no son interrumpidos por marcas) que tienen más de aproximadamente 10 palabras. Parece que los humanos eligen entre dos tipos de texto ("corto" y "largo", medido por el número de palabras que emiten) por dos motivaciones diferentes para escribir un texto. Yo las llamaría motivaciones "de navegación" e "informativas".
Si un autor quiere que usted obtenga rápidamente lo que está escrito, él / ella usa texto de "navegación", es decir, pocas palabras (como "DETENER", "Leer esto", "Haga clic aquí"). Este es el tipo de texto más destacado en los elementos de navegación (menús, etc.)
Si un autor quiere que comprendas profundamente lo que quiere decir, usa muchas palabras. De esta forma, se elimina la ambigüedad a costa de un aumento de la redundancia. El contenido similar a un artículo generalmente se incluye en esta clase, ya que tiene más de unas pocas palabras.
Si bien esta separación parece funcionar en una gran cantidad de casos, se vuelve complicada con titulares, oraciones cortas, descargos de responsabilidad, pies de página de derechos de autor, etc.
Hay estrategias y funciones más sofisticadas que ayudan a separar el contenido principal del estándar. Por ejemplo, la densidad del enlace (número de palabras en un bloque que están vinculadas versus el número total de palabras en el bloque), las características de los bloques anteriores / siguientes, la frecuencia de un texto de bloque en particular en la Web "completa", la Estructura DOM del documento HTML, la imagen visual de la página, etc.
Puede leer mi último artículo " Detección repetitiva mediante funciones de texto superficial " para obtener información desde una perspectiva teórica. También puede ver el video de mi presentación de trabajo en VideoLectures.net.
"Legibilidad" utiliza algunas de estas características. Si observa atentamente el registro de cambios de SVN, verá que el número de estrategias varió con el tiempo, al igual que la calidad de extracción de Legibilidad. Por ejemplo, la introducción de la densidad de enlaces en diciembre de 2009 ayudó mucho a mejorar.
En mi opinión, por lo tanto, no tiene sentido decir "La legibilidad lo hace así" sin mencionar el número de versión exacto.
He publicado una biblioteca de extracción de contenido HTML de código abierto llamada boilerpipe , que proporciona varias estrategias de extracción diferentes. Dependiendo del caso de uso, uno u otro extractor funciona mejor. Puede probar estos extractores en las páginas de su elección utilizando la aplicación complementaria boilerpipe-web en Google AppEngine.
Para que los números hablen, consulte la página "Puntos de referencia " en la wiki de boilerpipe, que compara algunas estrategias de extracción, incluidas boilerpipe, Readability y Apple Safari.
Debo mencionar que estos algoritmos asumen que el contenido principal es en realidad texto completo. Hay casos en los que el "contenido principal" es otra cosa, por ejemplo, una imagen, una tabla, un video, etc. Los algoritmos no funcionarán bien en tales casos.
Salud,
cristiano