¿Qué puedo hacer para mejorar el proceso de clasificación con Weka o NLTK?

Yuval Feinstein ya dio una buena respuesta. Puede que tenga que probar uno o todos los pasos como él sugirió. Cómo está ajustando los parámetros también es importante. ¿Está realizando una validación cruzada utilizando el conjunto de validación correctamente? [1]. Es posible que esta sea la mejor precisión que pueden proporcionar sus datos. No me importaría mucho la precisión, en lugar de realizar los experimentos correctamente. Puede ser que sus métodos sean correctos pero sus datos son demasiado ruidosos o desordenados [2]. Es posible que necesite preprocesarlo mejor o extraer características más informativas. ¿Estás calculando características usando el enfoque de N-gram, bolsa de palabras [3], estás eliminando todas las palabras de detención, ¿hiciste stemming? Si sigue los pasos básicos para resolver un problema de LD [4], estará seguro de que obtendrá el resultado correcto al menos.

Notas al pie

[1] La respuesta de Shehroz Khan a ¿Qué es un conjunto de datos de entrenamiento y un conjunto de datos de prueba en aprendizaje automático? ¿Cuáles son las reglas para seleccionarlos?

[2] La respuesta de Shehroz Khan a ¿Cómo puedo manipular las muestras ruidosas en el aprendizaje automático?

[3] La respuesta de Shehroz Khan a In Text Classification: ¿Cuál es la diferencia entre Bag of Words (BOW) y N-Grams?

[4] La respuesta de Shehroz Khan al aprendizaje automático: ¿Cuáles son los pasos a seguir para analizar datos para aplicaciones de aprendizaje automático?

Ya se han dado buenas respuestas generales, por lo que me gustaría concentrar su atención en algunas advertencias que vale la pena considerar en la fase de transformación de las variables de entrada.

En el caso de que sufra un conjunto de datos demasiado pequeño: cuantos menos datos de entrada, más importante es controlar la variación (la parte controlable de) en sus datos.

Use un stemmer (que se adapte mejor a su dominio, puede comenzar a intentar con NLTK Snowball), para reducir la frecuencia de las formas de palabras.

Reemplazar homónimos y sinónimos por términos inequívocos, respectivamente.

Dependiendo de la calidad específica del dominio de su lista de palabras clave, considere usar, por ejemplo, NLTK Stanford-PosTagger como un tipo de filtro dinámico de palabras clave, y trate su uso y sus parámetros, respectivamente, como hiperparámetros adicionales en la fase de ajuste de parámetros.

¿Qué intentas clasificar?

Algunas cosas que ayudan a la clasificación son:

a. Limpieza de los datos.

si. Conocimiento del dominio.

do. Extracción de características / construcción / selección.

re. Transformación variable.

mi. Usar un algoritmo mejor (el aprendizaje profundo es muy popular, pero Weka no lo admite hasta donde yo sé; tal vez puedas usar bosques aleatorios).

F. Usando un paquete diferente (digamos scikit-learn).

sol. Ajuste de parámetros.

h. Regularización