[Adjunto código fuente completo y documentación] Sistema de recuperación de noticias basado en python
1.1 Requisitos del sistema
Sistema de recuperación de noticias: recopilación específica de no menos de 4 sitios web o canales de noticias sociales chinos para realizar la recuperación automática de información de noticias y comentarios de estos sitios web Rastrear, extraer, indexar y recuperar. Este proyecto no utiliza marcos maduros de código abierto como lucene y Goose.
1.2 Idea y marco del sistema
La idea general de implementación del sistema se muestra en la Figura 1:
Los pasos principales de un sistema de búsqueda completo son :
p>
Rastrear páginas web de noticias para obtener el corpus.
Extrae el contenido principal de la noticia y obtiene datos xml estructurados.
El método de construcción del índice de escaneo de memoria de un solo paso es construir el índice invertido para el módulo de recuperación.
El usuario ingresa una consulta y se le devuelven los documentos relevantes.
2 Plan de diseño
2.1 Captura de noticias
2.1.1 Introducción al algoritmo
Este módulo se basa en las tres fuentes principales de Sohu, NetEase y Tencent Obtenga noticias de los principales sitios de noticias y sitios oficiales de noticias de referencia. Se diseñan diferentes modos de rastreo según la estructura de su sitio web. Dado que las estructuras del sitio web son similares, se seleccionan los siguientes dos representantes típicos para su introducción:
(1) Sohu News
Además de la página de inicio normal, Sohu News también tiene una lista oculta de noticias. páginas, como /1 /0903/62/Subject 212846206.shtml.
(2) NetEase News
NetEase News y Tencent News se pueden clasificar como páginas de inicio de noticias generales. Utilizamos una estrategia de rastreo recursivo que comienza desde la página de inicio de noticias. Tenga en cuenta que las páginas de inicio de noticias suelen ser páginas web estáticas. html, por lo que registramos todo lo que comienza con . html y eliminar contenido duplicado cuando se busca una cierta cantidad de contenido.
Para algunas páginas web mal clasificadas que no son noticias, el procesamiento de tolerancia a fallos consiste en comprobar la etiqueta de texto de noticias.
será eliminado.
En la página de texto de noticias, nos centramos en el contenido, el tiempo y la adquisición de comentarios.
2.1.2 Innovación
Realicé la captura de comentarios cargados dinámicamente de páginas web de noticias como Sohu News Comments.
Sin la ayuda de herramientas de rastreo de noticias de código abierto, logré un rastreo eficiente de los títulos de las noticias, el texto, la hora, el contenido de los comentarios y los números de los comentarios.
2.2 Construcción de índice
Para la segmentación de palabras, utilizamos el componente de segmentación de palabras chinas jieba de código abierto para completarla. La segmentación de palabras Jieba puede cortar una oración china en términos, de modo que TF tf. y salió df que se puede contar.
Para encontrar las palabras vacías, este paso se completa después de la segmentación de palabras de Street Fighter.
Para el almacenamiento de tablas de registros invertidos, los diccionarios se almacenan mediante árboles B o hashes, y las tablas de registros invertidos se almacenan mediante listas vinculadas adyacentes, lo que puede reducir en gran medida el espacio de almacenamiento.
El algoritmo de construcción de índice invertido adopta el método de construcción de índice de escaneo de un solo paso basado en memoria (SPIMI), es decir, cada noticia se segmenta por turno. Si aparece un nuevo término, se inserta en el. diccionario, de lo contrario será La información del documento se anexa a la tabla de publicaciones correspondiente al término.
2.3 Módulo de búsqueda
2.3.1 Modo de búsqueda
(1) Búsqueda por palabra clave
La consulta se basa en las palabras clave ingresadas por el usuario devolverá la noticia correspondiente. Primero, la segmentación de palabras de Street Fighter se realiza en función de la consulta del usuario, se registra el número de palabras después de la segmentación de palabras y se almacena en forma de diccionario.
El código fuente completo y la documentación detallada se han subido a la plataforma tecnológica WRITE-BUG. Si lo necesita, sírvase usted mismo:
/article/3122.html