使用結巴分詞後程序打包失敗

做畢設時又碰到了一個難題,使用結巴分詞和analyse後沒法正常打包程序。使用py2exe得不到.exe文件,使用PyInstaller程序報錯。

報錯信息如下(圖片來自文獻1):



後來參考了文獻1和文獻2後知道原來是因爲import jieba需要用到dict.txt,而打包後的程序找不到dict.txt的路徑了。解決方法如下:

在你的代碼中寫如下三句:import jieba後馬上設置字典的路徑進行初始化,這裏用相對路徑。(必須緊跟在import語句後面)

import jieba
jieba.set_dictionary("./dict.txt")
jieba.initialize()   

然後用PyInstaller打包好程序後,把dict.txt放在程序所在目錄就可以了。


要是你只用了結巴分詞的分詞模塊,那上面就可以解決問題了,但如果你還用了結巴分詞裏面的analyse模塊,用到了計算df-idf值的功能,那還需要把idf.txt 的路徑給改了。和上面一樣的方法,寫下面幾行代碼:

from jieba import analyse
jieba.analyse.set_idf_path("./idf.txt")

然後比上面麻煩一點的是,不僅需要吧idf.txt放在程序所在目錄,而且還要在程序所在目錄創建一個文件夾“jieba”, 在此文件夾裏也放上idf.txt, 就OK了。不過我也不知道爲啥要放兩個。



參考文獻:

1. http://www.cnblogs.com/chaosimple/p/4101596.html

2. https://github.com/fxsjy/jieba/issues/35


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章