命名實體識別


命名實體識別(Named Entity Recognition,NER)是NLP中一項非常基礎的任務。NER是信息提取、問答系統、句法分析、機器翻譯等眾多NLP任務的重要基礎工具。

 

命名實體識別的准確度,決定了下游任務的效果,是NLP中非常重要的一個基礎問題。

 

作者&編輯 | 小Dream哥

1 命名實體識別是什么?

 

要了解NER是一回什么事,首先要先說清楚,什么是實體。要討論實體的理論概念,可能會花上一整天的時間,我們不過多糾纏。

簡單的理解,實體,可以認為是某一個概念的實例。

例如,“人名”是一種概念,或者說實體類型,那么“蔡英文”就是一種“人名”實體了。“時間”是一種實體類型,那么“中秋節”就是一種“時間”實體了。

所謂實體識別,就是將你想要獲取到的實體類型,從一句話里面挑出來的過程。

小明 在 北京大學 的 燕園 看了

PER ORG LOC

中國男籃 的一場比賽

ORG

如上面的例子所示,句子“小明在北京大學的燕園看了中國男籃 的一場比賽”,通過NER模型,將“小明 ”以PER,“北京大學”以ORG,“燕園”以LOC,“中國男籃”以ORG為類別分別挑了出來。

2 命名實體識別的數據標注方式

NER是一種序列標注問題,因此他們的數據標注方式也遵照序列標注問題的方式,主要是BIO和BIOES兩種。這里直接介紹BIOES,明白了BIOES,BIO也就掌握了。

先列出來BIOES分別代表什么意思:

B,即Begin,表示開始

I,即Intermediate,表示中間

E,即End,表示結尾

S,即Single,表示單個字符

O,即Other,表示其他,用於標記無關字符

將“小明在北京大學的燕園看了中國男籃的一場比賽”這句話,進行標注,結果就是:

[B-PER,E-PER,O, B-ORG,I-ORG,I-ORG,E-ORG,O,B-LOC,E-LOC,O,O,B-ORG,I-ORG,I-ORG,E-ORG,O,O,O,O]

那么,換句話說,NER的過程,就是根據輸入的句子,預測出其標注序列的過程。

3 命名實體識別的方法介紹

1)HMM和CRF等機器學習算法

HMM和CRF很適合用來做序列標注問題,早期很多的效果較好的成果,都是出自這兩個模型。兩種模型在序列標注問題中應用,我們在之前的文章中有介紹,感興趣的同學可以看下如下鏈接的文章:

圖標

目前做NER比較主流的方法就是采用LSTM作為特征抽取器,再接一個CRF層來作為輸出層,后面我們用專門的文章來介紹這個模型。如下圖所示:

3)CNN+CRF

CNN雖然在長序列的特征提取上有弱勢,但是CNN模型可有並行能力,有運算速度快的優勢。膨脹卷積的引入,使得CNN在NER任務中,能夠兼顧運算速度和長序列的特征提取,后面我們用專門的文章來介紹這個模型。

 

4)BERT+(LSTM)+CRF

BERT中蘊含了大量的通用知識,利用預訓練好的BERT模型,再用少量的標注數據進行FINETUNE是一種快速的獲得效果不錯的NER的方法,后面我們用專門的文章來介紹這個模型。

 

NER 是 NLP 中一項基本任務,就是從文本中識別出命名性指稱項,為關系抽取等任務做鋪墊,在信息抽取、信息檢索、機器翻譯、問答系統等多種自然語言處理技術中必不可少的組成部分。

命名實體識別研究的命名實體一般分為 3 大類(實體類、時間類、數字類)和 7 小類(人名、地名、組織機構名、時間、日期、貨幣和百分比)。由於時間、日期、貨幣等實體構成的規律比較明顯,其實體類型識別通常可以采用模式匹配的方式獲得比較好的識別效果,所以,相較而言,人名、地名、機構名較復雜,目前的研究主要以這幾種實體為主。

 中文命名實體識別

NER 的效果評判主要是看實體的邊界是否划分正確以及實體的類型是否標注正確。相對於英文 NER ,中文 NER 有以下難點:
(1)不像英文有明顯的實體邊界;
(2)各類命名實體的數量眾多。如人名大多屬於未登錄詞;
(3)命名實體的構成規律復雜。如中文人名識別可以細分為中國人名識別、音譯人名識別等;另外,機構名的組成方式最復雜,種類繁多,規律不統一。
(4)嵌套情況復雜。如人名中嵌套着地名,地名中嵌套着人名、機構名。
(5)長度不確定。相對於人名、地方,機構名的長度和邊界更難以識別,中國人名一般為2-4字,常用地方也大多為2-4字,但機構名長度變化范圍極大。

 命名實體識別的主要三種方法:

    1. 基於規則的命名實體識別:
      利用手工構造規則模板,選用特征包括統計信息、標點符號、關鍵字、指示詞和方向詞、位置詞(如尾字)、中心詞等方法,結合命名實體庫,對每條規則進行權重賦值,然后通過實體與規則的相符情況來進行類型判斷,即:將文本與規則進行匹配來識別出命名實體。例如,對於中文來說,“說”、“老師”等詞語可作為人名的下文,“大學”、“醫院”等詞語可以作為組織機構名的結尾,還可以利用到詞性、句法信息。
      當提取的規則能夠較好地反映語言現象時,該方法能明顯優於其他方法。但在大多數場景下,在構建規則的過程中往往需要大量的語言學知識,不同語言的識別規則不盡相同。規則的構建往往依賴於具體語言、領域和文本風格,其構建規則過程耗時且難以覆蓋所有的語言現象,可移植性差、更新維護困難等。

    2. 基於統計的命名實體識別:
      目前常用的基於統計機器學習的命名實體識別方法有:隱馬爾可夫模型(HMM)、最大熵模型(ME)、支持向量機(SVM)、條件隨機場(CRF)等。其主要思想是:基於人工標注的大量語料,將命名實體識別作為序列標注問題,利用語料來學習標注模型,從而對句子的各個位置進行標注。

    3. 混合方法:
      自然語言處理並不完全是一個隨機的過程,單獨使用基於規則的方法,狀態搜索空間大,必須要借助規則提前進行過濾修剪處理。目前沒有單獨使用統計模型而不使用規則知識的命名實體識別系統,很多情況下是使用規則和統計結合的混合方法。

      目前主流的方法是序列標注方式,即特征模板 +CRF 。

      1. # coding: utf-8
        import nltk
        
        #nltk.download('maxent_ne_chunker')
        ex = "Shubhangi visited the Taj Mahal after taking a SpiceJet flight from Pune "
        tags = nltk.pos_tag(nltk.word_tokenize(ex))
        ne = nltk.ne_chunk(tags,binary = True)
        ne.draw()

         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM