Python結(jié)巴中文分詞工具使用過程中遇到的問題及解決方法
本文實(shí)例講述了Python結(jié)巴中文分詞工具使用過程中遇到的問題及解決方法。分享給大家供大家參考,具體如下:
結(jié)巴分詞是Python語(yǔ)言中效果最好的分詞工具,其功能包括:分詞、詞性標(biāo)注、關(guān)鍵詞抽取、支持用戶詞表等。這幾天一直在研究這個(gè)工具,在安裝與使用過程中遇到一些問題,現(xiàn)在把自己的一些方法帖出來(lái)分享一下。
官網(wǎng)地址:https://github.com/fxsjy/jieba
1、安裝。
按照官網(wǎng)上的說(shuō)法,有三種安裝方式,
第一種是全自動(dòng)安裝:easy_install jieba 或者 pip install jieba,可是并沒有找到它提供這個(gè)安裝程序。
第二種方法是半自動(dòng)安裝:先下載http://pypi.python.org/pypi/jieba/ ,解壓后在cmd命令行中運(yùn)行 python setup.py install。這里需要注意的是,默認(rèn)情況下,不能在cmd中直接運(yùn)行python命令,需要把它的路徑加入到環(huán)境變量path中方可。我試過,可行。但是 這種方法安裝之后,結(jié)巴分詞功能只能在Python自帶的IDLE中使用。在含有PyDEV的MyEclipse中不能執(zhí)行“import jieba”命令,所以繼續(xù)嘗試第三種方法。
第三種方法是手動(dòng)安裝:將jieba目錄放置于當(dāng)前目錄或者site-packages目錄。把下載到的jieba-0.30.zip解壓后,里面有個(gè)jibba的文件夾,把它復(fù)制到與你的Python程序相同的位置,這樣在程序中就可以執(zhí)行“import jieba”了。
2、關(guān)于分詞的實(shí)現(xiàn)
官網(wǎng)提供了分詞的基本用法示例 :
#encoding=utf-8
import jieba
seg_list = jieba.cut("我來(lái)到北京清華大學(xué)", cut_all=True)
print "Full Mode:", "/ ".join(seg_list) # 全模式
seg_list = jieba.cut("我來(lái)到北京清華大學(xué)", cut_all=False)
print "Default Mode:", "/ ".join(seg_list) # 精確模式
seg_list = jieba.cut("他來(lái)到了網(wǎng)易杭研大廈") # 默認(rèn)是精確模式
print ", ".join(seg_list)
seg_list = jieba.cut_for_search("小明碩士畢業(yè)于中國(guó)科學(xué)院計(jì)算所,后在日本京都大學(xué)深造") # 搜索引擎模式
print ", ".join(seg_list)
程序可以執(zhí)行,但是在MyEclipse中顯示中文為Unicode編碼,這不科學(xué)。
但是繼續(xù)執(zhí)行另一個(gè)詞性標(biāo)注的示例卻非常正常:
import jieba.posseg as pseg
words = pseg.cut("我愛北京天安門")
for w in words:
print w.word, w.flag
所以我就想去分析一下它的源代碼,結(jié)果發(fā)現(xiàn)在jiba/_init_.py文件(這是實(shí)現(xiàn)分詞的文件)的第209行(cut函數(shù))中有關(guān)于檢查編碼的語(yǔ)句塊:
if not isinstance(sentence, unicode):
try:
sentence = sentence.decode('utf-8')
except UnicodeDecodeError:
sentence = sentence.decode('gbk','ignore')
而在jieba/posseg/_init_.py文件(這是實(shí)現(xiàn)詞性標(biāo)注的文件)第158行的cut函數(shù)中卻沒有發(fā)現(xiàn)此類代碼。所以我猜想,前者有檢查編碼的代碼就出現(xiàn)亂碼,而后者沒有檢查編碼的代碼而正常顯示,所以就把前者檢查編碼的代碼給注釋了,結(jié)果程序執(zhí)行報(bào)錯(cuò),只好又把人家的源碼還原,結(jié)果中文又正常顯示了!
運(yùn)行效果如下圖:

以上只是對(duì)固定的中文字符串變量進(jìn)行分詞和詞性標(biāo)注,接下來(lái)的文章里我會(huì)嘗試從文件中讀取中文進(jìn)行分詞和詞性標(biāo)注。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python字典操作技巧匯總》、《Python字符串操作技巧匯總》、《Python常用遍歷技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python實(shí)現(xiàn)中文分詞FMM算法實(shí)例
- Python中文分詞實(shí)現(xiàn)方法(安裝pymmseg)
- Python中文分詞工具之結(jié)巴分詞用法實(shí)例總結(jié)【經(jīng)典案例】
- python中文分詞教程之前向最大正向匹配算法詳解
- python中文分詞,使用結(jié)巴分詞對(duì)python進(jìn)行分詞(實(shí)例講解)
- python使用jieba實(shí)現(xiàn)中文分詞去停用詞方法示例
- python中文分詞庫(kù)jieba使用方法詳解
- Python中文分詞庫(kù)jieba,pkusegwg性能準(zhǔn)確度比較
- Python3爬蟲中關(guān)于中文分詞的詳解
- Python jieba 中文分詞與詞頻統(tǒng)計(jì)的操作
- Python中文分詞庫(kù)jieba(結(jié)巴分詞)詳細(xì)使用介紹
相關(guān)文章
Python+Tkinter實(shí)現(xiàn)軟件自動(dòng)更新與提醒
這篇文章主要為大家詳細(xì)介紹了Python如何利用Tkinter編寫一個(gè)軟件自動(dòng)更新與提醒小程序,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以動(dòng)手嘗試一下2023-07-07
python threading和multiprocessing模塊基本用法實(shí)例分析
這篇文章主要介紹了python threading和multiprocessing模塊基本用法,結(jié)合實(shí)例形式詳細(xì)分析了Python中threading和multiprocessing模塊基本概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07
pip安裝指定版本的tensorflow的實(shí)現(xiàn)
本文介紹了如何使用pip安裝指定版本的TensorFlow,包括CPU版本和GPU版本的安裝方法,同時(shí),文中也提到了使用阿里國(guó)內(nèi)鏡像源加速下載的方法,以及在安裝GPU版本時(shí)需要檢查CUDA和cuDNN的兼容性的注意事項(xiàng),感興趣的可以了解一下2024-10-10
Python真題案例之錯(cuò)位鍵盤?單詞長(zhǎng)度?字母重排詳解
這篇文章主要介紹了python實(shí)操案例練習(xí),本文給大家分享的案例中主要任務(wù)有錯(cuò)位鍵盤、單詞長(zhǎng)度、字母重排,需要的小伙伴可以參考一下2022-03-03
python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)
使用Python腳本實(shí)現(xiàn)AAC格式轉(zhuǎn)MP3格式的方法介紹,需要用戶輸入AAC文件所在目錄路徑和MP3輸出目錄路徑,通過調(diào)用FFmpeg工具實(shí)現(xiàn)格式轉(zhuǎn)換,該腳本簡(jiǎn)單易懂,適合需要批量處理音頻文件的用戶,使用前需確保已安裝FFmpeg環(huán)境2024-11-11
30行Python代碼實(shí)現(xiàn)高分辨率圖像導(dǎo)航的方法
這篇文章主要介紹了30行Python代碼實(shí)現(xiàn)高分辨率圖像導(dǎo)航的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Python批量加密Excel文件的實(shí)現(xiàn)示例
在日常工作中,保護(hù)敏感數(shù)據(jù)是至關(guān)重要的,本文主要介紹了Python批量加密Excel文件的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

