jieba词性标注
這里首先了解下詞性標注:
中文的詞性標注一般存在很多不固定性,比如同音同形的詞在不同的場景下,其表示的語法屬性截然不用,這就為詞性標注帶來了很大的困難。但是從另外一個方面看,整體上來說大多數的詞語,尤其是實詞,一般只有一個到兩個詞性,而其中一個詞性相對于另一個是高頻的,這時如果默認將高頻詞性作為詞性選擇進行標注,也能有很高的準確率。這時對于大部分的場景來說,還是能滿足基本的準確度要求的。
最簡單的方法是:統計語料庫中的每個詞對應的詞性,然后將每個詞的高頻詞性作為該詞的詞性。也就是說輸入語料必須是已經標注好詞性的語料庫。
與此同時,還可以有所提升,目前較多的做法是將詞性標注的問題轉化為用分詞的方法,也即是將句子的詞性標注作為一個序列標注問題來解決。這樣的話,分詞中的方法,如HMM、CRF等都可以用在詞性標注上。
詞性標注規范:
目前有北大的詞性標注集和賓州詞性標注集,這里采用的是北大的詞性標注集。
這里說下jieba的詞性標注:
jieba詞性標注有點類似于其分詞流程,也是基于規則和統計的方法,也就是在詞性標注的過程中,詞典匹配和HMM共同作用。
- 首先基于正則表達式判斷是否是漢字
- 若不是漢字,將繼續通過正則表達式進行類型判斷。
- 若是漢字,則基于前綴詞典構建有向無環圖,再基于有向無環圖計算最大概率路徑,同時在前綴詞典中找出它所分出的詞性,若未找到,則賦予“x”,代表未知。如有未登錄詞,則會通過HMM進行詞性標注。
那么HMM是怎樣應用于詞性標注的呢?
這里簡單說下,就是在分詞任務中,我們用’B’、’M’、’S’、’E’四中標簽,與句子中的每個字符一一對應,而在詞性標注中jieba采用了聯合模型的方式,即將基于字標注的方法和詞性標注結合起來,使用復合標注集。比如:‘人民’,分詞為‘BE’,而詞性為‘n’,這時‘人’的標注就是‘B_n’,而‘民’的標注就是‘E_n’,剩下的就和HMM分詞過程一致了,但這里要更換適合的訓練語料庫。
運行結果:
中文/nz分詞/n是/v文本處理/n不可或缺/l的/uj一步/m!/x這里只是對jieba詞性標注做了一個簡單介紹,以后再深入討論。
參考:《pytho自然語言處理實戰 核心技術與算法》
總結
- 上一篇: windows10下Anaconda s
- 下一篇: 命名实体识别——日期识别