日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

NLPIR 汉语分词系统 (PyNLPIR) 学习手札

發布時間:2023/12/10 windows 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NLPIR 汉语分词系统 (PyNLPIR) 学习手札 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 關于NLPIR

最近在做一些NLP相關的任務,其中一個關鍵的子任務就是如何對漢語進行分詞?關于分詞的方式,有很多很多,也是很多學習者的練手任務(比如我們當時的期末作業就有這個)。但是,輪子還是要搬來用,自己寫的分詞只能說是去了解這個方式(了解某個算法),做出來的都是能看不能用,畢竟模型、算法、語料庫等一座座大山等著我們攻克。

所以,我找了一些資料,看到一個不錯的教程,他用了NLPIR,所以我也跟著使用NLPIR,并且在這里留下手札,方便自己后續查閱,也希望能夠再幫助其他人理解。

在這篇手札當中,我選擇的是Python的版本,也就是PyNLPIR

NLPIR的官網是:http://ictclas.nlpir.org/
其Python版本文檔(英文)地址:http://pynlpir.readthedocs.io/en/latest/
本篇手札的首要參考博客:http://www.shareditor.com/blogshow/?blogId=74

關于NLPIR 其官網的介紹是:

NLPIR漢語分詞系統(又名ICTCLAS2013),主要功能包括中文分詞;詞性標注;命名實體識別;用戶詞典功能;支持GBK編碼、UTF8編碼、BIG5編碼。新增微博分詞、新詞發現與關鍵詞提取;張華平博士先后傾力打造十余年,內核升級10次。

全球用戶突破20萬,先后獲得了2010年錢偉長中文信息處理科學技術獎一等獎,2003年國際SIGHAN分詞大賽綜合第一名,2002年國內973評測綜合第一名。

2 PyNLPIR 安裝

PyNLPIR的安裝很簡單,首先你要保證你安裝了PIP,這個工具在我的博客的各個手札當中出現過很多次,沒有安裝的可以看看之前的博客。

使用PIP我們可以非常快速的安裝完成,終端執行如下的指令,等待安裝完成即可(如果權限不夠,請在前面加sudo):

$ pip install pynlpir

安裝完成后,我們驗證一下是否成功了,啟動Python解釋器,敲入如下的代碼,引入pynlpir,如果回車后沒有問題,就證明安裝成功

import pynlpir

3 分詞與詞性標注

首先我們試驗一下分詞,這里貼出了源代碼,安裝完成PyNLPIR后,大家自己運行一下這個代碼就可以。

需要注意的是,使用pynlpir的時候,首先要初始化,也就是需要先open(pynlpir.open()),當執行完成后需要對應的關閉(pynlpir.close())

# coding:utf-8import sys reload(sys) sys.setdefaultencoding( "utf-8" )import pynlpirpynlpir.open() s = '因為我比較懶,所以我就只是修改了這句話,代碼還是原博客的' segments = pynlpir.segment(s) for segment in segments:print segment[0], '\t', segment[1]pynlpir.close()

如果運行成功,那么應該會給出如下的結果

因為 preposition 我 pronoun 比較 adverb 懶 adjective , punctuation mark 所以 conjunction 我 pronoun 就 adverb 只 adverb 是 verb 修改 verb 了 particle 這 pronoun 句 classifier 話 noun , punctuation mark 代碼 noun 還 adverb 是 verb 原 distinguishing word 博客 noun 的 particleProcess finished with exit code 0

NLPIR還可以更加詳細的輸出詞性信息,做如下修改:

segments = pynlpir.segment(s) 改為: segments = pynlpir.segment(s,pos_names='all') 你可以在segment時同時配置如下參數,調整結果,請自行選擇: pos_names='all' / 'child' / 'parent' #默認是parent, 表示獲取該詞性的最頂級詞性,child表示獲取該詞性的最具體的信息,all表示獲取該詞性相關的所有詞性信息,相當于從其頂級詞性到該詞性的一條路徑 pos_english=False # 詞性標注結果以中文的形式顯示 pos_tagging=False # 只做分詞,而不顯示詞性

運行后可以得到更加詳細的結果:

因為 preposition 我 pronoun:personal pronoun 比較 adverb 懶 adjective , punctuation mark:comma 所以 conjunction 我 pronoun:personal pronoun 就 adverb 只 adverb 是 verb:verb 是 修改 verb 了 particle:particle 了/嘍 這 pronoun:demonstrative pronoun:predicate demonstrative pronoun 句 classifier 話 noun , punctuation mark:comma 代碼 noun 還 adverb 是 verb:verb 是 原 distinguishing word 博客 noun:other proper noun 的 particle:particle 的/底

4 關鍵詞提取

在如上的代碼基礎上,略微的修改代碼

# coding:utf-8import sys reload(sys) sys.setdefaultencoding( "utf-8" )import pynlpirpynlpir.open() s = '因為我比較懶,所以我就只是修改了這句話,代碼還是原博客的' print '關鍵詞測試:\n' key_words = pynlpir.get_key_words(s, weighted=True) for key_word in key_words:print key_word[0], '\t', key_word[1]pynlpir.close()

運行后提取出來的關鍵詞應該是:

關鍵詞測試:

關鍵詞測試:修改 2.0 代碼 2.0 博客 2.0Process finished with exit code 0

附錄 NLPIR 詞性分類信息

POS_MAP = {'n': ('名詞', 'noun', {'nr': ('人名', 'personal name', {'nr1': ('漢語姓氏', 'Chinese surname'),'nr2': ('漢語名字', 'Chinese given name'),'nrj': ('日語人名', 'Japanese personal name'),'nrf': ('音譯人名', 'transcribed personal name')}),'ns': ('地名', 'toponym', {'nsf': ('音譯地名', 'transcribed toponym'),}),'nt': ('機構團體名', 'organization/group name'),'nz': ('其它專名', 'other proper noun'),'nl': ('名詞性慣用語', 'noun phrase'),'ng': ('名詞性語素', 'noun morpheme'),}),'t': ('時間詞', 'time word', {'tg': ('時間詞性語素', 'time morpheme'),}),'s': ('處所詞', 'locative word'),'f': ('方位詞', 'noun of locality'),'v': ('動詞', 'verb', {'vd': ('副動詞', 'auxiliary verb'),'vn': ('名動詞', 'noun-verb'),'vshi': ('動詞""', 'verb 是'),'vyou': ('動詞""', 'verb 有'),'vf': ('趨向動詞', 'directional verb'),'vx': ('行事動詞', 'performative verb'),'vi': ('不及物動詞', 'intransitive verb'),'vl': ('動詞性慣用語', 'verb phrase'),'vg': ('動詞性語素', 'verb morpheme'),}),'a': ('形容詞', 'adjective', {'ad': ('副形詞', 'auxiliary adjective'),'an': ('名形詞', 'noun-adjective'),'ag': ('形容詞性語素', 'adjective morpheme'),'al': ('形容詞性慣用語', 'adjective phrase'),}),'b': ('區別詞', 'distinguishing word', {'bl': ('區別詞性慣用語', 'distinguishing phrase'),}),'z': ('狀態詞', 'status word'),'r': ('代詞', 'pronoun', {'rr': ('人稱代詞', 'personal pronoun'),'rz': ('指示代詞', 'demonstrative pronoun', {'rzt': ('時間指示代詞', 'temporal demonstrative pronoun'),'rzs': ('處所指示代詞', 'locative demonstrative pronoun'),'rzv': ('謂詞性指示代詞', 'predicate demonstrative pronoun'),}),'ry': ('疑問代詞', 'interrogative pronoun', {'ryt': ('時間疑問代詞', 'temporal interrogative pronoun'),'rys': ('處所疑問代詞', 'locative interrogative pronoun'),'ryv': ('謂詞性疑問代詞', 'predicate interrogative pronoun'),}),'rg': ('代詞性語素', 'pronoun morpheme'),}),'m': ('數詞', 'numeral', {'mq': ('數量詞', 'numeral-plus-classifier compound'),}),'q': ('量詞', 'classifier', {'qv': ('動量詞', 'verbal classifier'),'qt': ('時量詞', 'temporal classifier'),}),'d': ('副詞', 'adverb'),'p': ('介詞', 'preposition', {'pba': ('介詞“把”', 'preposition 把'),'pbei': ('介詞“被”', 'preposition 被'),}),'c': ('連詞', 'conjunction', {'cc': ('并列連詞', 'coordinating conjunction'),}),'u': ('助詞', 'particle', {'uzhe': ('著', 'particle 著'),'ule': ('了/嘍', 'particle 了/嘍'),'uguo': ('過', 'particle 過'),'ude1': ('的/底', 'particle 的/底'),'ude2': ('地', 'particle 地'),'ude3': ('得', 'particle 得'),'usuo': ('所', 'particle 所'),'udeng': ('等/等等/云云', 'particle 等/等等/云云'),'uyy': ('一樣/一般/似的/般', 'particle 一樣/一般/似的/般'),'udh': ('的話', 'particle 的話'),'uls': ('來講/來說/而言/說來', 'particle 來講/來說/而言/說來'),'uzhi': ('之', 'particle 之'),'ulian': ('連', 'particle 連'),}),'e': ('嘆詞', 'interjection'),'y': ('語氣詞', 'modal particle'),'o': ('擬聲詞', 'onomatopoeia'),'h': ('前綴', 'prefix'),'k': ('后綴' 'suffix'),'x': ('字符串', 'string', {'xe': ('Email字符串', 'email address'),'xs': ('微博會話分隔符', 'hashtag'),'xm': ('表情符合', 'emoticon'),'xu': ('網址URL', 'URL'),'xx': ('非語素字', 'non-morpheme character'),}),'w': ('標點符號', 'punctuation mark', {'wkz': ('左括號', 'left parenthesis/bracket'),'wky': ('右括號', 'right parenthesis/bracket'),'wyz': ('左引號', 'left quotation mark'),'wyy': ('右引號', 'right quotation mark'),'wj': ('句號', 'period'),'ww': ('問號', 'question mark'),'wt': ('嘆號', 'exclamation mark'),'wd': ('逗號', 'comma'),'wf': ('分號', 'semicolon'),'wn': ('頓號', 'enumeration comma'),'wm': ('冒號', 'colon'),'ws': ('省略號', 'ellipsis'),'wp': ('破折號', 'dash'),'wb': ('百分號千分號', 'percent/per mille sign'),'wh': ('單位符號', 'unit of measure sign'),}),}

總結

以上是生活随笔為你收集整理的NLPIR 汉语分词系统 (PyNLPIR) 学习手札的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。