结巴分词后,希望通过字典来统计所有分词出现的次数并对几个高频词汇作相应的操作,但有编码问题。
在对中文文本进行打开 读取 分词之后,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版本的情况,不过好象不多见。
升级完之后相应的第三方库要重新下载一下。
编码的问题细琢磨一下再写。