jieba分词的使用

一、简单分词

使用 jieba.cut(), jieba.lcut() 完成,后者返回 list 的结果,有三种分词模式:精确模式全模式搜索引擎模式

jieba.cut(sentence,cut_all=False,HMM=True) # 精确模式
jieba.cut(sentence,cut_all=True,HMM=True) # 全模式
jieba.cut_for_search (sentence, HMM=True) # 搜索引擎模式

sentence为需要分词的字符串,可以是unicode 或 UTF-8字符串,GBK字符串可能解码错误;
cut_all 参数用来控制是否采用全模式,默认为False;
HMM 参数用来控制是否使用 HMM 模型。

举例

import jieba
sentence="做人还是平常点好,争这个争那个,争来争去赔了自己的命。像我这样,说起来是越混越没出息,\
可寿命长,我认识的人一个挨着一个死去,我还活着。"
seg_list=jieba.cut(sentence,cut_all=False,HMM=True)
print("精确模式: " + "/ ".join(seg_list))seg_list=jieba.cut(sentence,cut_all=True,HMM=True)
print("全模式: " + "/ ".join(seg_list))seg_list=jieba.cut_for_search(sentence,HMM=True)
print("搜索引擎模式: " + "/ ".join(seg_list))

精确模式: 做人/ 还是/ 平常/ 点好/ ,/ 争/ 这个/ 争/ 那个/ ,/ 争来争/ 去/ 赔/ 了/ 自己/ 的/ 命/ 。/ 像/ 我/ 这样/ ,/ 说/ 起来/ 是/ 越/ 混越/ 没出息/ ,/ 可/ 寿命长/ ,/ 我/ 认识/ 的/ 人/ 一个/ 挨着/ 一个/ 死去/ ,/ 我/ 还/ 活着/ 。

全模式: 做人/ 还是/ 平常/ 点/ 好/ ,/ 争/ 这个/ 争/ 那个/ ,/ 争/ 来/ 争/ 去/ 赔/ 了/ 自己/ 的/ 命/ 。/ 像/ 我/ 这样/ ,/ 说起/ 起来/ 是/ 越/ 混/ 越/ 没出/ 没出息/ 出息/ ,/ 可/ 寿命/ 寿命长/ ,/ 我/ 认识/ 的/ 人/ 一个/ 挨着/ 一个/ 死去/ ,/ 我/ 还/ 活着/ 。

搜索引擎模式: 做人/ 还是/ 平常/ 点好/ ,/ 争/ 这个/ 争/ 那个/ ,/ 争来争/ 去/ 赔/ 了/ 自己/ 的/ 命/ 。/ 像/ 我/ 这样/ ,/ 说/ 起来/ 是/ 越/ 混越/ 没出/ 出息/ 没出息/ ,/ 可/ 寿命/ 寿命长/ ,/ 我/ 认识/ 的/ 人/ 一个/ 挨着/ 一个/ 死去/ ,/ 我/ 还/ 活着/ 。

容易发现,全模式会将所有可能的词都列举出来,一般都使用精确模式,搜索引擎模式适用于搜索引擎。

二、关键词提取

有两种方法:基于 TF-IDF 算法的关键词抽取基于 TextRank 算法的关键词抽取

jieba.analyse.extract_tags(sentence,topK=20,withWeight=False,allowPOS=(),withFlag=False)
jieba.analyse.textrank(sentence,topK=20,withWeight=False,\
allowPOS=('ns','n','vn','v'),withFlag=False)

sentence 为待提取的文本;topK 为返回几个权重最大的关键词,默认值为 20;
withWeight 为是否一并返回关键词权重值,默认值为 False;
allowPOS 仅包括指定词性的词,TF-IDF 算法默认为空,不筛选,TextRank 算法默认过滤词性。
"ns", “n”, “vn”, “v”, “nr”,对应 地名、名词、动名词、动词、人名

extract_tags() 将频繁词作为关键词;textrank() 是利用局部词汇之间关系对后续关键词进行排序,其模型一般表示为一个有向有权图,计算过程中要迭代,较为耗时。

提取小说《遮天》的前30个关键字

import jieba
import jieba.analyse
import pandas as pd
import numpy as npwith open("E:/数据/遮天.txt",'r',encoding='gb18030') as file:read_txt_str = file.read()
print(read_txt_str[1:500])#看看开头

《遮天》
作者:辰东
内容简介:
冰冷与黑暗并存的宇宙深处,九具庞大的龙尸拉着一口青铜古棺,亘古长存。
这是太空探测器在枯寂的宇宙中捕捉到的一幅极其震撼的画面。
九龙拉棺,究竟是回到了上古,还是来到了星空的彼岸?
一个浩大的仙侠世界,光怪陆离,神秘无尽。热血似火山沸腾,激情若瀚海汹涌,欲望如深渊无止境……
登天路,踏歌行,弹指遮天。

第一章 星空中的青铜巨棺
第一章星空中的青铜巨棺
生命是世间最伟大的奇迹。
四方上下曰宇。宇虽有实,而无定处可求。往古来今曰宙。宙虽有增长,不知其始之所至。
浩瀚的宇宙,无垠的星空,许多科学家推测,地球可能是唯一的生命源地。
人类其实很孤独。在苍茫的天宇中,虽然有亿万星辰,但是却很难寻到第二颗生命源星。
不过人类从来没有放弃过探索,自上世纪以来已经发射诸多太空探测器。
旅行者二号是一艘无人外太空探测器,于一九七七年在美国肯尼迪航天中心发射升空。
它上面携带着一张主题为“向宇宙致意”的镀金唱片,里面包含一些流行音乐和用地球五十五种语言录制的问候辞,以冀

key_words=jieba.analyse.textrank(read_txt_str,topK=30,withWeight=True,\
allowPOS=('ns','n','nr'),withFlag=False)
key_words

[(‘叶凡’, 1.0),
(‘大帝’, 0.19875182422475243),
(‘全都’, 0.1647871696915421),
(‘金色’, 0.16261460615758888),
(‘浑身’, 0.1258051533840365),
(‘虚空’, 0.1222942662103232),
(‘天地’, 0.1172774027893979),
(‘圣体’, 0.11191268757303208),
(‘人族’, 0.10936859841357176),
(‘太古’, 0.10073543168889468),
(‘黄金’, 0.09657935199132323),
(‘宇宙’, 0.09510895178437348),
(‘圣人’, 0.09196317033532578),
(‘强者’, 0.08761885925802489),
(‘大圣’, 0.08741620998199477),
(‘修士’, 0.08720108323197902),
(‘所有人’, 0.07935019597200792),
(‘感觉’, 0.0782999955509707),
(‘消失’, 0.07809086722853642),
(‘众人’, 0.07558684111334052),
(‘大道’, 0.07404966789272857),
(‘庞博’, 0.07224869439336613),
(‘圣地’, 0.07022966128279133),
(‘人物’, 0.06935326090610788),
(‘星空’, 0.06850768497615349),
(‘老人’, 0.06599090352887194),
(‘身体’, 0.06576112980523321),
(‘黑色’, 0.06491506932351142),
(‘皇子’, 0.0640046540684788),
(‘上古’, 0.06376878590619371)]

通过提取关键词,我们知道了主角是叶凡,他是圣体,嗯哼,他浑身都是金色?!!大帝在文中有很重要的地位。与此同时,我们也知道啥叫水神,所以我们把“全都”、“众人”这样的词 过滤 掉吧。

jieba.analyse.set_stop_words('E:/数据/zhetian_stop_words.txt')
key_words=jieba.analyse.textrank(read_txt_str,topK=30,withWeight=True,\
allowPOS=('ns','n','nr'),withFlag=False)
key_words

[(‘叶凡’, 1.0),
(‘大帝’, 0.18265123784945667),
(‘金色’, 0.16614396014148466),
(‘虚空’, 0.12573012051951962),
(‘天地’, 0.12097392328252386),
(‘圣体’, 0.11544439799584695),
(‘人族’, 0.10926722210285106),
(‘太古’, 0.10299047591879995),
(‘黄金’, 0.09813527797099089),
(‘宇宙’, 0.0970837583561915),
(‘圣人’, 0.09328493982295358),
(‘大圣’, 0.08800840390530987),
(‘消失’, 0.07777137481059242),
(‘大道’, 0.07596795700095475),
(‘庞博’, 0.07321479685268986),
(‘圣地’, 0.0710613599262048),
(‘星空’, 0.06992468725266428),
(‘黑色’, 0.0671065230200573),
(‘皇子’, 0.0657436889849025),
(‘上古’, 0.06542040676095033),
(‘天庭’, 0.06421829894034374),
(‘荒古’, 0.06418197572612164),
(‘万物’, 0.06037997276321994),
(‘气息’, 0.057832651103026406),
(‘整片’, 0.057561209849332835),
(‘声音’, 0.05738735237879483),
(‘黑狗’, 0.056755132334208966),
(‘古老’, 0.056583208641763895),
(‘瑶池’, 0.05570310670883681),
(‘东荒’, 0.055697111872646574)]

现在的关键词里已经少了很多无用的字眼,我们能获得更多的信息了。

三、DataFrame某(几)列做词频分析

这里我就直接放之前的一个例子,这里只放关键代码,详细的这是个链接,你要找的内容很靠后

#region是我的DataFram类型的数据,name,summary,space,description是四个列的columns,因为我想把这
#四个列放一起分析,所以做了字符串的合并。如果仅取一列则为information=region['name'].astype(str)
information=(region['name']+region['summary']+\
region['space']+region['description']).astype(str)#有的列值可能不是str,通过astype(str)指定类型
#jieba分词
segments=[]#存放关键词
jieba.analyse.set_stop_words('E:/tianchi/stop_words.txt')
for row in information:#一行一行的取if row is not None:#当前行不空的时候,对该行进行分词word_list=jieba.analyse.extract_tags(row,allowPOS=('n','nr','ns'))for word in word_list:segments.append({'word':word,'count':1})#把该行的分词结果存放到最终结果里去
#通过按词汇分组,统计每个词出现的次数
pd_seg=pd.DataFrame(segments)
words=pd_seg.groupby(by='word',as_index=True)['count'].sum().sort_values(ascending=False)
words.head(25)

word
怀柔 88
小院 78
雁栖湖 78
民宿 76
长城 61
餐厅 55
厨房 53
青龙峡 52
大床 49
慕田峪长城 49
红螺寺 45
院子 42
景区 39
庭院 32
怀柔区 30
风景区 30
麻将机 29
榻榻米 27
客厅 26
山水 26
厨具 25
景观 24
聚会 24
原生态 23
山居 23

python jieba分词的使用相关推荐

  1. Python jieba分词如何添加自定义词和去除不需要长尾词

    Python jieba分词如何添加自定义词和去除不需要长尾词 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

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

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

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

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

  4. python jieba分词及中文词频统计

    这篇博客用来记录一下自己学习用python做词频统计的过程,接上篇的英文词频统计 上篇:python词频统计并按词频排序 参考资料:jieba参考文档 目录 一.jieba库简介 二.一些准备工作 三 ...

  5. python jieba分词模块的基本用法

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

  6. python jieba分词教程_Python jieba 分词

    环境 Anaconda3 Python 3.6, Window 64bit 目的 利用 jieba 进行分词,关键词提取 代码 # -*- coding: utf-8 -*- import jieba ...

  7. python --jieba 分词

    jieba库是什么 jieba库中文分词第三方库,中文文本需要通过分词获得单个的词语. jieba库的原理:利用中文字库,确定汉字之间的关联概率,汉字件概率大的组成词组,形成分词结果,还可以添加自定义 ...

  8. python jieba 分词进阶

    https://www.cnblogs.com/jiayongji/p/7119072.html 文本准备 到网上随便一搜"三体全集",就很容易下载到三体三部曲的全集文本(txt文 ...

  9. python jieba分词的tmp_dir报错问题

    跑代码报错: PermissionError: [Errno 1] Operation not permitted: '/tmp/tmpnrj1wcjg' -> '/tmp/jieba.cach ...

最新文章

  1. android tombstone发生过程,Android Tombstone 分析
  2. Python异步通信模块asyncore
  3. PHP Mysql 网站迁移,Linux+PHP+MySql网站迁移配置
  4. 代码提示_PHPStorm 支持 Laravel Facades 的代码提示
  5. sublime3环境
  6. mysql表结构及索引脚本
  7. 5美元的互联网硬件主板
  8. mysql分页limit (currentPage-1)*pageSize,pageSize
  9. vue中用canvas 画一个六边形 类似蜂窝形的功能导航主菜单
  10. 浅谈IC卡密码的破解方法
  11. Loadrunner12.55windows-linux-os安装详细教程
  12. SQL常用脚本整理,建议收藏
  13. 消防设施操作员考试真题、模拟练习题库(8)
  14. Poemscape|Beta阶段事后诸葛亮
  15. swift对接整合ceph
  16. 【干货】Python爬虫/文本处理/科学计算/机器学习/数据挖掘兵器谱
  17. 数据嗨客 | 第3期:朴素贝叶斯和垃圾邮件过滤 机器学习 2016-11-01 0 摘要:概率论只不过是把常识用数学公式表达了出来。 概率论只不过是把常识用数学公式表达了出来。 —
  18. python入门基础002
  19. 【C/C++学院】(8)全局函数和类成员函数转化/友元/操作符重载
  20. 使用Docker搭建Nextcloud个人工作中心(同步盘+离线下载等功能)以及DNS服务器搭建

热门文章

  1. 使用SecureCRT连接ubuntu虚拟机,显示到会话连接失败的解决方法
  2. 如何治理“网络暴力” 在人类文明不断发展向前的进程中,大数据时代应运而来。数学建模解题步骤,愚见而已,欢迎指错和探讨呀~
  3. [Nuxt.js]Nuxt项目启动跳过“Are you interested in participation?”
  4. EMC VNX点检报告
  5. 【转】77个优美句子+漂亮翻译
  6. chatgpt赋能python:Python在线模拟器:让编程变得更加轻松
  7. 解决Windows无法打开exe文件的问题
  8. java审批流程框架_基于SSM框架下的JAVA企业流程审批系统
  9. VC#_Windows窗体应用程序—计算器
  10. 数据增强:随机HSV增强