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异步任务队列示例
Apr 01 Python
python通过索引遍历列表的方法
May 04 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
Python3连接MySQL(pymysql)模拟转账实现代码
May 24 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
python统计字母、空格、数字等字符个数的实例
Jun 29 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
keras小技巧——获取某一个网络层的输出方式
May 23 Python
用python实现名片管理系统
Jun 18 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
python爬虫调度器用法及实例代码
Nov 30 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
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP实现微信发红包程序
2015/08/24 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
浅析python实现动态规划背包问题
2020/12/31 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
优秀医生事迹材料
2014/02/12 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
朋友聚会开场白
2015/06/01 职场文书
天河观后感
2015/06/11 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
Python 语言实现六大查找算法
2021/06/30 Python