análisis del código fuente readability-lxml (4): resumen

score = (
      class_weight + name_weight + 
      children_comma_count + 1 + min(children_text_len //  , 3)
) / (1 - link_density) 

(1) Los elementos de texto son elementos que solo pueden aparecer en el texto, como <h1>~<h6> <p> <pre> <blockquote>estos tres, es absolutamente imposible tener una barra de navegación o algo así, y estas cosas rara vez aparecen en la barra lateral.

(2) El contenedor de texto es un elemento que contiene el texto y no contiene elementos distintos del texto. Podría ser <div> <section> <article> <main>, podría ser <td> <span>algo (poco común). Creo que solo puedes elegir aquí. La legibilidad solo se pondera y no hay un límite estricto en el nombre de la etiqueta.

(3) La distancia entre el elemento y el contenedor, la Legibilidad está limitada a 2, es decir, se toman el nodo padre y el nodo abuelo del elemento de texto. Creo que se puede formular un conjunto de reglas para atenuar según la distancia, por ejemplo, el índice de atenuación es la mitad de la distancia.

(4) La identificación y el nombre de la clase son una base de juicio importante. Los nombres se dividen en palabras clave positivas y negativas, con ponderación positiva y negativa. Y cada palabra clave también se divide en posible y cierto, pero el significado es todo lo contrario. Las palabras clave determinadas se utilizan para sumar y restar pesos, y las posibles palabras clave se utilizan para la detección. Por ejemplo, las etiquetas para posibles palabras clave positivas se mantienen, mientras que las etiquetas para posibles palabras clave negativas se eliminan definitivamente.

Sin embargo, en el caso de que no se encuentren etiquetas candidatas, volverá a intentarlo sin eliminar las posibles palabras clave negativas. Este parece prolijo y problemático. Por ejemplo, asigne diferentes ponderaciones a ciertas y posibles palabras clave para evitar el reelaboración secundaria causada por la eliminación de una determinada palabra clave.

(5) Se puede ver en la fórmula que la legibilidad también tiene en cuenta la longitud del texto, el número de comas y la densidad del enlace para distinguir entre navegación y texto. Creo que se puede considerar la densidad del texto.

(6) La legibilidad también considera que los hermanos de elementos candidatos también pueden ser candidatos, es decir, el texto está contenido en múltiples <div>casos.

Supongo que te gusta

Origin blog.csdn.net/wizardforcel/article/details/131656072
Recomendado
Clasificación