nlp - spanish - nltk pos_tag
Qué clasificador elegir en NLTK (2)
Quiero clasificar los mensajes de texto en varias categorías como, "creación de relaciones", "coordinación", "intercambio de información", "intercambio de conocimientos" y "resolución de conflictos". Estoy usando la biblioteca NLTK para procesar estos datos. Me gustaría saber qué clasificador, en nltk, es mejor para este problema particular de clasificación multiclase.
Estoy planeando usar la Clasificación Naive Bayes, ¿es aconsejable?
Sí, entrenar un clasificador Naive Bayes para cada categoría y luego etiquetar cada mensaje a una clase según el clasificador que proporcione el puntaje más alto es un primer enfoque estándar para problemas como este. Hay algoritmos clasificadores de clase única más sofisticados que podría sustituir en Naive Bayes si encuentra un rendimiento inadecuado, como una máquina de vectores de soporte (que creo que está disponible en NLTK a través de un complemento de Weka, pero no es positiva). A menos que se pueda pensar en algo específico en este dominio de problemas que haría que Naieve Bayes sea especialmente inadecuado, es el primer intento para muchos proyectos.
El otro clasificador NLTK que consideraría probar sería MaxEnt ya que creo que maneja de forma nativa la clasificación de multiclases. (Aunque el enfoque de clasificador binario múltiple es muy estándar y común también). En cualquier caso, lo más importante es recopilar un gran corpus de mensajes de texto debidamente etiquetados.
Si con "Mensajes de texto" te refieres a mensajes de texto reales, estos tienden a ser muy cortos y el idioma es muy informal y variado, creo que la selección de características puede terminar siendo un factor más importante para determinar la precisión que la elección del clasificador para ti. Por ejemplo, usar un Stemmer o un Lemmatizer que entienda las abreviaturas y modismos comunes utilizados, etiquetar parte del discurso o fragmentación, extracción de entidad, extraer probablemente las relaciones entre los términos puede proporcionar más resultados que el uso de clasificadores más complejos.
Este documento habla de clasificar los mensajes de estado de Facebook basados en el sentimiento, que tiene algunos de los mismos problemas, y puede proporcionar algunas ideas sobre esto. Los enlaces son a un caché de google porque tengo problemas con el sitio original:
Naive Bayes es el clasificador más simple y fácil de entender y por eso es agradable de usar. Los árboles de decisión con una búsqueda de rayos para encontrar la mejor clasificación no son significativamente más difíciles de entender y generalmente son un poco mejores. MaxEnt y SVM tienden a ser más complejos, y SVM requiere algunos ajustes para hacerlo bien.
¡Lo más importante es la elección de las características + la cantidad / calidad de los datos que usted brinda!
Con su problema, me centraría primero en garantizar que tenga un buen conjunto de datos de entrenamiento / prueba y también elegir buenas características. Como hace esta pregunta, no ha tenido mucha experiencia con el aprendizaje automático para NLP, así que diría que es fácil comenzar con Naive Bayes, ya que no utiliza funciones complejas. Solo puede tokenizar y contar las ocurrencias de palabras.
EDITAR: La pregunta ¿Cómo se encuentra el sujeto de una oración? y mi respuesta también vale la pena mirarla.