2010-08-31 14 views
14

Estoy investigando un poco sobre cómo agrupar artículos en 'noticias' al estilo de Google News.Algoritmo de agrupamiento incremental para agrupar artículos de noticias?

Al ver las preguntas anteriores aquí sobre el tema, a menudo me parece recomendable simplemente sacar un vector de palabras de un artículo, ponderar algunas de las palabras más si están en ciertas partes del artículo (por ejemplo, el titular), y luego usar algo así como un algoritmo k-means para agrupar los artículos.

Pero esto lleva a un par de preguntas:

  • Con k-medias, ¿cómo se sabe de antemano cuánto k debe ser? En un entorno de noticias dinámico, puede tener un número muy variable de historias, y no sabrá de antemano cuántas historias representa una colección de artículos.

  • Con algoritmos de agrupación jerárquica, ¿cómo se decide qué clústeres usar como sus historias? Tendrás grupos en la parte inferior del árbol que son solo artículos individuales, que obviamente no querrás usar, y un grupo en la raíz del árbol que tiene todos los artículos, que de nuevo no querrás ... pero ¿cómo sabes qué conglomerados intermedios deberían usarse para representar historias?

  • Finalmente, ya sea con k-medias o algoritmos jerárquicos, la mayoría de la literatura que he leído parece suponer que tiene una colección preestablecida de documentos que desea agrupar, y los agrupa todos a la vez. Pero ¿qué ocurre con una situación en la que tienes nuevos artículos que llegan de vez en cuando? ¿Lo que pasa? ¿Tiene que agrupar todos los artículos desde cero, ahora que hay uno adicional? Es por eso que me pregunto si hay enfoques que le permitan 'agregar' artículos a medida que avanza sin volver a agruparse desde cero. No puedo imaginar que sea muy eficiente.

Respuesta

2

Haría una búsqueda de algoritmos de agrupación K-means adaptativos. Hay una buena sección de investigación dedicada a los problemas que describes. Aquí hay uno como paper (pdf)

+0

Gracias Eric! Ese es un documento útil :) Responde al problema de predeterminar el número de clústeres, y supongo que la elección del umbral es bastante crítica en términos de la calidad de los clústeres ... pero es algo que se puede experimentar con. Me pregunto sin embargo ... ¿sabes si este algoritmo funcionaría bien en un contexto incremental? Quiero decir, si aparece un artículo nuevo y lo asigno a un clúster en función de la menor distancia a los clústeres existentes, ¿dará como resultado el mismo resultado de volver a generar los clústeres desde cero o un resultado que sea para todos los efectos? tan bueno'? – Peter

+0

Según su párrafo de conclusión, creo que la respuesta es sí, funcionará "tan bien" como si hubiera vuelto a calcular los conglomerados partiendo de cero suponiendo que su cálculo de distancia se realiza correctamente. No creo que te tome demasiado tiempo implementar un prototipo en un lenguaje de scripting (fácil de analizar muchos formatos de datos rápidamente, y proporciona buenas bibliotecas para visualización de clusters). Entonces podrías tener un patrón de estrategia, una estrategia usando el k-means adaptativo y una estrategia usando el k-means normal que se recalcula cada vez. –

+0

k-vecinos más cercanos pueden ayudar con la agrupación en línea de nuevos artículos. – crizCraig

3

Trabajé en una empresa de nueva creación que creó exactamente esto: un motor de agrupamiento incremental para artículos de noticias. Basamos nuestro algoritmo en este documento: Agrupación de documentos web utilizando el gráfico de índice de documentos (http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=4289851). Funcionó bien para nosotros por 10K artículos/día.

Tiene dos ventajas principales: 1) Es incrementales, que aborda el problema que tiene con tener que lidiar con una serie de artículos entrantes (en lugar de agrupar todos a la vez) 2) Se utiliza el modelado basado en la frase, en lugar de simplemente "bolsa de palabras", lo que resulta en una precisión mucho mayor.

Una búsqueda en Google aparece http://www.similetrix.com, pueden tener lo que estás buscando.

Cuestiones relacionadas