1. 程式人生 > >Pyhton dict 中文無法做key的問題

Pyhton dict 中文無法做key的問題

結巴分詞後,希望通過字典來統計所有分詞出現的次數並對幾個高頻詞彙作相應的操作,但有編碼問題。

在對中文文字進行開啟 讀取 分詞之後,jieba.lcut()返回了一個list,迴圈list並對list中每一個分詞出現的次數進行統計,建立一個字典來儲存分詞與次數的鍵值對。
發現在Python2.7下,這樣建立一個字典,print時是有問題的,附上一個連線:

d = {'我是誰’:2}

http://phpquan.com/lamp/python/python-dict/
所以下面這段程式碼執行時都是錯誤的,列印ls可以看到,list當中都是中分分詞,列印d的時候就可以看到所有的key都不是中文。

# -*- coding: UTF-8 -*-
import jieba

try:
	f = open("FirstFile.txt", "r")
	mystr = f.read()
	f.close()
	ls = jieba.lcut(mystr,cut_all=True)
	d={}
	for w in ls:
		d[w] = d.get(w,0)+1
	for k in d:
		if d[k] >= 50 and k != "\n" and k != "":
			print('"{}"出現{}次'.format(k,d[k]))
	
		
except:
	print("error")

最粗暴的解決辦法就是將python2.7直接升級到python3.×。
升級的方法如下:
下載包

wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz

解壓

tar -xvf Python-3.3.0.tar

進入解壓縮後的資料夾

cd Python-3.1.2

在編譯前先在/usr/local建一個資料夾python3(作為python的安裝路徑,以免覆蓋老的版本,當然也可以安裝多個版本Python)

mkdir /usr/local/python3

開始編譯安裝

./configure --prefix=/usr/local/python3

make

make install

此時沒有覆蓋老版本,再將原來/usr/bin/python連結改為別的名字

mv /usr/bin/python /usr/bin/python_old

再建立新版本python的連結

ln -s /usr/local/python3/bin/python3 /usr/bin/python 

最後兩步可以解決有多個python版本的情況,不過好象不多見。
升級完之後相應的第三方庫要重新下載一下。
編碼的問題細琢磨一下再寫。