命名實體識別 – Named-entity recognition | NER
- 2019 年 12 月 18 日
- 筆記
文章目錄

什麼是命名實體識別?
命名實體識別(Named Entity Recognition,簡稱NER),又稱作「專名識別」,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。簡單的講,就是識別自然文本中的實體指稱的邊界和類別。
命名實體識別的發展歷史
NER一直是NLP領域中的研究熱點,從早期基於詞典和規則的方法,到傳統機器學習的方法,到近年來基於深度學習的方法,NER研究進展的大概趨勢大致如下圖所示。

階段 1:早期的方法,如:基於規則的方法、基於字典的方法
階段 2:傳統機器學習,如:HMM、MEMM、CRF
階段 3:深度學習的方法,如:RNN – CRF、CNN – CRF
階段 4:近期新出現的一些方法,如:注意力模型、遷移學習、半監督學習的方法
4類常見的實現方式

早期的命名實體識別方法基本都是基於規則的。之後由於基於大規模的語料庫的統計方法在自然語言處理各個方面取得不錯的效果之後,一大批機器學習的方法也出現在命名實體類識別任務。宗成慶老師在統計自然語言處理一書粗略的將這些基於機器學習的命名實體識別方法劃分為以下幾類:
有監督的學習方法:這一類方法需要利用大規模的已標註語料對模型進行參數訓練。目前常用的模型或方法包括隱馬爾可夫模型、語言模型、最大熵模型、支援向量機、決策樹和條件隨機場等。值得一提的是,基於條件隨機場的方法是命名實體識別中最成功的方法。
半監督的學習方法:這一類方法利用標註的小數據集(種子數據)自舉學習。
無監督的學習方法:這一類方法利用辭彙資源(如WordNet)等進行上下文聚類。
混合方法:幾種模型相結合或利用統計方法和人工總結的知識庫。
值得一提的是,由於深度學習在自然語言的廣泛應用,基於深度學習的命名實體識別方法也展現出不錯的效果,此類方法基本還是把命名實體識別當做序列標註任務來做,比較經典的方法是LSTM+CRF、BiLSTM+CRF。
NER 的相關數據集
數據集 |
簡要說明 |
訪問地址 |
---|---|---|
電子病例測評 |
CCKS2017開放的中文的電子病例測評相關的數據 |
測評1 | 測評2 |
音樂領域 |
CCKS2018開放的音樂領域的實體識別任務 |
CCKS |
位置、組織、人… |
這是來自GMB語料庫的摘錄,用於訓練分類器以預測命名實體,例如姓名,位置等。 |
kaggle |
口語 |
NLPCC2018開放的任務型對話系統中的口語理解評測 |
NLPCC |
人名、地名、機構、專有名詞 |
一家公司提供的數據集,包含人名、地名、機構名、專有名詞 |
boson |
相關工具推薦
工具 |
簡介 |
訪問地址 |
---|---|---|
Stanford NER |
斯坦福大學開發的基於條件隨機場的命名實體識別系統,該系統參數是基於CoNLL、MUC-6、MUC-7和ACE命名實體語料訓練出來的。 |
官網 | GitHub 地址 |
MALLET |
麻省大學開發的一個統計自然語言處理的開源包,其序列標註工具的應用中能夠實現命名實體識別。 |
官網 |
Hanlp |
HanLP是一系列模型與演算法組成的NLP工具包,由大快搜索主導並完全開源,目標是普及自然語言處理在生產環境中的應用。支援命名實體識別。 |
官網 | GitHub 地址 |
NLTK |
NLTK是一個高效的Python構建的平台,用來處理人類自然語言數據。 |
官網 | GitHub 地址 |
SpaCy |
工業級的自然語言處理工具,遺憾的是不支援中文。 |
官網 | GitHub 地址 |
Crfsuite |
可以載入自己的數據集去訓練CRF實體識別模型。 |
文檔 | GitHub 地址 |
本文轉載自公眾號 AI 小白入門,原文地址
擴展閱讀
實踐類文章(1)
【實戰】NLP命名實體識別開源實戰教程(2019-9)
基於 BERT 的中文命名實體識別 – NER(2019-7)