¿Puede mostrarme un ejemplo simple usando http://www.nltk.org/code para determinar si una cadena está feliz o molesta?¿Puedo usar NLTK para determinar si un comentario es positivo o negativo?
Respuesta
Nopey.
Esta es una tarea mucho más allá de las capacidades de NLTK o cualquier analizador gramatical que se conoce o se puede imaginar de forma realista. Mira el NLTK Book para ver qué tipo de tareas puede realizar, que están muy, muy lejos de tu propósito declarado.
Como ejemplo barato:
me gustó mucho el uso de su papel para entrenar a mi perro.
procesarla con NLTK y usted puede conseguir
[('I', 'PRP'), ('really', 'RB'), ('enjoyed', 'VBD'),
('using', 'VBG'), ('your', 'PRP$'), ('paper', 'NN'),
('to', 'TO'), ('train', 'VB'), ('my', 'PRP$'), ('dog', 'NN')]
Cuando el árbol de análisis sintáctico me decía que 'disfrutado' es el verbo central (en tiempo pasado) de la oración simple. Disfrutar de algo es bueno. Entrenar algo generalmente es algo bueno. Gerundios, sustantivos, comparativos, y tales son relativamente neutrales. Así que dale un buen puntaje de 0,90.
Excepto que realmente quiero decir que le pego a mi perro con su papel o lo dejo excretar en el papel, lo que probablemente consideraría algo no bueno.
Contrate a una persona para esta tarea de reconocimiento.
añadido para aquellos que imaginan que los clasificadores incluso entrenados son de mucha utilidad:
ahora este verdadero entrada de una revisión corpus cliente real usando cualquier clasificador te gusta dirigir hacia cualquier conjunto de datos que te gusta:
Esta cámara sigue activada en el modo automático con un zumbido que no se puede detener . Sería realmente bueno si le han dado una opción a detener esta autofocadura. Si desea que tenga la fecha y la hora en la imagen , es solo a través del software que lee la fecha de la imagen y el tiempo a partir de los metadatos de la imagen. Entonces, si utiliza su lector de tarjetas y copie las imágenes - tiene que una vez más abrirlas a través de su software al poner la fecha y la hora. En eso también, no hay una manera directa de agregar la fecha y el tiempo - tienes que decir 'imprimir imágenes' en un directorio diferente en el que hay una opción para especificar la fecha y hora . Incluso el más mínimo de los batidos distorsiona por completo su imagen. Las imágenes interiores no eran tan claras. Llegó al tiene el flash encendido para obtenerlo a pesar de que su habitación está bien iluminada. La tapa del objetivo es realmente molesto. los clips de película tomados siempre tendrán algún 'ruido' en , no se puede evitar eso.
La peor clasificación de humor que obtuve fue "totalmente equívoca", sin embargo, los seres humanos pueden determinar fácilmente que esto es cualquier cosa menos complementario.Este no fue un dato elegido al azar, sino uno que se seleccionó por sesgo negativo sin "odio" o "suxz" o similar.
ver también http://en.wikipedia.org/wiki/Sentiment_analysis – msw
No diría que esto va más allá de NLTK. Mi primer pensamiento fue el análisis de sentimientos, al que te vinculaste. Dado un corpus de entrenamiento considerable, podría entrenar a un clasificador para darle una aproximación decente del "estado de ánimo". – Cerin
@Chris S: Pero eso no es lo que hizo la pregunta; pidió un ejemplo simple para el que no hay ninguno. Incluso los clasificadores caen en la entrada de texto real como los diversos corpus vinculados por Wikipedia. Para un dominio donde los declarativos simples siguen siendo problemáticos, enfrentar el matiz, el sarcasmo, la implicación y condenar con débil elogio es ** realmente ** difícil. – msw
NLTK no puede salir de la caja, pero si está buscando alguna investigación relacionada en esa área, eche un vistazo a este documento en Offensive Language Detection. Los mismos métodos podrían adaptarse para detectar comentarios que no sean ofensivos/inofensivos, sino felices/infelices. El paquete de software principal que se utiliza en este proyecto para la clasificación de texto se llama WEKA y utiliza clasificadores múltiples, entrenados en ejemplos anteriores, para determinar si el lenguaje es ofensivo o no (y en este método utiliza un umbral ajustable).
Está buscando una técnica que utilice un clasificador de aprendizaje automático para determinar si una parte del texto es positiva o negativa. Hubo varios intentos diferentes en este sentido por parte de varios equipos de investigación (por ejemplo, http://research.yahoo.com/pub/2387 y http://lingcog.iit.edu/doc/appraisal_sentiment_cikm.pdf) que podemos obtener una precisión de entre 80% y 90% para determinar si la revisión de un producto es positiva o negativa.
Debido a la brevedad de su pregunta, no es obvio para mí si la determinación de si una revisión del producto es positiva o negativa es la misma tarea que intenta realizar, o simplemente una tarea relacionada, pero sugiero comenzar simple con la clasificación de bolsa de palabras con un clasificador bayesiano (que NLTK debería ser capaz de manejar), y luego mejorar sus técnicas a partir de allí, dependiendo de cómo resulte la precisión.
Desafortunadamente, nunca he usado NLTK (ni Python para ese asunto) así que no puedo darle un ejemplo de código de cómo usar NLTK para esto.
El libro NLTK "Procesamiento de lenguaje natural" incluye un ejemplo de clasificación de texto en cuanto a si es positivo o no. La pregunta y la aplicación del OP podrían ser demasiado sutiles para los algoritmos discutidos y demostrados, pero sería un comienzo. – winwaed
Pattern es algo que vale la pena probar también: puede ver dos experimentos de minería de opinión directamente en la página de inicio del proyecto.
- 1. JavaScript Random Positivo o Negativo Número
- 2. Comprobando si un número es positivo o negativo usando operadores bit a bit
- 3. Recuperar un ángulo positivo o negativo de 3 puntos
- 4. ¿Cómo puedo verificar si un entero con signo es positivo?
- 5. ¿Cómo convertir un número negativo a positivo?
- 6. dirección de memoria valor positivo o negativo en c?
- 7. nombres de los campos booleanos positivo o negativo
- 8. Regex - Combinando lookbehind positivo y negativo
- 9. Cálculo de porcentaje negativo y positivo
- 10. ¿Puedo determinar si KeyEventArg es una letra o número?
- 11. MySql, ¿cómo puedo agrupar, en una consulta de selección en positivo o negativo?
- 12. cómo cambiar un número positivo a negativo y viceversa?
- 13. actualización positivo a un valor negativo en MySQL
- 14. ¿Cómo puedo determinar si intento devolver un error o no?
- 15. ¿Debo usar LingPipe o NLTK para extraer nombres y lugares?
- 16. Convierta un número negativo a uno positivo en JavaScript
- 17. número Parse con prefijo positivo/negativo de cadena en java
- 18. ¿Cómo puedo determinar si un archivo es un archivo PDF?
- 19. ¿Cómo determinar si un idioma es recursivo o recursivo enumerable?
- 20. ¿Cómo puedo determinar si un paquete es RTP/RTCP?
- 21. Determinar si un archivo es un duplicado
- 22. ¿Cómo puedo usar Perl para determinar si el contenido de dos archivos es idéntico?
- 23. ¿Cómo puedo determinar si un manejador de archivo Perl es un manejador de lectura o escritura?
- 24. ¿Cómo puedo determinar si System.Type es un tipo personalizado o un tipo de Framework?
- 25. Ruby: ¿Cambiar el número negativo al número positivo?
- 26. ¿Producir flotación aleatoria del rango negativo al positivo?
- 27. ¿Cómo puedo determinar mediante programación si un archivo MP3 es CBR o VBR? (Preferiblemente usando C#)
- 28. Los métodos de afirmación de JUnit deben formularse en positivo o negativo.
- 29. Android: diferencia entre el botón positivo, negativo y neutral
- 30. ¿Cómo puedo determinar si el nodo seleccionado es un nodo secundario o secundario en TreeView?
Posiblemente. Debes investigar las funciones del clasificador; Dado un conjunto de entrenamiento, es posible que pueda clasificar el estado de ánimo como positivo o negativo. –
Vea también http://stackoverflow.com/questions/2162718/python-nltk-code-snippet-to-train-a-classifier-naive-bayes-using-feature-freque http://stackoverflow.com/questions/ 1082789/simple-sentiment-analysis http://stackoverflow.com/questions/573768/sentiment-analysis-for-twitter-in-python http://stackoverflow.com/questions/2832394/sentiment-analysis-with-nltk- python-for-sentences-using-sample-data-or-webservice –