国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python結(jié)巴中文分詞工具使用過程中遇到的問題及解決方法

2019-11-25 16:14:54
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python結(jié)巴中文分詞工具使用過程中遇到的問題及解決方法。分享給大家供大家參考,具體如下:

結(jié)巴分詞是Python語(yǔ)言中效果最好的分詞工具,其功能包括:分詞、詞性標(biāo)注、關(guān)鍵詞抽取、支持用戶詞表等。這幾天一直在研究這個(gè)工具,在安裝與使用過程中遇到一些問題,現(xiàn)在把自己的一些方法帖出來分享一下。

官網(wǎng)地址:https://github.com/fxsjy/jieba

1、安裝。

按照官網(wǎng)上的說法,有三種安裝方式,

第一種是全自動(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-8import jiebaseg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=True)print "Full Mode:", "/ ".join(seg_list) # 全模式seg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=False)print "Default Mode:", "/ ".join(seg_list) # 精確模式seg_list = jieba.cut("他來到了網(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 psegwords = 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)注,接下來的文章里我會(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ì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辉县市| 盈江县| 永修县| 崇左市| 伊宁市| 丰宁| 嘉兴市| 甘孜| 屏东县| 湘西| 峨边| 民县| 图们市| 乌审旗| 万全县| 大石桥市| 镇平县| 临夏县| 屯昌县| 桦川县| 丁青县| 舒兰市| 祁阳县| 沙雅县| 雅安市| 红桥区| 峡江县| 宜都市| 康乐县| 凤凰县| 香港| 成武县| 陆丰市| 无锡市| 林甸县| 雷波县| 高台县| 东城区| 喀喇| 潮安县| 巴彦淖尔市|