Me gustaría saber si la aparición de determinadas palabras clave en un documento largo es representativa o se limita a unos pocos párrafos y el tema principal del documento es algo diferente. Creo que esto se puede comprobar agrupando las ubicaciones de las coincidencias de palabras clave en el documento. Para ello podemos utilizar un índice de palabras: por ejemplo, la 15ª o la 56ª palabra del documento. Si tenemos unos pocos clusters pequeños en comparación con el tamaño de todo el documento, entonces el tema principal del documento es probablemente algo no relacionado. Si tenemos muchos clusters pequeños o unos pocos clusters realmente grandes, entonces podemos asumir que todo el documento trata sobre las palabras clave. No tengo mucha formación en estadística, sólo aprendí k-means y sé que hay muchos otros algoritmos para la agrupación. Me gustaría saber de un experto, ¿qué piensa usted, para este tipo de datos cuáles son los mejores algoritmos?
Respuestas
¿Demasiados anuncios?La agrupación no es la mejor herramienta en este caso.
En primer lugar, sólo tienes una variable, la posición. Sobre esos datos -que están ordenados- existen técnicas mucho más potentes.
En lugar de la agrupación, lo que supongo que realmente es una prueba de hipótesis. Su hipótesis es que las localizaciones de las palabras están agrupadas. Y una hipótesis nula apropiada entonces probablemente es que las ubicaciones son uniformemente distribuido. Así que tome las posiciones de las palabras y compruebe si puede rechazar una distribución uniforme . Pero prepárate para descubrir que la mayoría de las veces no podrás rechazar la uniformidad de forma significativa, los textos serán a menudo demasiado cortos.
No sé nada sobre la agrupación, pero un método comúnmente utilizado llamado TextRank hace algo parecido automáticamente.
TextRank procede construyendo un grafo $G$ sobre palabras dada alguna medida de proximidad (por ejemplo $(v, w)$ es una arista si $v$ , $w$ aparecen en el texto en una ventana de cierta longitud, o aparecen en una frase) y luego ejecuta PageRank en el gráfico resultante. La idea es que los rangos de PageRank pueden utilizarse para medir la importancia global.
Puede ver ejemplos concretos en este cuaderno de la documentación de gensim .
Por cierto, si quieres explorar tu idea de utilizar la agrupación, puedes utilizar el gráfico que se construye en los pasos intermedios de TextRank. No he oído hablar de ese enfoque, pero parece interesante probar métodos de clustering de grafos (hay métodos para eso, por ejemplo Power Iteration Clustering o Spectral Clustering).