为什么80%的码农都做不了架构师?>>>   

上一章分享了IK Analyzer中文分词及词频统计基于Hadoop的MapReducer框架Java实现。这次将与大家分享Jieba中文分词Python简单实现,由于Jieba分词是基于词频最大切分组合,所以不用做词频统计,可以直接得到其关键字。

1、安装jieba

安装方式可以查看博主的中文分词工具(http://my.oschina.net/eager/blog/673013),此处不再赘述。

2、简单实例实现:

#导入jieba
import jieba

# ---------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))  # 搜索引擎模式

3、采用精确模式对hong.txt做分词并写入文件hong2.txt

# coding:UTF8
'''
@author: ZD
'''
import sys
#修改编码之前,Python2.7系统默认编码是ascii
print(sys.getdefaultencoding())
#修改编码为utf-8
reload(sys)
sys.setdefaultencoding('utf-8')
print(sys.getdefaultencoding())

import jieba, codecs

fpr = codecs.open("hong.txt","r")
lines = fpr.readlines()
resultStr=""
for line in lines:
    resultStr += line

#精确模式分词,但没有统计结果并排序     
seg_list = jieba.cut(resultStr, cut_all=False)
fpr.close()

print("开始写文件")
fpw = codecs.open("hong2.txt", "w")
result=""
for segStr in seg_list:
    result=segStr+" \\ "
    fpw.write(result)
fpw.close()
print("写文件结束")

一部分结果展示:

 \ 上卷 \   \ 第一回 \   \   \ 甄士隐 \ 梦幻 \ 识通灵 \   \ 贾雨村 \ 风尘 \ 怀 \ 闺秀 \ \ \   \   \ 此 \ 开卷 \ 第一回 \ 也 \ . \ 作者 \ 自云 \ : \ 因曾 \ 历过 \ 一番 \ 梦幻 \ 之后 \ , \ 故 \ 将 \ 真事 \ 隐去 \ , \ 而 \ 借 \ " \ 通灵 \ " \ 之 \ 说 \ , \ 撰此 \ 《 \ 石头记 \ 》 \ 一书 \ 也 \ . \ 故曰 \ " \ 甄士隐 \ " \ 云云 \ . \ 但书中 \ 所记 \ 何事 \ 何人 \ ? \ 自又云 \ : \ “ \ 今 \ 风尘碌碌 \ , \ 一事无成 \ , \ 忽 \ 念及 \ 当日 \ 所有 \ 之 \ 女子 \ , \ 一一 \ 细考 \ 较 \ 去 \ , \ 觉其 \ 行止 \ 见识 \ , \ 皆 \ 出于 \ 我 \ 之上 \ . \ 何 \ 我 \ 堂堂 \ 须眉 \ , \ 诚不若 \ 彼 \ 裙钗 \ 哉 \ ? \ 实愧 \ 则 \ 有余 \ , \ 悔 \ 又 \ 无益 \ 之大 \ 无可如何 \ 之日 \ 也 \ ! \ 当 \ 此 \ , \ 则 \ 自欲 \ 将 \ 已往 \ 所赖 \ 天恩祖 \ 德 \ , \ 锦衣 \ 纨绔 \ 之 \ 时 \ , \ 饫甘餍肥 \ 之 \ 日 \ , \ 背 \ 父兄 \ 教育 \ 之恩 \ , \ 负 \ 师友 \ 规谈 \ 之德 \ , \ 以至 \ 今日 \ 一技无成 \ , \ 半生 \ 潦倒 \ 之罪 \ , \ 编述 \ 一集 \ , \ 以告 \ 天下人 \ : \ 我 \ 之 \ 罪固 \ 不免 \ , \ 然 \ 闺阁 \ 中本 \ 自 \ 历历 \ 有人 \ , \ 万 \ 不可 \ 因 \ 我 \ 之 \ 不肖 \ , \ 自护己 \ 短 \ , \ 一并 \ 使 \ 其 \ 泯灭 \ 也 \ . \ 虽 \ 今日 \ 之茅 \ 椽蓬 \ 牖 \ , \ 瓦灶 \ 绳床 \ , \ 其 \ 晨夕 \ 风露 \ , \ 阶柳庭花 \ , \ 亦 \ 未有 \ 妨 \ 我 \ 之 \ 襟怀 \ 笔墨 \ 者 \ . \ 虽 \ 我 \ 未学 \ , \ 下笔 \ 无文 \ , \ 又 \ 何妨 \ 用 \ 假语 \ 村言 \ , \ 敷 \ 演出 \ 一段 \ 故事 \ 来 \ , \ 亦可 \ 使 \ 闺阁 \ 昭传 \ , \ 复可悦 \ 世之目 \ , \ 破人 \ 愁闷 \ , \ 不 \ 亦 \ 宜乎 \ ? \ " \ 故曰 \ " \ 贾雨村 \ " \ 云云 \ . \ 

5、如果想得到出现频率最高的词语,则可以用 jieba.analyse.extract_tags(sentence, topK) 方法

PS:其中sentence为待提取的文本,topK为返回几个TF/IDF权重最大的关键词,默认值为20

# coding:UTF8
'''
@author: ZD
'''
import sys
#修改编码之前,Python2.7系统默认编码是ascii
print(sys.getdefaultencoding())
#修改编码为utf-8
reload(sys)
sys.setdefaultencoding('utf-8')
print(sys.getdefaultencoding())

import jieba, codecs

fpr = codecs.open("hong.txt","r")
lines = fpr.readlines()
resultStr=""
for line in lines:
    resultStr += line

#精确模式分词,但没有统计结果并排序     
seg_list = jieba.cut(resultStr, cut_all=False)
fpr.close()

print("开始写文件")
fpw = codecs.open("hong2.txt", "w")
result=""
for segStr in seg_list:
    result=segStr+" \\ "
    fpw.write(result)
fpw.close()
print("写文件结束")

部分结果展示

宝玉
贾母
凤姐
王夫人
老太太
奶奶
那里
什么
贾琏
太太
姑娘
众人
平儿
说道
如今
一面
你们
袭人
宝钗
只见
黛玉
这里
我们
一个
听见
出来
凤姐儿
薛姨妈

分享踩过的坑

问题:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

原因:python2.7是基于ascii去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))。

解决方案1:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

如果eclipse报错为undefined variable from import:setdefaultencoding,是因为eclipse的pydev插件原因,可以不管此错误,照样运行。

解决方案2:(http://blog.csdn.net/lgy807720302/article/details/7515743)

在Python安装目录下的Lib/site-packages目录中,新建一个sitecustomize.py文件

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
try:
    import apport_python_hook
except ImportError:
    pass
else:
    apport_python_hook.install()

然后在eclipse中可以查看到改变已经生效

import sys
print(sys.getdefaultencoding())

写在最后:本人初学Python,也初次接触jieba分词工具,如有错误,望指出纠正。

转载于:https://my.oschina.net/eager/blog/673422

Jieba分词Python简单实现相关推荐

  1. 【NLP】jieba分词-Python中文分词领域的佼佼者

    1. jieba的江湖地位 NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视的力量便是jieba分词,号称要做最好的 Python 中文分词组件. "最好的& ...

  2. Jieba分词的简单使用

    分词模式 import jiebatext = "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" str = '/'# 精确模式:试图将句子最精确地切 ...

  3. python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法

    本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法.分享给大家供大家参考,具体如下: 目标: 1.导入一个文本文件 2.使用jieba对文本进行分词 3.使用wordcloud包 ...

  4. python语言入门r_小结:jieba分词的Python与R语言基础用法介绍

    当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 人们说话不是一个词一个词崩出来的,文章也就由句子组成.要想让机器识别美文,体会中华名族汉语的博大精深,不是不可能.但是,首先需要将其转化成其 ...

  5. pythonjieba分词_$好玩的分词——python jieba分词模块的基本用法

    jieba(结巴)是一个强大的分词库,完美支持中文分词,本文对其基本用法做一个简要总结. 安装jieba pip install jieba 简单用法 结巴分词分为三种模式:精确模式(默认).全模式和 ...

  6. python jieba分词_从零开始学自然语言处理(八)—— jieba 黑科技

    小编喜欢用 jieba 分词,是因为它操作简单,速度快,而且可以添加自定义词,从而让 jieba 分出你想要分出的词,特别适用于特定场景的中文分词任务. 然鹅,万事都有两面性,jieba 分词这么好用 ...

  7. python统计词频瓦尔登湖_自然语言处理之中文分词器-jieba分词器详解及python实战...

    (转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...

  8. python汉语分词,python汉语分词的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 目前我常常使用的分词有结巴分词.NLPIR分词等等 最近是在使用结巴分词,稍微做一下推荐,还是蛮好 ...

  9. 基于Python的中英文分词基础:正则表达式和jieba分词器

    基于Python的中英文分词基础:正则表达式和jieba分词器 前言介绍 英文字符串处理 Python中的str 正则表达式 Python中的正则表达式模块 re 小练习 字符串中出现频次最多的字母 ...

最新文章

  1. mysql的altertable_mysql 的 alter table 操作性能小提示
  2. 本周看代码找bug总结
  3. PR 简单使用(一)
  4. python唯一映射类型_Python基础:04映射类型
  5. java启动应用_java 学习:在java中启动其他应用,由jenkins想到的
  6. HP 1218 无线设置
  7. 有意思的逻辑思维题(二)(hdu1052)
  8. ruby map, reduce, select, reject, group_by
  9. 波特率、信息传输速率与带宽的关系
  10. ODBC的JAR包和PLSQL
  11. 大黄蜂vep视频转成MP4格式提取工具的使用
  12. 使用ConfuserEx加密混淆程序以及如何脱壳反编译
  13. wincc7.5系统语言切换功能(C脚本)
  14. 我是高管,空降的第60天,被辞职了,惨惨惨
  15. 城市记忆(3)灵州----灵武
  16. T32 获取电脑Product ID
  17. 多模态信息用于推荐系统问题(MMDIN,hyperCTR)
  18. glove.840B.300d、glove.42B.300d、glove.6B下载
  19. Ubound Lbound,数组上下边界 将二维数组处理后写入新数组,并粘贴到单元格中。
  20. 案例研究|蜜雪冰城65亿背后的差异化商业模式创新

热门文章

  1. RNA-Seq名词解释
  2. Eclipse安装字体样式风格包
  3. golang defer实现
  4. java中浮点型常量表示_浮点型变量/常量
  5. Jmeter书中不会教你的(22)——快递时效查询实战3边界值提取器boundary extractor
  6. tensorflow72 《深度学习原理与TensorFlow实战》05 RNN能说会道 03 对话机器人(chatbot)
  7. 各种软件官网下载地址
  8. java containsany_判断字符串中是否存在的几种方案:string.indexof、string.contains、list.contains、list.any几种方式效率对比...
  9. MSCI:无计划修改MSCI中国A股国际指数编制方法
  10. MongoDB-与SpringBoot整合及日志记录