Python使用pynlpir進(jìn)行中文分詞并保留段落信息
一、引言
nlpir是由張華平博士開(kāi)發(fā)的中文自然處理工具,可以對(duì)中文文本進(jìn)行分詞、聚類(lèi)分析等,它既有在線的中文數(shù)據(jù)大數(shù)據(jù)語(yǔ)義智能分析平臺(tái),也有相關(guān)的python包pynlpir,其github的地址是:
這個(gè)包的使用是免費(fèi)的,但是授權(quán)文件需要每個(gè)月更新一次。
二、利用pynlpir進(jìn)行分詞
1.安裝模塊
首先要安裝這個(gè)模塊,安裝方法是在cmd命令行下輸入:
pip install pynlpir
2. 更新授權(quán)
安裝后還可能需要更新一下授權(quán)
pynlpir update
3. 開(kāi)始批量分詞
1)基礎(chǔ)分詞
import pynlpir pynlpir.open() s = '歡迎科研人員、技術(shù)工程師、企事業(yè)單位與個(gè)人參與NLPIR平臺(tái)的建設(shè)工作。' segs = pynlpir.segment(s) for seg in segs: print(seg)
顯示結(jié)果:
基本使用方法
2)批量分詞
主要是采用os模塊批量讀取當(dāng)前目錄下的txt文件,然后分別按段落讀取、分詞、標(biāo)注。詞與標(biāo)注信息之前中【_】來(lái)連接,兩個(gè)詞之間用【|】,段落之間加入換行符號(hào),然后寫(xiě)入到【seg_】開(kāi)頭的txt文件里。這里,我們采用的是英文的標(biāo)注信息,每個(gè)文件標(biāo)注完成后會(huì)生成新的文件,最終代碼如下:
import pynlpir import os # 初始化分詞庫(kù) pynlpir.open () # 進(jìn)行分詞操作 txts = [file for file in os.listdir(".") if file.endswith(".txt")] for txt in txts: with open(txt,"r",encoding="utf-8") as f: lines = [line.strip() for line in f.readlines()] for line in lines: segments = pynlpir.segment (line, pos_tagging=True,pos_english=True) with open("segged_"+os.path.basename(txt),"a+",encoding="utf-8") as fi: for segment in segments: try: fi.write(str(segment[0])+"_"+str(segment[1])+"|") except Exception as exc: print(exc,segment) fi.write("\n") # 關(guān)閉分詞庫(kù) pynlpir.close ()
4. 分詞效果展示
經(jīng)過(guò)分詞和標(biāo)注后的文件截圖展示如下,可以看到很好地保留了段落的信息,這為后面進(jìn)行詞性統(tǒng)計(jì)也做好了準(zhǔn)備。后期,可以根據(jù)nlpir的標(biāo)注集,對(duì)于所有文本中的詞性進(jìn)行統(tǒng)計(jì)分析。
三、學(xué)后反思
pynlpir這個(gè)包分詞速度還是很快的,但是使用起來(lái)有一定的難度。更新license時(shí)可以去github上下載,或者本地使用代理下載。
導(dǎo)入自定義字典時(shí),注意字典編碼要轉(zhuǎn)化為ANSI編碼,否則可能會(huì)報(bào)錯(cuò)。
批量分詞時(shí),注意文件的路徑最好不要有中文,否則也可能無(wú)法順利分詞。
如果是在Linux上更新Lincense的話,為了保險(xiǎn)起見(jiàn),可以先去github上下載,再進(jìn)行上傳,以確保萬(wàn)無(wú)一失。
到此這篇關(guān)于Python使用pynlpir進(jìn)行中文分詞并保留段落信息的文章就介紹到這了,更多相關(guān)Python pynlpir中文分詞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3實(shí)現(xiàn)的騰訊微博自動(dòng)發(fā)帖小工具
這篇文章主要為大家分享下騰訊微博自動(dòng)發(fā)帖的Python3代碼,需要的朋友可以參考下2013-11-11python實(shí)現(xiàn)數(shù)字炸彈游戲程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)數(shù)字炸彈游戲程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07Python實(shí)現(xiàn)讀取文本文件并轉(zhuǎn)換為pdf
這篇文章主要為大家詳細(xì)介紹了如何使用Python簡(jiǎn)便快捷地完成TXT文件到PDF文檔的轉(zhuǎn)換,滿(mǎn)足多樣化的文檔處理需求,感興趣的小伙伴可以參考下2024-04-04PyInstaller將Python文件打包為exe后如何反編譯(破解源碼)以及防止反編譯
這篇文章主要介紹了PyInstaller將Python文件打包為exe后如何反編譯(破解源碼)以及防止反編譯,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python協(xié)程gevent案例 爬取斗魚(yú)圖片過(guò)程解析
這篇文章主要介紹了python協(xié)程gevent案例 爬取斗魚(yú)圖片過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08tensorflow實(shí)現(xiàn)訓(xùn)練變量checkpoint的保存與讀取
今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)訓(xùn)練變量checkpoint的保存與讀取,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Django一小時(shí)寫(xiě)出賬號(hào)密碼管理系統(tǒng)
這篇文章主要介紹了Django一小時(shí)寫(xiě)出賬號(hào)密碼管理系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python 列表,數(shù)組和矩陣sum的用法及區(qū)別介紹
今天小編就為大家分享一篇python 列表,數(shù)組和矩陣sum的用法及區(qū)別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python中利用LSTM模型進(jìn)行時(shí)間序列預(yù)測(cè)分析的實(shí)現(xiàn)
這篇文章主要介紹了Python中利用LSTM模型進(jìn)行時(shí)間序列預(yù)測(cè)分析的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07