Python结巴中文分词工具使用过程中遇到的问题及解决方法


Posted in Python onApril 15, 2017

本文实例讲述了Python结巴中文分词工具使用过程中遇到的问题及解决方法。分享给大家供大家参考,具体如下:

结巴分词是Python语言中效果最好的分词工具,其功能包括:分词、词性标注、关键词抽取、支持用户词表等。这几天一直在研究这个工具,在安装与使用过程中遇到一些问题,现在把自己的一些方法帖出来分享一下。

官网地址:https://github.com/fxsjy/jieba

1、安装。

按照官网上的说法,有三种安装方式,

第一种是全自动安装:easy_install jieba 或者 pip install jieba,可是并没有找到它提供这个安装程序。

第二种方法是半自动安装:先下载http://pypi.python.org/pypi/jieba/ ,解压后在cmd命令行中运行 python setup.py install。这里需要注意的是,默认情况下,不能在cmd中直接运行python命令,需要把它的路径加入到环境变量path中方可。我试过,可行。但是 这种方法安装之后,结巴分词功能只能在Python自带的IDLE中使用。在含有PyDEV的MyEclipse中不能执行“import jieba”命令,所以继续尝试第三种方法。

第三种方法是手动安装:将jieba目录放置于当前目录或者site-packages目录。把下载到的jieba-0.30.zip解压后,里面有个jibba的文件夹,把它复制到与你的Python程序相同的位置,这样在程序中就可以执行“import jieba”了。

2、关于分词的实现

官网提供了分词的基本用法示例 :

#encoding=utf-8
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print "Full Mode:", "/ ".join(seg_list) # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print "Default Mode:", "/ ".join(seg_list) # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print ", ".join(seg_list)
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print ", ".join(seg_list)

程序可以执行,但是在MyEclipse中显示中文为Unicode编码,这不科学。

但是继续执行另一个词性标注的示例却非常正常:

import jieba.posseg as pseg
words = pseg.cut("我爱北京天安门")
for w in words:
  print w.word, w.flag

所以我就想去分析一下它的源代码,结果发现在jiba/_init_.py文件(这是实现分词的文件)的第209行(cut函数)中有关于检查编码的语句块:

if not isinstance(sentence, unicode):
  try:
   sentence = sentence.decode('utf-8')
  except UnicodeDecodeError:
   sentence = sentence.decode('gbk','ignore')

而在jieba/posseg/_init_.py文件(这是实现词性标注的文件)第158行的cut函数中却没有发现此类代码。所以我猜想,前者有检查编码的代码就出现乱码,而后者没有检查编码的代码而正常显示,所以就把前者检查编码的代码给注释了,结果程序执行报错,只好又把人家的源码还原,结果中文又正常显示了!

运行效果如下图:

Python结巴中文分词工具使用过程中遇到的问题及解决方法

以上只是对固定的中文字符串变量进行分词和词性标注,接下来的文章里我会尝试从文件中读取中文进行分词和词性标注。

更多关于Python相关内容可查看本站专题:《Python字典操作技巧汇总》、《Python字符串操作技巧汇总》、《Python常用遍历技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python重试装饰器示例
Feb 11 Python
python 的列表遍历删除实现代码
Apr 12 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
Python DES加密实现原理及实例解析
Jul 17 Python
Python 在函数上添加包装器
Jul 28 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
Python字典实现伪切片功能
Oct 28 Python
python操作xlsx格式文件并读取
Jun 02 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 #Python
Python编程判断一个正整数是否为素数的方法
Apr 14 #Python
python编程实现归并排序
Apr 14 #Python
python实现折半查找和归并排序算法
Apr 14 #Python
Python+Wordpress制作小说站
Apr 14 #Python
Python 中 list 的各项操作技巧
Apr 13 #Python
简单的python后台管理程序
Apr 13 #Python
You might like
php2html php生成静态页函数
2008/12/08 PHP
php cache类代码(php数据缓存类)
2010/04/15 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
js 操作css实现代码
2009/06/11 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
python实现坦克大战
2020/04/24 Python
python如何查看安装了的模块
2020/06/23 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
成教自我鉴定
2013/10/27 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
python可视化大屏库big_screen示例详解
2021/11/23 Python
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS