php - quitar - Agrupar contenidos de noticias similares como en NOTICIAS DE GOOGLE
notificaciones de noticias google chrome (5)
No puedo administrar las fuentes RSS fácilmente debido a un número abrumador de historias nuevas / contenidos de noticias similares publicados en varios sitios de noticias. Para temas tales como noticias mundiales y noticias de negocios, muchas de las historias son redundantes, lo que agrega una carga para los lectores a fin de determinar qué historias ya han leído. Para lidiar con los problemas gemelos de la inundación y la redundancia, necesito desarrollar un código que reduzca la cantidad de elementos para leer y utilice la información superpuesta a temas interesantes divinos.
Sería más fácil si pudiera Agrupar contenidos de noticias similares como en GOOGLE NEWS / StackOverflow y presentarlo a los usuarios.
Creo que deberías probar el Coeficiente de Jaccard o la Similitud de Jaccard
El índice de Jaccard, también conocido como coeficiente de similitud de Jaccard (coeficiente de comunión originalmente acuñado por Paul Jaccard), es una estadística utilizada para comparar la similitud y la diversidad de conjuntos de muestras. El coeficiente de Jaccard mide la similitud entre los conjuntos de muestras finitas y se define como el tamaño de la intersección dividido por el tamaño de la unión de los conjuntos de muestras. Coeficiente de Jaccarrd.
Creo que Facebook usa esto así como algunas tiendas de comercio electrónico para agrupar sus productos relacionados, publicaciones, etc. Puede consultar estos otros enlaces aquí en para obtener una guía.
Este es definitivamente un problema no tan fácil de resolver que se puede resolver mediante:
- funciones inteligentes de análisis de texto
- potencia de hardware en bruto
- ambos
- pruebas, pruebas, pruebas
- puesta a punto al final
En primer lugar, agruparía diferentes fuentes de noticias en una categoría relativamente amplia. Puede determinar fácilmente que una fuente de noticias de Tech no publicará noticias en la categoría económica. (O será, ese es el problema.)
La mayoría de los casos, el título de noticias no se tocará, se mantiene en su forma original a lo sumo. Por lo tanto, la categoría, el título y la fecha de publicación son un buen punto de partida para agrupar noticias en una.
Si detecta problemas con los métodos anteriores, necesita algunos ajustes bajo el capó.
Tal vez necesite leer el artículo completo y comparar dos (miles de) artículos palabra por palabra.
- Hay muchas palabras clave que pueden distorsionar la comparación, por lo que deberá ignorarlas.
- Es posible que desee definir sinónimos (J Lo = Jennifer Lopez)
Si los textos sin procesar de las noticias son similares (puede definir un valor de umbral), puede volver a comparar los otros factores (descritos anteriormente).
Algunas fuentes de noticias que proporcionan un buen etiquetado en la fuente RSS, tal vez usted también puede usar esto pero no confiar en él.
Y recuerde, necesitará muchos ajustes al inicio (alrededor de 1 año) y luego estará bien.
Leí en alguna parte, pero no tengo una referencia, que Google News utiliza una variante de MinHash para detectar publicaciones de noticias casi duplicadas. Y muchos de ellos son casi idénticos, provienen de una agencia de prensa solo con pequeñas adaptaciones de los periódicos.
http://en.wikipedia.org/wiki/MinHash
tiene una referencia y la declaración de que Google News utilizó una variante de LSH y MinHash:
Das, Abhinandan S. et al. (2007), "Personalización de las noticias de Google: filtrado colaborativo en línea escalable", Actas de la 16ª conferencia internacional sobre World Wide Web. ACM
No veo ninguna pregunta aquí, pero empezaría por desarrollar algún tipo de algoritmo de huella digital, con palabras, nombres, títulos, fechas, etc., de los artículos. Luego revisaría la similitud de las huellas digitales para encontrar artículos idénticos, tal vez por algún tipo de trabajo MapReduce para distribuir fácilmente el trabajo a diferentes servidores en un clúster.
Si desea algo de inspiración, consulte el código fuente de Google Living Stories: http://code.google.com/p/living-stories/
Tendrá que hacer algún tipo de agrupación de documentos. Esto involucra:
- Desglose los artículos en "características" (por ejemplo, un vector de palabras clave TF-IDF)
- Tener una métrica de similitud (por ejemplo, la similitud de coseno, que puede tomar dos artículos y decidir qué tan similares son)
- Un algoritmo de agrupación en clúster, que utiliza la métrica de similitud para dividir los artículos en agrupaciones.
Dado que se trata de noticias y tiene nuevos artículos, probablemente necesitará un algoritmo "en línea" en lugar de uno por lotes. Busque por ejemplo DBSCAN incremental.