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

发布时间 - 2026-01-11 00:40:05    点击率:

本文实例讲述了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实现中文分词FMM算法实例  # Python中文分词实现方法(安装pymmseg)  # Python中文分词工具之结巴分词用法实例总结【经典案例】  # python中文分词教程之前向最大正向匹配算法详解  # python中文分词  # 使用结巴分词对python进行分词(实例讲解)  # python使用jieba实现中文分词去停用词方法示例  # python中文分词库jieba使用方法详解  # Python中文分词库jieba  # pkusegwg性能准确度比较  # Python3爬虫中关于中文分词的详解  # Python jieba 中文分词与词频统计的操作  # Python中文分词库jieba(结巴分词)详细使用介绍  # 关键词  # 种方法  # 这是  # 官网  # 清华大学  # 过程中  # 正常显示  # 自己的  # 天安门  # 的是  # 来到北京  # 进阶  # 操作技巧  # 我就  # 我会  # 有个  # 相关内容  # 最好的  # 遍历  # 中有 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  HTML 中如何正确使用模板变量为元素的 name 属性赋值  浅谈Javascript中的Label语句  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何在Windows虚拟主机上快速搭建网站?  如何快速配置高效服务器建站软件?  BootStrap整体框架之基础布局组件  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  深入理解Android中的xmlns:tools属性  动图在线制作网站有哪些,滑动动图图集怎么做?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  实例解析Array和String方法  微信小程序 input输入框控件详解及实例(多种示例)  香港服务器建站指南:免备案优势与SEO优化技巧全解析  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Bootstrap整体框架之CSS12栅格系统  如何用已有域名快速搭建网站?  如何自定义建站之星网站的导航菜单样式?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  QQ浏览器网页版登录入口 个人中心在线进入  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  大连 网站制作,大连天途有线官网?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  网站制作壁纸教程视频,电脑壁纸网站?  Swift开发中switch语句值绑定模式  Android仿QQ列表左滑删除操作  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  简单实现jsp分页  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  网站制作大概多少钱一个,做一个平台网站大概多少钱?  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Java垃圾回收器的方法和原理总结  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  图册素材网站设计制作软件,图册的导出方式有几种?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  ,在苏州找工作,上哪个网站比较好?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  ,网页ppt怎么弄成自己的ppt?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程