命名實體識別
概念
命名實體識別(Named Entity Recognition,簡稱NER) , 是指識別文字中具有特定意義的詞(實體),主要包括人名、地名、機構名、專有名詞等等,並把我們需要識別的詞在文字序列中標註出來。
例如有一段文字:天津市空港經濟區
我們要在上面文字中識別一些區域和地點,那麼我們需要識別出來內容有:
- 天津市(地點)
- 空港經濟區(地點)
NER的識別靠的是標籤,在長期使用過程中,有一些大家使用比較頻繁的標籤,這裡有個網站可以參考
https://spacy.io/api/data-formats?source=post_page---------------------------#pos-tagging
識別上述例子我們使用了以下幾個標籤:
- "B-ORG":組織或公司(organization)
- "I-ORG":組織或公司
- "B-PER":人名(person)
- "I-PER":人名.
- "O":其他非實體(other)
- "B-LOC":地名(location)
- “I-LOC":地名
你肯定很關心“B”和“I”是什麼意思?為什麼一個實體會對應兩個標籤?(除O之外)下面會進行解釋
首先說明,在文字中我們是以字為單位進行標註的
那麼“B”和“I”是什麼東西?
“B”是Begin的縮寫,“I”我不知道是什麼的縮寫(如果你知道可以在評論區留言)
我們知道實體一般是一個詞,因此用來表示它的文字應該有多個
而“B”就是用來表示某個實體開頭的第一個字的(英文實體則為單詞)
如:
天津市可以表示為
天(B-LOC)津(I-LOC)市(I-LOC)
#以B-LOC開頭後面必須全為某某LOC,不能出現別的標籤,比如B-PER後面跟個I-LOC就不行
#在訓練的時候,我們通常會再加一個概率圖模型來減少上述錯誤的發生,如HMM等
紐約New York可以表示為
New(B-LOC) York(I-LOC)
人名同理不再舉例
“O”則表示文字中不相關的字
如:
小紅想去二空螺螄粉嗦粉
上述文字中,除了“小紅”和“二空螺螄粉”以外的字都是“O"(前提是你不關心這些字)
注:除了上述標註方法外的標註均為非法標註
那麼™的HMM又是什麼?
隱馬爾可夫模型,即HMM,是概率圖模型的一種,屬於生成模型。
籠統的說,我們在上面談論的"BIO"的實體標籤,就屬於一種不可觀測的隱狀態,而HMM模型就是描述由隱狀態序列(實體標記)生成可觀測結果(可讀文字)的過程.
在我們討論NER的問題當中,隱狀態序列是實體標記序列,而可觀測序列是我們可讀的原始語料文字序列.
如:
隱藏狀態序列:(B-LOC)(I-LOC)(I-LOC)
觀測狀態序列: 天 津 市
這只是HMM用於NER標籤時的情況
我們還可以舉個例子將HMM思想擴充一下
假如我在打遊戲,這時我突然想起一個人,然後我看通訊錄找到他的名字給他打電話
上述例子中,
想起的這個人就是隱藏狀態;
他的名字就是觀測結果;
而我舉例用的整段話就是HMM模型本身(因為它描述了一個過程)