¿Cuál es un buen método para la agrupación de texto corto?


15

Estoy trabajando en un problema de agrupación de texto. Los datos contienen varias oraciones. ¿Existe un buen algoritmo que alcanza una alta precisión en textos cortos?

¿Puedes proporcionar buenas referencias?

Algoritmos como KMeans, el agrupamiento espectral no funciona bien para este problema.

Respuestas:


10

Eso depende principalmente de la cantidad de "estado del arte" (SOTA) que desee en comparación con la profundidad que desea ir (juego de palabras ...).

Si puede vivir con incrustaciones de palabras poco profundas según lo provisto por word2vec, Glove o fastText, creo que Word Mover Distance (WMD [yes, realmente ...]) es una buena función para medir distancias de documentos (cortas) [1] . Incluso he visto varias computadoras portátiles Python en el pasado que proporcionan "tutoriales" para esta medida de distancia, por lo que es realmente fácil comenzar.

Sin embargo, si está más interesado en SOTA, tendrá que analizar el aprendizaje profundo (representación de secuencias), utilizando algún tipo de red recurrente que aprenda un modelo de tema a partir de sus oraciones. Además de integrar incrustaciones de palabras (semánticas), estos enfoques van más allá del enfoque [bueno, antiguo] de "bolsa de palabras" al aprender representaciones de temas usando las dependenciasde las palabras en la oración [s]. Por ejemplo, el Modelo de tema recurrente de nivel de oración (SLRTM) es un modelo profundo, recurrente bastante interesante basado en las ideas del LDA más tradicional (de Blei et al.) O LSA (Landauer et al.), Pero es solo un arXiv papel (por lo que todas las advertencias predeterminadas de "tomar esto con un grano de sal" sobre investigaciones no revisadas por pares deberían aplicarse ...) [2]. No obstante, el documento tiene muchos indicadores y referencias excelentes para comenzar su investigación en caso de que quiera ir por este agujero de conejo.

Finalmente, debería aclararse que no afirmo que estos son los métodos acordados de mejor desempeño para la bolsa de palabras y los modelos de secuencia, respectivamente. Pero deberían acercarte bastante a lo que sea el "mejor" SOTA, y al menos deberían ser un excelente punto de partida.

[1] Matt J. Kusner y col. De incrustaciones de palabras a distancias de documentos. Actas de la 32ª Conferencia Internacional sobre Aprendizaje Automático, JMLR, 2015.

[2] Fei Tian y col. SLRTM: Dejar que los temas hablen por sí mismos. arXiv 1604.02038, 2016.


Intenté word2vec y no funciona bien para texto corto.
Entusiasta

Solo para estar seguro: mi respuesta anterior no recomienda usar word2vec (solo) para la agrupación de texto breve. Más bien, recomienda usar WMD (sobre vectores incrustados) y / o métodos de aprendizaje profundo. (Sin embargo, si puede entrenar sus propios vectores, obtendrá muy buenos resultados solo con ellos, utilizando la similitud del coseno suave , al menos para un "prototipo viable")
Fnl

-1

https://github.com/RandyPen/TextCluster
Este es un método de Cluster específico para texto corto, que supera a KMeans, etc. No es necesario establecer un número de variable latente.
La idea básica es tokenizar la oración en palabras. Luego, diríjase a un cubo diferente según el componente de texto. En cada cubo, calcule la similitud entre la oración y el cubo. Si el puntaje de similitud es más alto que el valor específico, agregue esta oración en ese depósito, de lo contrario busque el siguiente depósito.

básico


Necesita detallar su respuesta. No solo cites un enlace.
Michael R. Chernick
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.