命名實體識別(named-entity recognition)
/ NAYMD EN-tih-tee rek-ug-NISH-un /
命名實體識別,簡稱 NER,是這樣一項任務:閱讀文本,把其中的專有名稱——具體的人物、地點、機構、日期和數額——標出來,並說明每一個是哪一類。把它跑在「Apple opened a store in Berlin on Tuesday」上,它會把「Apple」標成機構,「Berlin」標成地點,「Tuesday」標成日期。可以把它想成機器拿起螢光筆,在文件上用顏色給「誰、何地、何時」分門別類。
棘手之處在於名稱很滑溜。「Apple」可能是公司,也可能是水果;「Washington」可能是人、城市或一個州;「Jordan」可能是國家,也可能是籃球運動員。唯有周圍的詞才能裁定。正因每個詞的標籤都取決於它的鄰居,NER 被當作序列標註來處理——模型從左到右(再從右到左)讀句子,給每個詞元賦上一個標籤,比如「一個機構名的開頭」或「不是實體」。這些模式,它是從人們煞費苦心標註過的文本中學來的。
NER 悄無聲息地驅動著許多日常軟體:它從履歷裡抽出姓名和日期,在財經新聞裡標出公司,把你的搜尋查詢連結到正確的資料庫條目,還為問答系統打頭陣。它誠實的侷限值得一提——遇到從沒見過的名稱、非正式或嘈雜的文本時它會出錯,在標註資料稀少的語言上尤甚。而且它只負責找出名稱;理解關於這些名稱都說了些什麼,是另一樁更難的活兒。
「Tim Cook met Angela Merkel in Berlin last March.」NER 輸出:Tim Cook = 人物,Angela Merkel = 人物,Berlin = 地點,last March = 日期。動詞和虛詞則不予標註。
NER 把「誰、何地、何時」標出來——其餘的一概不動。
NER 負責找出名稱並歸類;它並不理解關於這些名稱所做的論斷。同一個字串(「Apple」「Washington」)可能屬於不同的實體類別,所以做決定靠的是上下文,而非一張名稱清單。