Procesamiento de lenguaje natural: ¿Cómo procesan los sistemas de PNL términos de negación como no, nunca, apenas en texto?

Los términos de negación como estos se utilizan para realizar análisis de sentimientos de una oración, una frase o incluso un párrafo. Para procesar estas palabras, definimos lo que se llama una polaridad de oración .

La polaridad de la oración se calcula sobre la base de las partes de una oración. Una oración puede contener POS simples (verbo, adverbio, adjetivos, etc.) o partes complejas de
discurso (Frase sustantiva [pronombre, sustantivo] o frase verbal [verbo, frase sustantiva], relaciones de posesión, determinante, etc.). La siguiente jerarquía es un ejemplo de POS en una oración completa.

(Frase
(Frase sustantiva (pronombre, sustantivo))
(Frase adverbial (adverbio))
(Frase verbal (verbo)
(Frase
(Frase verbal (verbo)
(Frase sustantiva (sustantivo))
))))

El cálculo de la polaridad de los sentimientos es un proceso anidado. Este proceso calcula primero el sentimiento del nivel más interno y luego lo calcula junto con el siguiente nivel superior, que también se denomina Propagación de Sentimiento . Este proceso calcula la polaridad e intensidad de las palabras y frases. Si hay un término de negación, la polaridad se calculará en consecuencia. Los siguientes tres ejemplos ilustran todo el proceso de cálculo de polaridad.

A. Ejemplo 1 ::
No han tenido éxito, y nunca tendrán éxito, en
rompiendo la voluntad de este valiente pueblo.
(Frase
(Pronombre ellos)
(Frase verbal
(Frase verbal (no)
(Frase verbal (Verbo exitoso)))
(y)
(Frase verbal (will)
(Frase Adverbial (Adverbial nunca))
(Frase verbal (éxito)))
(Frase preposicional (en)
(Frase
(Frase verbal (ruptura)
(Frase sustantiva
(Frase sustantiva (la voluntad))
(Frase preposicional (de)
(Frase sustantiva (esta gente valiente)))))))))

La palabra de negación ‘no’ está afectando al éxito (+) mientras que nunca está afectando al éxito (+) donde el éxito y el éxito están unidos por ‘y’ (se une a la misma polaridad). Ambos éxitos están en romper (-) la voluntad de las personas que son valientes (+). Como no han logrado hacer algo ‘Negativo’ y la polaridad de la oración es ‘Positiva’ como se muestra en la figura:

B. Ejemplo 2 ::
John nunca tiene éxito en el tenis.
(Frase
(Frase sustantiva (John))
(Frase verbal (es)
(Frase adverbial (nunca))
(Frase adjetival (exitosa)
(Frase preposicional (en)
(Frase sustantiva (tenis))))))
La negación nunca es exitosa (+) y este éxito es en el tenis. Esta negación del término positivo es una simple negación, que se presenta en la siguiente figura:

C. Ejemplo 3 ::
El sistema de audio en este televisor no es muy bueno, pero
La imagen es asombrosa.
(Frase
(Frase
(Frase sustantiva
(Frase sustantiva (el sistema de audio))
(Frase preposicional (activada)
(Frase sustantiva (esta televisión))))
(Frase verbal (no es)
(Frase adjetiva (muy buena))))
(“)
(Conjunción pero)
(Frase
(Frase sustantiva (la imagen))
(Frase verbal (es)
(Adjetivo (asombroso)))))

La negación no está afectando a la Frase Adjetival (muy buena (+)) mientras que la oración también tiene una conjunción de ‘pero’ seguida de una cláusula positiva ‘la imagen es sorprendente (+). La conjunción ‘pero’ disminuye el significado del primer negativo y enfatiza la siguiente cláusula positiva como se presenta en esta figura:

Espero que esto ayude.


Para obtener más información, consulte esta respuesta: PNL: ¿cuál es el mejor método para detectar contextos negados en el texto?

Mal, querido señor, bastante mal. Entonces, aquí hay un ejemplo de una descripción de un sistema de análisis de sentimientos ganador ( http://www.cs.toronto.edu/~xzhu/ …):

Siguiendo el trabajo de Pang et al. (2002), definimos un contexto negado como un segmento de un tweet que comienza con una palabra de negación (por ejemplo, no, no debería) y termina con uno de los signos de puntuación: ‘,’, ‘.’, ‘:’ , ‘;’, ‘!’, ‘?’

En los viejos tiempos, lo que la gente intentaba hacer era convertir una oración en una forma lógica. Luego, se realizaría alguna inferencia. Puede buscar en Google algunas descripciones utilizando la consulta cálculo lambda nlp (consulte, por ejemplo, este enlace: nlp6). Sin embargo, me dijeron que hacer esto de manera confiable es bastante difícil. Entonces, tenemos que recurrir a algún tipo de heurística.

Curiosamente, las redes neuronales recursivas pueden ser capaces de lidiar con la negación. Ver, por ejemplo, un artículo aquí: http://anthology.aclweb.org/D/D1

Gracias por el A2A.

Ya hay excelentes respuestas a su pregunta aquí, solo me gustaría señalar un algoritmo basado en reglas que podría requerir menos recursos que la propagación de sentimientos y que funcionó razonablemente bien para mí en el pasado. El algoritmo se llama Negex y se describe en este resumen: un algoritmo simple para identificar hallazgos y enfermedades negadas en los resúmenes de alta (documento completo aquí).

A un nivel muy alto, la idea es ubicar la negación alrededor de entidades específicas en la oración. Debe identificar entidades utilizando algún tipo de etiquetador: utilizamos nuestra ontología médica. Una vez que se identifica la entidad, identificamos la frase en la oración (puede ser la oración completa) que contiene la entidad y, utilizando una secuencia de reglas PRE y POST (con palabras de negación específicas), identificamos si la entidad se afirma o se niega. También tengo una implementación de Scala si eso fuera útil para ti.

Su programa de PNL debe poder

  1. tomar entrada de una oración
  2. Y usando una estructura de datos de gráfico o estructura de datos de árbol
  3. y algunos “aprendizaje” o palabras (su “texto de superficie” y sus “partes del discurso”)
  4. debería ser capaz de producir un Grammer de estructura de frase ( https://en.m.wikipedia.org/wiki/ …)

Siguiendo los pasos anteriores, puede generar un árbol como gráfico de las palabras que tenía en su oración. Este gráfico se parece mucho a los diagramas que ve en la respuesta de Rahul o en el enlace de Wikipedia anterior.