python nlp nltk stanford-nlp

python - resolución del pronombre al revés



nlp nltk (1)

La resolución de referencia habitual funciona de la siguiente manera:

Previsto

The man likes math. He really does.

se da cuenta de que

he

se refiere a

the man.

Hay un montón de herramientas para hacer esto.

Sin embargo, ¿hay una manera de hacerlo al revés?

Por ejemplo,

dado

The man likes math. The man really does.

Quiero hacer la resolución del pronombre "hacia atrás"

para que me sale una salida como

The man likes math. He really does.

Mi texto de entrada será principalmente de 3 a 10 oraciones, y estoy trabajando con python.


Quizás esta no sea realmente una respuesta con la que estar contento, pero creo que la respuesta es que no hay tal funcionalidad incorporada en ninguna parte, aunque puede codificarla usted mismo sin demasiada dificultad. Dando un resumen de cómo lo haría con CoreNLP:

  1. Todavía corres coref. Esto te dirá que "el hombre" y "el hombre" son diferentes, por lo que puedes reemplazar al segundo con un pronombre.

  2. Ejecute el anotador de gender desde CoreNLP. Este es un anotador mal documentado y aún menos publicitado que intenta adjuntar el género a los tokens en una oración.

  3. De alguna manera averiguar los plurales. La mayoría de las veces puede usar la etiqueta de parte del discurso: los sustantivos plurales obtienen las etiquetas NNS o NNPS, pero existen algunas complicaciones, por lo que también debería considerar (1) la existencia de conjunciones en el antecedente; (2) el lema de una palabra que es diferente de su texto; (3) especialmente junto con 2, la palabra que termina en ''s'' o ''es'' - esto puede distinguir entre las lematizaciones que eliminan los plurales frente a las lematizaciones que eliminan los tiempos verbales, etc.

  4. Esto es suficiente para averiguar el pronombre correcto. Ahora solo es cuestión de cortar la oración y volver a armarla. Esto es un poco molesto si lo hace en CoreNLP (el código simplemente no está configurado para cambiar el texto de una oración), pero en el peor de los casos siempre puede volver a anotar una nueva forma de superficie.

Espero que esto ayude un poco!