2009-11-23 531 views
20

現在我要報告名稱實體識別的結果。我發現有一點讓我感到困惑的是,我對精確度和回憶的理解是,我們只是簡單地總結出所有類別的真正的積極,真正的消極,假的肯定和錯誤的消極。命名實體識別的計算精度和召回率

但是,現在我認爲這是不合理的,因爲每個錯誤分類會同時產生一個假陽性和一個假陰性(例如,應該被標記爲「A」但標記爲「B」的標記是「A」的假陰性和「B」的假陽性)。因此,所有類別的假陽性和假陰性的數量將是相同的,這意味着精度(總是)等於回想。這根本不可能是真的,所以我的推理出現錯誤,我想知道它在哪裏。這當然是非常明顯和直截了當的事情,但它現在逃脫了我。

回答

32

通常計算方式的精確度和召回率(這是我在論文中使用的)是衡量實體對方。假設基礎事實具有以下(沒有任何differentiaton因爲他們是什麼類型的實體)

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

這有3個實體。

假設您的實際提取具有CEOtoday,爲Windows 7假陰性和Steve

子字符串匹配以下

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

你必須精確匹配爲Microsoft Corp,誤報我們通過首先定義匹配標準來計算精度和召回率。例如,他們是否必須完全匹配?如果它們重疊,它是否匹配?實體類型是否重要?通常我們想爲這些標準中的幾個提供精確度和召回率。

完全匹配:真陽性= 1(Microsoft Corp.,唯一的精確匹配),假陽性= 3(CEOtoday,和Steve,這是不完全匹配),假陰性= 2(Steve BallmerWindows 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 

任何重疊OK:真陽性= 2(Microsoft Corp.,和Steve重疊Steve Ballmer),假陽性= 2(CEO,並且today),假陰性= 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 

讀者然後離開來推斷「真實性能」(精確度和記得,當允許使用人的無偏人類檢查會給判斷哪些重疊差異是重要的,哪些不重要)是在兩者之間的某處。

通常報告測量是精確度和召回率的調和平均值,並且當您必須在精確度與回想率之間進行權衡時,會提供一些「性能」的概念。

+0

+1全面! – KillBill 2012-08-22 15:56:59

+0

很棒的回答。問題:在這種情況下,「真正的否定」是什麼意思?我相信,需要計算準確性。 – 2016-01-19 19:42:32

+0

假設我根據第二個策略評估(重疊是OK)。如何處理[史蒂夫] [鮑爾默]等情況?兩個(部分)匹配都是正確的,真正的正數是如何計算的? – 2017-11-21 11:44:33

2

這個問題沒有簡單的正確答案。有多種不同的方法來計算錯誤。 MUC競賽使用了一個,其他人使用了其他人。

但是,以幫助您與您的直接困惑:

你有一組標籤,不是嗎?像無人,人,動物,蔬菜?

如果一個令牌應該是人,並且您將其標記爲NONE,那麼這對NONE是一個誤報,對PERSON是一個誤報。如果令牌應該是NONE,並且您將其標記爲PERSON,則相反。

所以你得到每個實體類型的分數。

您也可以彙總這些分數。

2

只是要清楚,這些都是定義:

精密= TP /(TP + FP)=什麼部分,你發現了什麼研磨真相?

回想一下= TP /(TP + FN)=你恢復了什麼部分的基本事實?

不一定總是相等的,因爲假陰性的數量不一定等於假陽性的數量。

如果我理解您的問題是正確的,那麼您將爲每個標記分配兩個以上可能標記中的一個。爲了使精確度和召回有意義,您需要有一個binary classifier。所以你可以使用精度和召回,如果你說分類器是一個令牌是否在組「A」,然後重複每個組。在這種情況下,錯過的分類會計爲兩次爲一個組的假陰性和另一個組的假陽性。

如果你正在做一個這樣的分類,它不是二進制的(把每個標記分配給一個組),它可能是有用的,而不是看成對的標記。將您的問題解釋爲「是否在相同分類組中標記X和Y?」。這使您可以計算所有節點對的精確度和召回率。如果您的分類羣組被標記或具有相關含義,則這不合適。例如,如果您的分類組是「水果」和「蔬菜」,並且將「蘋果」和「橙子」分類爲「蔬菜」,那麼即使分配了錯誤組,該算法也會將其評分爲真正的正數。但是,如果你的團體是非標記的,例如「A」和「B」,那麼如果蘋果和橘子都被分類爲「A」,則可以說「A」對應於「水果」。

6

CoNLL-2003 NER task中,評估是基於正確標記的實體,而不是標記,如文章'Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition'中所述。如果系統用文檔中的正確起始點和終點標識具有正確類型的實體,則會正確標記實體。我更喜歡這種評估方法,因爲它更接近實際任務的性能指標; NER系統的用戶關心實體,而不是單個令牌。

但是,您描述的問題仍然存在。如果您將類型爲ORG的實體標記爲LOC,則會導致LOC的誤報和ORG的誤報。在這個blog post有一個有趣的討論。

+0

您的鏈接不再有效。這裏是工作的。 CoNLL-2003 NER任務:https://www.clips.uantwerpen.be/conll2003/ner/ 紙:https://www.clips.uantwerpen.be/conll2003/pdf/14247tjo.pdf – Martin 2018-01-15 12:16:13

+0

@馬丁我修復了這些鏈接,感謝您的反饋。 – Stompchicken 2018-01-15 17:15:38