stanford spanish reconocimiento recognition nombradas ner entidades nlp precision-recall

nlp - spanish - Precisión computacional y recuperación en reconocimiento de entidad nombrada.



reconocimiento de entidades nombradas (5)

Ahora estoy a punto de informar los resultados del Reconocimiento de Entidades Nombradas. Una cosa que me parece un poco confuso es que mi comprensión de la precisión y el recuerdo fue que simplemente se resumen los verdaderos positivos, los negativos verdaderos, los falsos positivos y los falsos negativos en todas las clases.

Pero esto parece inverosímil ahora que lo pienso, ya que cada error de clasificación daría lugar simultáneamente a un falso positivo y un falso negativo (por ejemplo, un token que debería haberse etiquetado como "A" pero fue etiquetado como "B" es un falso negativo para "A" y falso positivo para "B"). Por lo tanto, el número de los falsos positivos y los falsos negativos en todas las clases sería el mismo, lo que significa que la precisión es (¡siempre!) Igual a la memoria. Esto simplemente no puede ser cierto, por lo que hay un error en mi razonamiento y me pregunto dónde está. Ciertamente es algo bastante obvio y directo, pero se me escapa ahora mismo.


Como se mencionó anteriormente, hay diferentes formas de medir el rendimiento de NER. Es posible evaluar por separado la precisión con la que se detectan las entidades en términos de posición en el texto y en términos de su clase (persona, ubicación, organización, etc.). O combinar ambos aspectos en una sola medida.

Encontrará una buena revisión en la siguiente tesis: D. Nadeau, Reconocimiento de entidad nombrada semi-supervisada: Aprendiendo a reconocer 100 tipos de entidades con poca supervisión (2007) . Echa un vistazo a la sección 2.6. Evaluación de la NER .


En la tarea NER CoNLL-2003 , la evaluación se basó en entidades marcadas correctamente, no en tokens, como se describe en el documento ''Introducción a la tarea compartida CoNLL-2003: Reconocimiento de entidad nombrada independiente del idioma'' . Una entidad está marcada correctamente si el sistema identifica una entidad del tipo correcto con el punto inicial y final correctos en el documento. Prefiero este enfoque en la evaluación porque está más cerca de una medida de desempeño en la tarea real; un usuario del sistema NER se preocupa por las entidades, no por tokens individuales.

Sin embargo, el problema que describiste todavía existe. Si marca una entidad de tipo ORG con el tipo LOC, incurrirá en un falso positivo para LOC y un falso negativo en ORG. Hay una discusión interesante sobre el problema en esta publicación de blog .


La forma en que se calculan normalmente la precisión y la recuperación (esto es lo que uso en mis documentos) es medir entidades entre sí. Suponiendo que la verdad fundamental tiene lo siguiente (sin ninguna diferencia en cuanto a qué tipo de entidades son)

[Microsoft Corp.] CEO [Steve Ballmer] announced the release of [Windows 7] today

Esto tiene 3 entidades.

Suponiendo que su extracción real tiene lo siguiente

[Microsoft Corp.] [CEO] [Steve] Ballmer announced the release of Windows 7 [today]

Tiene una coincidencia exacta para Microsoft Corp , falsos positivos para el CEO y en la today , un falso negativo para Windows 7 y una subcadena para Steve

Calculamos la precisión y el recuerdo definiendo primero los criterios de coincidencia. Por ejemplo, ¿tienen que ser una coincidencia exacta? ¿Es un partido si se superponen? ¿Importan los tipos de entidades? Típicamente queremos proporcionar precisión y recuperación para varios de estos criterios.

Coincidencia exacta: True Positives = 1 ( Microsoft Corp. , la única coincidencia exacta), False Positives = 3 ( CEO , today y Steve , que no es una coincidencia exacta), False Negatives = 2 ( Steve Ballmer y Windows 7 )

Precision = True Positives / (True Positives + False Positives) = 1/(1+3) = 0.25 Recall = True Positives / (True Positives + False Negatives) = 1/(1+2) = 0.33

Cualquier superposición OK: True Positives = 2 ( Microsoft Corp. , y Steve que se superpone a Steve Ballmer ), False Positives = 2 ( CEO , y today ), False Negatives = 1 ( Windows 7 )

Precision = True Positives / (True Positives + False Positives) = 2/(2+2) = 0.55 Recall = True Positives / (True Positives + False Negatives) = 2/(2+1) = 0.66

Luego, se deja al lector para inferir que el "rendimiento real" (la precisión y el recuerdo que daría un verificador humano imparcial cuando se le permita usar el juicio humano para decidir qué discrepancias de superposición son significativas y cuáles no) está en algún lugar entre las dos.

A menudo, también es útil informar la medida F1 , que es la media armónica de precisión y recuperación, y que da una idea del "rendimiento" cuando hay que intercambiar precisión por recuperación.


No hay una respuesta correcta simple a esta pregunta. Hay una variedad de formas diferentes para contar errores. Las competiciones MUC usaron una, otras personas han usado otras.

Sin embargo, para ayudarte con tu confusión inmediata:

Tienes un conjunto de etiquetas, ¿no? Algo como NINGUNA, PERSONA, ANIMAL, VEGETAL?

Si un token debe ser una persona y lo etiqueta NINGUNO, entonces es un falso positivo para NINGUNO y un falso negativo para PERSONA. Si una ficha debe ser NINGUNA y la etiqueta PERSONA, es al revés.

Entonces obtienes un puntaje para cada tipo de entidad.

También puede agregar esas puntuaciones.


Solo para ser claros, estas son las definiciones:

Precisión = TP / (TP + FP) = ¿Qué parte de lo que encontraste era la verdad fundamental?

Recall = TP / (TP + FN) = ¿Qué parte de la verdad fundamental se recuperó?

No siempre será necesariamente igual, ya que el número de falsos negativos no será necesariamente igual al número de falsos positivos.

Si entiendo bien tu problema, estás asignando cada token a una de las más de dos etiquetas posibles. Para que la precisión y la recuperación tengan sentido, debe tener un clasificador binario . Por lo tanto, podría usar precisión y recuperación si formuló el clasificador como si un token está en el Grupo "A" o no, y luego repita para cada grupo. En este caso, una clasificación perdida contaría dos veces como un falso negativo para un grupo y un falso positivo para otro.

Si está haciendo una clasificación como esta en la que no es binario (asignar cada token a un grupo) podría ser útil buscar pares de tokens. Exprese su problema como "¿Están las fichas X e Y en el mismo grupo de clasificación?". Esto le permite calcular la precisión y la recuperación sobre todos los pares de nodos. Esto no es tan apropiado si sus grupos de clasificación están etiquetados o tienen significados asociados. Por ejemplo, si sus grupos de clasificación son "Frutas" y "Verduras", y clasifica tanto "Manzanas" como "Naranjas" como "Verduras", entonces este algoritmo lo calificaría como un verdadero positivo aunque se asignara el grupo equivocado. Pero si sus grupos no están etiquetados, por ejemplo, "A" y "B", entonces si las manzanas y las naranjas se clasificaron como "A", después podría decir que "A" corresponde a "Frutas".