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