Python使用pynlpir進(jìn)行中文分詞并保留段落信息
一、引言
nlpir是由張華平博士開發(fā)的中文自然處理工具,可以對中文文本進(jìn)行分詞、聚類分析等,它既有在線的中文數(shù)據(jù)大數(shù)據(jù)語義智能分析平臺,也有相關(guān)的python包pynlpir,其github的地址是:
這個包的使用是免費(fèi)的,但是授權(quán)文件需要每個月更新一次。
二、利用pynlpir進(jìn)行分詞
1.安裝模塊
首先要安裝這個模塊,安裝方法是在cmd命令行下輸入:
pip install pynlpir
2. 更新授權(quán)
安裝后還可能需要更新一下授權(quán)
pynlpir update
3. 開始批量分詞
1)基礎(chǔ)分詞
import pynlpir
pynlpir.open()
s = '歡迎科研人員、技術(shù)工程師、企事業(yè)單位與個人參與NLPIR平臺的建設(shè)工作。'
segs = pynlpir.segment(s)
for seg in segs:
print(seg)
顯示結(jié)果:

基本使用方法
2)批量分詞
主要是采用os模塊批量讀取當(dāng)前目錄下的txt文件,然后分別按段落讀取、分詞、標(biāo)注。詞與標(biāo)注信息之前中【_】來連接,兩個詞之間用【|】,段落之間加入換行符號,然后寫入到【seg_】開頭的txt文件里。這里,我們采用的是英文的標(biāo)注信息,每個文件標(biāo)注完成后會生成新的文件,最終代碼如下:
import pynlpir
import os
# 初始化分詞庫
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)閉分詞庫
pynlpir.close ()
4. 分詞效果展示
經(jīng)過分詞和標(biāo)注后的文件截圖展示如下,可以看到很好地保留了段落的信息,這為后面進(jìn)行詞性統(tǒng)計(jì)也做好了準(zhǔn)備。后期,可以根據(jù)nlpir的標(biāo)注集,對于所有文本中的詞性進(jìn)行統(tǒng)計(jì)分析。

三、學(xué)后反思
pynlpir這個包分詞速度還是很快的,但是使用起來有一定的難度。更新license時可以去github上下載,或者本地使用代理下載。
導(dǎo)入自定義字典時,注意字典編碼要轉(zhuǎn)化為ANSI編碼,否則可能會報錯。
批量分詞時,注意文件的路徑最好不要有中文,否則也可能無法順利分詞。
如果是在Linux上更新Lincense的話,為了保險起見,可以先去github上下載,再進(jìn)行上傳,以確保萬無一失。
到此這篇關(guān)于Python使用pynlpir進(jìn)行中文分詞并保留段落信息的文章就介紹到這了,更多相關(guān)Python pynlpir中文分詞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3實(shí)現(xiàn)的騰訊微博自動發(fā)帖小工具
這篇文章主要為大家分享下騰訊微博自動發(fā)帖的Python3代碼,需要的朋友可以參考下2013-11-11
python實(shí)現(xiàn)數(shù)字炸彈游戲程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)數(shù)字炸彈游戲程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07
Python實(shí)現(xiàn)讀取文本文件并轉(zhuǎn)換為pdf
這篇文章主要為大家詳細(xì)介紹了如何使用Python簡便快捷地完成TXT文件到PDF文檔的轉(zhuǎn)換,滿足多樣化的文檔處理需求,感興趣的小伙伴可以參考下2024-04-04
PyInstaller將Python文件打包為exe后如何反編譯(破解源碼)以及防止反編譯
這篇文章主要介紹了PyInstaller將Python文件打包為exe后如何反編譯(破解源碼)以及防止反編譯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
python協(xié)程gevent案例 爬取斗魚圖片過程解析
這篇文章主要介紹了python協(xié)程gevent案例 爬取斗魚圖片過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
tensorflow實(shí)現(xiàn)訓(xùn)練變量checkpoint的保存與讀取
今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)訓(xùn)練變量checkpoint的保存與讀取,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python 列表,數(shù)組和矩陣sum的用法及區(qū)別介紹
今天小編就為大家分享一篇python 列表,數(shù)組和矩陣sum的用法及區(qū)別介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python中利用LSTM模型進(jìn)行時間序列預(yù)測分析的實(shí)現(xiàn)
這篇文章主要介紹了Python中利用LSTM模型進(jìn)行時間序列預(yù)測分析的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

