用深度學習做命名實體識別(一):文字資料標註
“ 本文是用深度學習做命名實體識別系列的第一篇,通過本文,你將瞭解如何用brat做文字資料標註。”
一、 什麼是命名實體識別?
從一句話中識別出人名,地名,組織名,日期時間,這就是命名實體識別的一個例子,而人名,地名等這些被識別的目標就是命名實體。當然命名實體還可以是很多其它有意義的目標,比如產品,公司,專有名詞等等。
二、 為什麼要做文字資料標註?
瞭解過機器學習的朋友都知道,無論是傳統的機器學習還是深度學習,大多數情況都是在做監督學習,也就是需要大量標註好的資料做為訓練樣本,那麼這裡,如果希望機器能識別出人名,地名,就必須事先給機器看看在一句話中,什麼是人名,什麼是地名,當然只看一句話是遠遠不夠的,一般來說,至少也要上千句話才可以。標註出這些句子中的命名實體的過程,就是我們本次要介紹的——文字資料標註。
三、怎麼做文字資料標註?
資料標註,最粗暴的方式,就是直接用txt存放各個句子,然後用一些特殊符號將目標詞括起來,寫上所屬的實體類別,但是這樣做有以下弊端:
-
txt上標註還是挺不方便的
-
白底黑字,很快就會看花眼了
-
標註的格式難以統一,因為很容易出錯,比如少個符號
-
無法多人協同標註
因此,已經有很多大牛們研發了許多協助標註文字的工具,本文將基於其中一種個人覺得比較好用的工具——brat,來介紹文字標註過程。如果你還沒有了解過brat,可以參考上一篇文章《文字標註工具brat簡介》。
四、文字資料標註的具體過程
當成功安裝和配置好了brat,我們就可以進行文字標註了。首先在brat專案的data目錄下新建一個project目錄,然後在該目錄下放入如下檔案:
其中,annotation.conf是配置檔案,內容如下:
[entities] # Definition of entities. # Format is a simple list with one type per line. 時間 地點 人名 組織名 公司名 產品名
visual.conf也是配置檔案,可以配置不同的類別用不同的顏色顯示,找到如下段落,更新內容:
[drawing] 時間 bgColor:yellow 地點 bgColor:blue, fgColor:white 人名 bgColor:deepskyblue 組織名 bgColor:green, fgColor:white 公司名 bgColor:purple, fgColor:white 產品名 bgColor:pink
mayun.txt是我們要標註的原檔案,裡面的內容片段如下(這裡用句號分句處理,是因為不希望每個訓練樣本太長,建議控制在500字元內):
1964年9月10日,馬雲出生在杭州。 幼年的馬雲在人們的眼中是典型的壞孩子:叛逆、倔強、愛打架、逞強、頑皮淘氣。 馬雲的父親雖然是典型的江南人,但脾氣卻很火暴,馬雲從小在父親拳腳下長大。 馬雲是看金庸的武俠小說長大的,行俠仗義、打抱不平的“俠義”情結在少年馬雲的內心深處早已生根、萌芽。
mayun.ann是一個空檔案,使用brat對mayun.txt的標註結果,會記錄在ann檔案中。
此時我們通過瀏覽器訪問brat專案介面,開啟project目錄下的mayun.txt檔案(記得要先登入),看到的介面如下:
然後我們選擇目標實體,比如“馬雲”,進行實體類別標註,效果如下:
此時,你可以邀請其他人用他們的帳號登入brat,也開啟這個txt,和你一起標註。標註之後,再看看ann檔案內容,如下:
T1,T2標識這行是對實體進行的標註;
-
人名,公司名所在列是實體類別;
-
第三、四列是標註詞彙在整個txt中的起始和(結束索引+1)
-
最後一列是就是標註的詞彙列
標註完成後,我們就有了mayun.txt和mayun.ann兩個對應的檔案。關於如何使用這兩個檔案,將在下一篇《用深度學習做命名實體識別(二):模型訓練》中介紹。
ok,本篇就這麼多內容啦~,感謝閱讀O(∩_∩)O