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模块学习 filecmp 文件比较
Aug 27 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 Python
浅谈Python的垃圾回收机制
Dec 17 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Python批量生成幻影坦克图片实例代码
Jun 04 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 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 删除cookie和浏览器重定向
2009/03/16 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
destoon复制新模块的方法
2014/06/21 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
python Kmeans算法原理深入解析
2019/08/23 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
工程造价自荐信
2013/10/09 职场文书
四群教育工作实施方案
2014/03/26 职场文书
新闻报道策划方案
2014/06/11 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js