NLP算法-词性标注
詞性標注
- 什么是詞性標注?
- 詞性標注規范
- Jieba 分詞中的詞性標注
- 測試說明
- demo
什么是詞性標注?
在自然語言分析中,機器需要模擬理解語言。為了實現這一點,自然語言處理過程中必須在一定程度上能夠了解自然語言的規則。首先需要理解的是詞,特別是每一個詞的性質,判斷它是一個名詞還是一個形容詞?如果它是一個動詞的屈折形式,那么它的不定形式是什么,以及該屈折形式使用了什么對應的時態、人稱和數?這個任務被稱為詞性標注。
詞性標注的目標是用一個單獨的標簽標記每一個詞,該標簽表示了用法和其句法作用,比如名詞、動詞、形容詞等。詞性標注的正確與否將會直接影響到后續的句法分析、語義分析,它是中文信息處理的基礎性課題之一。
常用的詞性標注模型有 N 元模型、隱馬爾可夫模型、最大熵模型、基于決策樹的模型等。其中,隱馬爾可夫模型是應用較廣泛且效果較好的模型之一。
詞性標注規范
詞性標注需要有一定的標注規范,如將詞分為名詞、形容詞、動詞,然后用 n 、 adj 、 v 等來進行表示。中文領域中尚無統一的標注標準,較為主流的主要為北大的詞性標注集和賓州詞性標注集兩大類。兩類標注方式各有千秋,一般我們任選一種。如圖下表所示,即為目前常用的詞性標注規范表。
| ag | 形語素 | 形容詞性語素。形容詞代碼為 a ,語素代碼 g 前面置以 a |
| a | 形容詞 | 取英語形容詞 adjective 的第1個字母 |
| ad | 副形詞 | 直接作狀語的形容詞。形容詞代碼 a 和副詞代碼 d 并在一起 |
| b | 區別詞 | 取漢字“別”的聲母 |
| z | 狀態詞 | 取漢字“狀”的前一個字母 |
| v | 動詞 | 取英語動詞 verb 的第一個字母 |
Jieba 分詞中的詞性標注
類似 Jieba 分詞的分詞流程, Jieba 的詞性標注同樣是結合規則和統計的方式,具體為在詞性標注的過程中詞典匹配和 HMM 共同作用。
詞性標注流程如下:
示例:
import jieba.posseg as pseg words = pseg.cut("我愛北京天安門") # 進行分詞 for word, flag in words:print('%s %s' % (word, flag))對應輸出為:
我 r 愛 v 北京 ns 天安門 ns測試說明
測試輸入:
還有什么是比jieba更好的中文分詞工具呢?
預期輸出:
還有/v 什么/r 是/v 比/p jieba/eng 更好/d 的/uj 中文/nz 分詞/n 工具/n 呢/y ?/x
demo
import jieba.posseg as psg text=input() #任務:使用jieba模塊的函數對text完成詞性標注并將結果存儲到result變量中words = list(psg.cut(text)) result = '' for word, flag in words:result += word + '/' + flag + ' 'print(result)總結
以上是生活随笔為你收集整理的NLP算法-词性标注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【操作系统】30天自制操作系统--(26
- 下一篇: NLTK2:词性标注