Estoy tratando de agrupar, por ejemplo, cadenas sobre programación con otras cadenas sobre programación, cadenas sobre física con otras cadenas sobre física, etc., para una amplia gama de temas. A pesar del aspecto lingüístico teórico deslumbrante del problema, estoy tratando de hacer esto realmente usando programación / software.
El resumen: Dada una gran cantidad de cadenas, ¿cómo haría para agruparlas por tema semántico?
La aplicación particular: tengo ~ 200k preguntas de trivia que me gustaría clasificar en grupos comunes (automóviles, computadoras, política, Canadá, comida, Barack Obama, etc.).
Lo que he examinado: Wikipedia tiene una lista de kits de herramientas de procesamiento de lenguaje natural (suponiendo que lo que estoy tratando de hacer en realidad se llama PNL), así que he analizado algunos, pero ninguno parece hacer algo similar a mis necesidades.
Notas: Se ha señalado que hacer esto requiere conocimientos adicionales (por ejemplo, un Porsche es un automóvil, C ++ es un lenguaje de programación). Supongo que se necesitan datos de capacitación, pero si solo tengo la lista de preguntas y respuestas, ¿cómo puedo generar datos de capacitación? ¿Y luego cómo uso los datos de entrenamiento?
Más notas: Si el formato actual de mi Q & As ayuda (aunque parece JSON, es básicamente un archivo de texto sin formato):
// row 1: is metadata
// row 2: is a very specific kind of "category"
// row 3: is the question
// row 4: is the answer
{
15343
A MUSICAL PASTICHE
Of classical music's "three B's", he was the one born in Hamburg in 1833
Johannes Brahms
}
Pero antes de que alguien señale que ya existe una categoría, tenga en cuenta que hay ~ 200k preguntas y respuestas como esta, y básicamente tantas "categorías". Estoy tratando de agruparlos en grupos más amplios como los mencionados anteriormente. Además, este formato se puede cambiar para todas las preguntas muy fácilmente, lo hago mediante programación.
Y más notas: en realidad no sé cuántas categorías necesitaré (al menos 10-20), porque no he leído todas las preguntas yo mismo. En parte esperaba tener el número finito determinado de alguna manera durante la categorización. En cualquier caso, siempre puedo crear manualmente una serie de categorías.