2012-01-01 19 views
16

Me encuentro teniendo que aprender cosas nuevas todo el tiempo. He estado tratando de pensar en maneras de acelerar el proceso de aprendizaje de nuevos temas. Pensé que sería estupendo si pudiera escribir un programa para analizar un artículo de Wikipedia y eliminar todo menos la información más valiosa.Resumiendo un artículo de Wikipedia

Empecé tomando el artículo de Wikipedia en PDFs y extrayendo las primeras 100 oraciones. Le di a cada oración una puntuación basada en lo valioso que pensé que era. Terminé la creación de un archivo con el siguiente formato:

<sentence> 
<value> 
<sentence> 
<value> 
etc. 

entonces Analizada este archivo y trató de encontrar diversas funciones que se correlacionen de cada frase con el valor lo había dado. Acabo de empezar a aprender sobre el aprendizaje automático y las estadísticas y todo eso, así que estoy buscando mucho por aquí. Este es mi último intento: https://github.com/JesseAldridge/Wikipedia-Summarizer/blob/master/plot_sentences.py.

Probé un montón de cosas que no parecían producir mucha correlación en absoluto - longitud de palabra promedio, posición en el artículo, etc. Casi lo único que produjo cualquier tipo de relación útil fue la longitud de la cadena (más específicamente, contar el número de letras minúsculas parecía funcionar mejor). Pero parece una especie de cojera, porque parece obvio que las oraciones más largas tendrían más probabilidades de contener información útil.

En un momento dado pensé que había encontrado algunas funciones interesantes, pero luego cuando traté de eliminar valores atípicos (contando solamente los cuartiles internos), resultaron producir peores resultados que simplemente devolver 0 por cada oración. Esto me hizo preguntarme sobre cuántas otras cosas podría estar haciendo mal ... También me pregunto si esta es incluso una buena manera de acercarse a este problema.

¿Crees que estoy en el camino correcto? ¿O es solo un mandado tonto? ¿Hay algunas deficiencias flagrantes en el código vinculado? ¿Alguien sabe de una mejor manera de abordar el problema de resumir un artículo de Wikipedia? Prefiero tener una solución rápida y sucia que algo perfecto que lleve mucho tiempo armar. Cualquier consejo general también sería bienvenido.

+0

A continuación, querrá que usemos newspeak para hacer el artículo escaneado aún más corto;) – tylerthemiler

+4

Usted es claramente demasiado viejo. Deje este tipo de cosas a los 16 años de edad http://www.wired.com/gadgetlab/2011/12/summly-app-summarization/ – ColinE

+0

:) Summly se ve bien. No puedo ejecutarlo en mi ipod, pero puedo leer las críticas. Estaban bastante mezclados. Tengo la impresión de que no funciona tan bien. –

Respuesta

13

Teniendo en cuenta que su pregunta se relaciona más con una actividad de investigación que con un problema de programación, probablemente debería consultar la literatura científica. Aquí encontrará detalles publicados de una serie de algoritmos que realizan exactamente lo que usted desea. Una búsqueda en Google de "resumen palabra clave" concluye lo siguiente:

Single document Summarization based on Clustering Coefficient and Transitivity Analysis

Multi-document Summarization for Query Answering E-learning System

Intelligent Email: Aiding Users with AI

Si se lee lo anterior, a continuación, siga las referencias que contienen, se encuentra una gran riqueza de información. Sin duda suficiente para construir una aplicación funcional.

+2

Ok, entonces tengo que crear un gráfico de dependencia basado en el análisis de relación de dependencia sintáctica y usar un coeficiente de agrupación para medir las conexiones de nodo. Entonces, es una simple cuestión de sacar triángulos de nodo y usarlos para extraer oraciones clave. ffs ... tanto por rápido y sucio. En serio, gracias por los papeles. Esa es probablemente la mejor información que podré obtener. –

+4

Oye ... acabas de resumir con éxito las palabras clave para ese artículo. ¡Quizás este es un trabajo para un turco mecánico! – ColinE

1

Sólo mis dos centavos ...

Cada vez que estoy navegando un nuevo sujeto en la Wikipedia, que normalmente realizan un "primero en amplitud" búsqueda; Me niego a pasar a otro tema hasta que haya escaneado cada uno de los enlaces con los que se conecta la página (que presenta un tema que no estoy familiarizado). Leí la primera oración de cada párrafo, y si veo algo en ese artículo que parece estar relacionado con el tema original, repito el proceso.

Si tuviera que diseñar la interfaz para un "resúmenes" Wikipedia, me

  1. siempre se imprimen todo el párrafo introductorio.

  2. Para el resto del artículo, imprima cualquier oración que tenga un enlace.

    2a. Imprima cualquier lista de enlaces separados por comas como una lista puntiaguda.

  3. Si el enlace al artículo está "expandido", imprima el primer párrafo para ese artículo.

  4. Si ese párrafo introductorio se expande, repita la lista de oraciones con enlaces.

Este proceso podría repetirse indefinidamente.

Lo que estoy diciendo es que resumir artículos de Wikipedia no es lo mismo que resumir un artículo de una revista o publicar en un blog. El acto de gatear es una parte importante del aprendizaje de conceptos introductorios rápidamente a través de Wikipedia, y creo que es lo mejor. Normalmente, la mitad inferior de los artículos es donde comienzan a aparecer las etiquetas citation needed, pero la comunidad considera que la primera mitad de un artículo determinado es un conocimiento dado.

Cuestiones relacionadas