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中的fabs()方法的使用
May 14 Python
Python中的推导式使用详解
Jun 03 Python
12步教你理解Python装饰器
Feb 25 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
详解python 注释、变量、类型
Aug 10 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
Python计算IV值的示例讲解
Feb 28 Python
python中翻译功能translate模块实现方法
Dec 17 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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
如何对PHP程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
第四章 php数学运算
2011/12/30 PHP
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
详谈PHP编码转换问题
2015/07/28 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
浅谈Python的异常处理
2016/06/19 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
python在协程中增加任务实例操作
2021/02/28 Python
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
医药个人求职信范文
2014/01/29 职场文书
拓展训练激励口号
2014/06/17 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书