Quiero construir una lista de ~ 6 palabras clave (o incluso mejor: palabras clave de par de palabras) para cada mensaje en un foro de mensajes.Algoritmo (o biblioteca C#) para identificar 'palabras clave' en un conjunto de mensajes?
- El uso principal de las palabras clave es reemplazar líneas de asunto en algunos casos. Por ejemplo: Mensaje Terry envió dic 5, palabras clave: norweigan azul, plumaje, no muerto
- En un super ideal Palabras clave mundo identificaría ambas fases únicas, y frases que se agrupan la discusión en "temas", es decir, palabras que son muy relevantes para el mensaje en cuestión, y algunos otros mensajes en el foro, pero que no se encuentran con frecuencia en el foro como un todo.
- Espero que aparezcan frases basura, no es gran cosa.
- no puede ser demasiado costoso computacionalmente: Necesito algo que puede manejar varios cientos de mensajes en varios segundos, ya que voy a tener que volver a ejecutar este cada vez que un nuevo mensaje viene en
Alguien sabe. una buena biblioteca de C# para lograr esto? Tal vez hay una manera de doblar Lucene.NET en la prestación de este tipo de información?
O, en su defecto, ¿alguien puede sugerir un algoritmo (o conjunto de algos) para leer? Si me estoy implementando necesito algo que no sea terriblemente complejo, solo puedo abordarlo si es manejable en aproximadamente una semana. En este momento, lo mejor que he encontrado en términos de simple pero efectivo es TF-IDF.
ACTUALIZACIÓN: He subido los resultados del uso de TF-IDF para seleccionar los mejores 5 palabras clave de un conjunto de datos reales aquí: http://jsbin.com/oxanoc/2/edit#preview
Los resultados son mediocres, pero no totalmente inútil ... tal vez con Además de detectar frases de varias palabras, esto sería suficiente.
Si desea que los errores tipográficos, como su ejemplo, sean atrapados también, necesitará un corrector ortográfico, ¡y su algoritmo será computacionalmente costoso! –
Estoy de acuerdo con los errores tipográficos. Me centro más en "asegurarme de que al menos un par de palabras clave realmente útiles aparezcan en la lista" en lugar de "asegurarme de que no haya nada tonto en la lista de palabras clave". – Seth
He puesto la salida de palabra clave de una implementación ingenua de TF-IDF ejecutada en mensajes reales aquí (mensaje mostrado al pasar el mouse): [TF-IDF seleccionó palabras clave de datos reales] (http://jsbin.com/oxanoc/2/edit) #avance). Los resultados están bien, pero no son estelares. Creo que revelan una necesidad real de frases de varias palabras. – Seth