2009-11-23 5 views
20

Maintenant, je suis sur le point de rapporter les résultats de la reconnaissance d'entité nommée. Une chose que je trouve un peu confuse est que ma compréhension de la précision et du rappel était que l'on résume simplement les vrais positifs, les vrais négatifs, les faux positifs et les faux négatifs dans toutes les classes. Mais cela semble invraisemblable maintenant que j'y pense car chaque erreur de classification donnerait simultanément un faux positif et un faux négatif (par exemple, un jeton qui aurait dû être étiqueté "A" mais étiqueté "B" est un faux négatif pour "A" et un faux positif pour "B"). Ainsi, le nombre de faux positifs et de faux négatifs sur toutes les classes serait le même, ce qui signifie que la précision est (toujours!) Égale à rappeler. Cela ne peut tout simplement pas être vrai, donc il y a une erreur dans mon raisonnement et je me demande où c'est. C'est certainement quelque chose d'assez évident et direct, mais ça m'échappe tout de suite.Précision informatique et rappel dans la reconnaissance d'entité nommée

Répondre

32

La façon dont la précision et le rappel sont typiquement calculés (c'est ce que j'utilise dans mes articles) est de mesurer les entités les unes par rapport aux autres. En supposant que la vérité du sol a ce qui suit (sans differentiaton à quel type d'entités qu'ils sont)

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

Cela a 3 entités.

Supposant votre extraction proprement dite a les suivantes

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

Vous avez une correspondance exacte pour Microsoft Corp, faux positifs pour CEO et today, un faux négatif pour Windows 7 et un match substring pour Steve

Nous calculons la précision et le rappel en définissant d'abord des critères de correspondance. Par exemple, doivent-ils correspondre exactement? Est-ce un match si elles se chevauchent du tout? Les types d'entités sont-ils importants? Typiquement, nous voulons fournir la précision et le rappel pour plusieurs de ces critères.

Correspondance exacte: vrai = 1 Positifs (Microsoft Corp., la seule correspondance exacte), Faux Positifs = 3 (CEO, today et Steve, qui n'est pas une correspondance exacte), Faux Négatifs = 2 (Steve Ballmer et 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 

Tout Overlap OK: Vrai = 2 Positifs (Microsoft Corp. et Steve qui chevauche Steve Ballmer), Faux Positifs = 2 (CEO et today), Faux Négatifs = 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 

Le lecteur est alors laissé en déduire que la « vraie performance » (la précision et de rappeler qu'un vérificateur humain impartial donnerait lorsqu'ils sont autorisés à usage humain jugement pour décider quelles divergences de chevauchement sont significatives et lesquelles ne le sont pas) se situe quelque part entre les deux.

Il est également souvent utile de rapporter la mesure F1, qui est la moyenne harmonique de la précision et du rappel, et qui donne une idée de la «performance» lorsque vous devez sacrifier la précision au rappel.

+0

+1 pour être complet! – KillBill

+0

Bonne réponse. Question: Que signifie "Vrai Négatif" dans ce contexte? Il est nécessaire de calculer la précision, je crois. –

+0

Supposons que j'évalue selon la deuxième stratégie (le chevauchement est OK). Comment gérer des situations comme [Steve] [Ballmer]? Comment les vrais positifs sont-ils calculés car les deux correspondances (partielles) ont raison? –

2

Il n'y a pas de bonne réponse à cette question. Il existe différentes façons de compter les erreurs. Les compétitions MUC en ont utilisé une, d'autres en ont utilisé d'autres.

Cependant, pour vous aider avec votre confusion immédiate:

Vous avez un ensemble de balises, non? Quelque chose comme AUCUN, PERSONNE, ANIMAL, VEGETALE?

Si un jeton doit être une personne, et que vous le marquez AUCUN, alors c'est un faux positif pour AUCUN et un faux négatif pour PERSONNE. Si un jeton doit être AUCUN et que vous le marquez PERSONNE, c'est l'inverse.

Vous obtenez ainsi un score pour chaque type d'entité.

Vous pouvez également agréger ces scores.

2

Pour être clair, ce sont les définitions:

précision = TP/(TP + FP) = Quelle partie de ce que vous avez trouvé était la vérité terre?

Rappel = TP/(TP + FN) = Quelle partie de la vérité terrain avez-vous récupéré?

Le nombre de faux négatifs ne sera pas nécessairement égal au nombre de faux positifs. Si je comprends bien votre problème, vous attribuez chaque jeton à l'un de plus de deux libellés possibles. Pour que la précision et le rappel aient un sens, vous devez avoir un binary classifier. Vous pouvez donc utiliser la précision et rappeler si vous avez formulé le classificateur comme si un jeton est dans le groupe "A" ou non, puis répétez pour chaque groupe. Dans ce cas, une classification manquée compterait deux fois comme un faux négatif pour un groupe et un faux positif pour un autre.

Si vous faites une classification comme celle-ci où elle n'est pas binaire (en attribuant chaque jeton à un groupe), il peut être utile de regarder des paires de jetons. Exprimez votre problème comme suit: "Les jetons X et Y sont-ils dans le même groupe de classification?". Cela vous permet de calculer la précision et de rappeler sur toutes les paires de nœuds. Ce n'est pas aussi approprié si vos groupes de classification sont étiquetés ou ont des significations associées. Par exemple, si vos groupes de classification sont "Fruits" et "Légumes", et que vous classifiez les "Pommes" et les "Oranges" comme "Légumes" alors cet algorithme le marquerait comme un vrai positif même si le mauvais groupe a été assigné. Mais si vos groupes sont désactivés, par exemple "A" et "B", alors si les pommes et les oranges étaient toutes deux classées "A", vous pourriez dire ensuite que "A" correspond à "Fruits".

6

Dans le CoNLL-2003 NER task, l'évaluation était basée sur des entités correctement marquées, et non sur des jetons, comme décrit dans l'article 'Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition'. Une entité est correctement marquée si le système identifie une entité du type correct avec le point de début et de fin correct dans le document. Je préfère cette approche dans l'évaluation parce qu'elle est plus proche d'une mesure de la performance sur la tâche réelle; un utilisateur du système NER se soucie des entités, pas des jetons individuels.

Toutefois, le problème que vous avez décrit existe toujours. Si vous marquez une entité de type ORG avec le type LOC, vous obtenez un faux positif pour LOC et un faux négatif pour ORG. Il y a une discussion intéressante sur le problème dans ce blog post.

+0

Vos liens ne fonctionnent plus. Voici ceux qui travaillent. CoNLL-2003 tâche NER: https://www.clips.uantwerpen.be/conll2003/ner/ papier: https://www.clips.uantwerpen.be/conll2003/pdf/14247tjo.pdf – Martin

+0

@ Martin J'ai corrigé les liens, merci pour les commentaires. – Stompchicken

2

Comme mentionné précédemment, il existe différentes façons de mesurer les performances NER.Il est possible d'évaluer séparément comment les entités sont détectées en termes de position dans le texte et en termes de classe (personne, lieu, organisation, etc.). Ou combiner les deux aspects en une seule mesure.

Vous trouverez une bonne revue dans la thèse suivante: D. Nadeau, Semi-Supervised Named Entity Recognition: Learning to Recognize 100 Entity Types with Little Supervision (2007). Voir la section 2.6. Evaluation du NER.

Questions connexes