本文對自然語言基礎(chǔ)技術(shù)之命名實體識別進行了相對全面的介紹,包括定義、發(fā)展歷史、常見方法、以及相關(guān)數(shù)據(jù)集,最后推薦一大波 Python 實戰(zhàn)利器,并且包括工具的用法。
01
定義
先來看看維基百科上的定義:Named-entity recognition (NER) (also known as entity identification, entity chunking and entity extraction) is a subtask of information extraction that seeks to locate and classify named entity mentions in unstructured text into pre-defined categories such as the person names, organizations, locations, medical codes, time expressions, quantities, monetary values, percentages, etc.
命名實體識別(Named Entity Recognition,簡稱NER),又稱作“專名識別”,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構(gòu)名、專有名詞等。簡單的講,就是識別自然文本中的實體指稱的邊界和類別。
02
發(fā)展歷史
命名實體識別這個術(shù)語首次出現(xiàn)在 MUC-6(Message Understanding Conferences),這個會議關(guān)注的主要問題是信息抽?。↖nformation Extraction),第六屆 MUC 除了信息抽取評測任務(wù)還開設(shè)了新評測任務(wù)即命名實體識別任務(wù)。
除此之外,其他相關(guān)的評測會議包括CoNLL(Conference on Computational Natural Language Learning)、ACE(Automatic Content Extraction)和IEER(Information Extraction-Entity Recognition Evaluation)等。
在MUC-6之前,大家主要是關(guān)注人名、地名和組織機構(gòu)名這三類專業(yè)名詞的識別。自MUC-6起,后面有很多研究對類別進行了更細致的劃分,比如地名被進一步細化為城市、州和國家,也有人將人名進一步細分為政治家、藝人等小類。
此外,一些評測還擴大了專業(yè)名詞的范圍,比如CoNLL某年組織的評測中包含了產(chǎn)品名的識別。一些研究也涉及電影名、書名、項目名、研究領(lǐng)域名稱、電子郵件地址、電話號碼以及生物信息學(xué)領(lǐng)域的專有名詞(如蛋白質(zhì)、DNA、RNA等)。甚至有一些工作不限定“實體”的類型,而是將其當(dāng)做開放域的命名實體識別和分類。
03
常見方法
早期的命名實體識別方法基本都是基于規(guī)則的。之后由于基于大規(guī)模的語料庫的統(tǒng)計方法在自然語言處理各個方面取得不錯的效果之后,一大批機器學(xué)習(xí)的方法也出現(xiàn)在命名實體類識別任務(wù)。宗成慶老師在統(tǒng)計自然語言處理一書粗略的將這些基于機器學(xué)習(xí)的命名實體識別方法劃分為以下幾類:
有監(jiān)督的學(xué)習(xí)方法:這一類方法需要利用大規(guī)模的已標(biāo)注語料對模型進行參數(shù)訓(xùn)練。目前常用的模型或方法包括隱馬爾可夫模型、語言模型、最大熵模型、支持向量機、決策樹和條件隨機場等。值得一提的是,基于條件隨機場的方法是命名實體識別中最成功的方法。
半監(jiān)督的學(xué)習(xí)方法:這一類方法利用標(biāo)注的小數(shù)據(jù)集(種子數(shù)據(jù))自舉學(xué)習(xí)。
無監(jiān)督的學(xué)習(xí)方法:這一類方法利用詞匯資源(如 WordNet)等進行上下文聚類。
混合方法:幾種模型相結(jié)合或利用統(tǒng)計方法和人工總結(jié)的知識庫。
值得一提的是,由于深度學(xué)習(xí)在自然語言的廣泛應(yīng)用,基于深度學(xué)習(xí)的命名實體識別方法也展現(xiàn)出不錯的效果,此類方法基本還是把命名實體識別當(dāng)做序列標(biāo)注任務(wù)來做,比較經(jīng)典的方法是 LSTM+CRF、BiLSTM+CRF。
04
相關(guān)數(shù)據(jù)集
1. CCKS2017 開放的中文的電子病例測評相關(guān)的數(shù)據(jù)。
評測任務(wù)一:
https://biendata.com/competition/CCKS2017_1/
評測任務(wù)二:
https://biendata.com/competition/CCKS2017_2/
2. CCKS2018 開放的音樂領(lǐng)域的實體識別任務(wù)。
評測任務(wù):
https://biendata.com/competition/CCKS2018_2/
3. (CoNLL 2002)Annotated Corpus for Named Entity Recognition。
地址:
https://www.kaggle.com/abhinavwalia95/entity-annotated-corpus
4. NLPCC2018 開放的任務(wù)型對話系統(tǒng)中的口語理解評測。
地址:
http://tcci.ccf.org.cn/conference/2018/taskdata.php
5. 一家公司提供的數(shù)據(jù)集,包含人名、地名、機構(gòu)名、專有名詞。
下載地址:
https://bosonnlp.com/dev/resource
05
工具推薦
1. Stanford NER
斯坦福大學(xué)開發(fā)的基于條件隨機場的命名實體識別系統(tǒng),該系統(tǒng)參數(shù)是基于 CoNLL、MUC-6、MUC-7 和 ACE 命名實體語料訓(xùn)練出來的。
地址:
https://nlp.stanford.edu/software/CRF-NER.shtml
Python 實現(xiàn)的 Github 地址:
https://github.com/Lynten/stanford-corenlp
2 .MALLET
麻省大學(xué)開發(fā)的一個統(tǒng)計自然語言處理的開源包,其序列標(biāo)注工具的應(yīng)用中能夠?qū)崿F(xiàn)命名實體識別。
官方地址:
http://mallet.cs.umass.edu/
3. Hanlp
HanLP 是一系列模型與算法組成的 NLP 工具包,由大快搜索主導(dǎo)并完全開源,目標(biāo)是普及自然語言處理在生產(chǎn)環(huán)境中的應(yīng)用。支持命名實體識別。
Github 地址:
https://github.com/hankcs/pyhanlp
官網(wǎng):
http://hanlp.linrunsoft.com/
4. NLTK
NLTK 是一個高效的 Python 構(gòu)建的平臺,用來處理人類自然語言數(shù)據(jù)。
Github 地址:
https://github.com/nltk/nltk
官網(wǎng):
http://www.nltk.org/
5. SpaCy
工業(yè)級的自然語言處理工具,遺憾的是不支持中文。
Gihub 地址:
https://github.com/explosion/spaCy
官網(wǎng):https://spacy.io/
6. Crfsuite
可以載入自己的數(shù)據(jù)集去訓(xùn)練 CRF 實體識別模型。
文檔地址:
https://sklearn-crfsuite.readthedocs.io/en/latest/?badge=latest
代碼已上傳:
https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/NER.ipynb
-
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1200瀏覽量
24621 -
自然語言處理
+關(guān)注
關(guān)注
1文章
600瀏覽量
13484
原文標(biāo)題:一文讀懂命名實體識別
文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論