2010-08-11 21 views
8

¿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?

+0

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. –

+0

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 –

Respuesta

0

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.

+2

ver también http://en.wikipedia.org/wiki/Sentiment_analysis – msw

+2

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

+0

@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

4

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).

0

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.

+0

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

Cuestiones relacionadas