jieba分词器是Python中最好的中文分词组件,本文讲解一下jieba分词器及其应用。

1、jieba分词器的分词模式

jieba分词器提供了三种常用的分词模式

1、精确模式:将句子按照最精确的方法进行切分,适合用于进行文本分析;

2、全模式:将句子当中所有可以成词的词语都扫描出来,分词速度很快但容易产生歧义;

3、搜索引擎模式:在精确模式分词的基础上,将长的句子再次进行切分,提高召回率,适用于搜索引擎的分词。

注:jieba也支持对繁体字进行分词。

在jieba中我们可以使用jieba.cut和jieba.cut_for_search来进行中文分词,我们可使用 for 循环来获得分词后得到的每一个词语。

下面通过代码来实现以下jieba的使用。

import jieba
ex = '南京市长江大桥'# 全分词模式
all_cut = jieba.cut(ex, cut_all=True)
# 精确分词模式
precise_cut = jieba.cut(ex, cut_all=False)
# 当我们省略掉cut_all参数时,cut_all默认值为False,此时分词模式为精确分词
default_precise_cut = jieba.cut(ex)
# 搜索引擎模式
search_cut = jieba.cut_for_search(ex)print("全分词: ", "/".join(all_cut))
print("精确分词: ", "/".join(precise_cut))
print("默认精确分词: ", "/".join(default_precise_cut))
print("搜索分词: ", "/".join(search_cut))

分词后的结果如下:

2、jieba分词器字典的补充

jieba分词器有两种补充字典的形式,一种是自定义文件导入的静态补充,一种是利用其内置函数的动态补充。

  • 静态补充:

我们可以自定义词典,以便包含jieba词典中没有的词(虽然jieba有新词识别能力,但是添加自定义词典可以提高准确率)

  • 添加格式

词语    词频(可省略)    词性(可省略)

我们可以按照上面三个属性去添加新的词语,属性之间用一个空格分开即可。

  • 添加方法函数
jieba.load_userdict(file_name)    # file_name为我们要添加的词典的路径

举例子来说明一下这种添加形式

假设我们现在有文件add_words.txt为要添加的词典,词典中设定的内容如下,我们用全分词模式来验证结果。

长江大 5
江大桥 3 nz
南京市长江 2
import jieba
ex = '南京市长江大桥'
print("更新前的全分词结果: ", "/".join(jieba.cut(ex, cut_all=True)))
jieba.load_userdict("add_words.txt")
print("更新词典后的全分词结果: ", "/".join(jieba.cut(ex, cut_all=True)))

输出结果如下:

由结果可见,我们新添加的词语出现在了全分词的结果当中。

  • 动态补充:

我们可以使用jieba.add_word()和jieba.del_word()两种函数来动态的添加或者删除词语,其中add_word()可以添加词频和词性两种参数,示例如下:

import jieba
ex = '南京市长江大桥'
print("更新前的全分词结果: ", "/".join(jieba.cut(ex, cut_all=True)))
jieba.add_word("南京市长江")
jieba.add_word("南京市长江", freq=5, tag='nz')
jieba.del_word("南京")
print("更新词典后的全分词结果: ", "/".join(jieba.cut(ex, cut_all=True)))

输出结果如下:

以上便是jieba分词器的词典添加方式。

3、高频词提取

高频词一般是指在文档中出现次数较多且有用的词语,在一定程度上表达了文档的关键词所在;高频词提取中我们主要用到了NLP中的TF策略。

停用词:像“的”“了”这种没有任何意义的词语,我们不需要进行统计。

TF指的是某个词语在文章中出现的总次数,我们将文章进行分词,去掉停用词(包括标点符号),然后取统计每个词在文章中出现的次数即可。

下面给出示例代码

# -*- coding: utf-8 -*-
import glob
import random
import jieba
# 读取文章的函数
def get_content(content_path):with open(content_path, 'r', encoding="gbk", errors="ignore") as f:content = ''for i in f:i = i.strip()content += ireturn content
# 提取topK个高频词的函数
# TF:计算某个词在文章中出现的总次数
def get_TF(k,words):tf_dic = {}for i in words:tf_dic[i] = tf_dic.get(i, 0)+1return sorted(tf_dic.items(), key=lambda x: x[1], reverse=True)[:k]# 去掉停用词(包括标点)
def stop_words(path):with open(path, encoding='UTF-8') as f:return [l.strip() for l in f]
# 主函数
if __name__ == "__main__":files = glob.glob("*.txt")corpus = [get_content(x) for x in files]sample_inx = random.randint(0, len(corpus))split_words = [x for x in jieba.cut(corpus[sample_inx]) if x not in stop_words("stop_words.utf8")]print("top(k)个词为:" + str(get_TF(10, split_words)))

我们所选的文章为:

主持人:刚才讲到了治疗方法,那么在放疗和化疗的时候,在杀伤肿瘤(专题 访谈 咨询)细胞的时候会有其他伤害,那么在治疗的时候应该注意什么呢?张频:我想就是说这个头颈部肿瘤比较特殊,所以在手术的化疗的时候,对病人可能有一些限制,所以就是说对这部分的病人跟其它部位的病人的肿瘤还不一样,当然说药物治疗是普遍的,就是说接受药物治疗,我们常见的就是胃肠道会出现恶心、呕吐,其次就是说病人会出现白细胞、血小板的减少,甚至出现贫血,这是比较常见的。这两个不良反应是比较多的,当然还有一些不舒服的,会出现一些别的症状,包括头颈部肿瘤的、口腔的,头面部做过放射治疗的,这些病人通常都会出现对口腔的、黏膜的影响。张频:当然使用一些药物,还会出现一些神经的毒素,还有一些其它的肝肾的损害,这些会不会出现就是根据这个病人的肝肾功能的情况。那么头颈部肿瘤的化疗最大的问题可能是胃肠道的反应比较大,还有口腔粘膜的反应比较大。那么胃肠道的反应,我们不管是国内还是国外,我们现在有一些比较好的药物,那么目前这些药物在临床应用得十分广泛,比过去的其它的药物相比可以控制不良反应。张频:但是尽管这样还有30%左右的病人,用了药可能还会出现这样的情况。可能这样的病人比较害怕使用化疗。那么我们目前对骨髓病有比较好的治疗药物,比如说白细胞介素,还有一些增长白细胞的药物,通过皮下的注射以后,可以提升白细胞的数量。那么对于血小板的减少,我们也可通过药物增加血小板的数量。对于其它的肝功能和肾功能的损害,如果出现了异常我们可以进行一些保护性的治疗。张频:所以总的来说头颈部的肿瘤病人,如果需要化疗,也需要看具体的部位。治疗的药物也非常多,所以经过对证的治疗大部分是会有一定疗效的。徐震纲:头颈部肿瘤的病人通常需要放疗,那么首先射线要通过腮腺,那么通常有一个共同的症状是口干,通常是因为唾液腺受到了照射后就会有这样的情况,所以这些人到哪儿都会带着一杯水。所以现在的治疗手段是实行调强治疗,不同于常规的照射手段均是从体外照射。所谓的调强放疗,就是说可以强调对一个部位的集中照射,这样的话可以使肿瘤在这个部位接受的治疗剂量最高,而常规照射通常是全部通过腮腺的。经过调强照射后使原先得到的照射量降低,这样病人做过治疗以后,可以减轻或者避免放疗的副作用。徐震纲:第二个是皮肤和黏膜的炎症,还有干性的反应,因为病人的皮肤在放射线下非常的脆弱,有糜烂的反应,作为家属平常给他穿衣服要薄一点儿,因为经过了照射的组织比较脆弱,容易造成损伤,而这些损伤恢复起来比较困难。主持人:那么经过了放疗之后的这种皮肤的损伤会不会修复呢?徐震纲:一般损伤会持续一段时间。那么也有的人恢复时间比较长,这根据不同的部位,它照射的部位不同,它反应的轻重程度也不同,那么照射了四个周期的和照射了六个周期的反应是明显地不同的。那么医生对照射的副作用相对要做一些保护性的措施。

进行高频词提取后的结果为(列出了词频最高的十个词语):

本文中我们讲解了jieba分词器的用法以及在高频词汇提取时的应用,下文中还会讲到在NLP其他领域的应用。

jieba分词器(应用及字典的补充)及文档高频词提取实战相关推荐

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

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

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

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

  3. 一文掌握jieba分词器的常见用法,附带案例

    一. jieba分词器的基础知识 安装:pip install jieba 安装:pip3 install paddlepaddle-tiny 如果出现超时的情况,指定清华源:pip3 install ...

  4. python中文分词器-jieba分词器详解及wordcloud词云生成

    jieba分词 jieba分词支持三种分词模式: 精确模式, 试图将句子最精确地切开,适合文本分析 全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义 搜索引擎模式,在精确模 ...

  5. Java web:基于jieba分词器(或ansj分词器)的文章关键词字符云(词云图)

    上来先丢一个展示图,吸引一下注意力(跑. 上图为对某论文用jieba分词后,计算其逆文档频率(TF-IDF)作为权重,并用echarts的字符云扩展包echarts-wordcloud画出来的字符云图 ...

  6. Jieba:高频词提取

    1.高频词定义 高频词是指文档中出现频率较高且非无用的词语,其一定程度上代表了文档的焦点所在.针对单篇文档可以作为一种关键词来看.对于如新闻这样的多篇文档,可以将其作为热词,发现舆论热点. 高频词提取 ...

  7. java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 本源码技 ...

  8. 计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档) 计算机毕业设计Javavue开发一个简单音乐播放器(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...

  9. 基于JAVAvue开发一个简单音乐播放器计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVAvue开发一个简单音乐播放器计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVAvue开发一个简单音乐播放器计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目 ...

最新文章

  1. .project sturcture和Project Structure 无论是按快捷键或者是从files中打开都不显示
  2. 李倩星r语言实战_《基于R的统计分析与数据挖掘》教学大纲
  3. robot:接口入参为图片时如何发送请求
  4. java类变量什么时候初始化_Java类变量的初始化时机
  5. 字符串的存储方式以及静态存储区域、栈、堆
  6. gnome boxes_如何使用GNOME Boxes的快照功能
  7. [iBoard 电子学堂][第二卷 C程序设计语言 ]第二篇 数据类型与运算符
  8. PostgreSQL数据库 OLTP高并发请求性能优化
  9. .p7b证书转成iis使用的.pfx证书
  10. 应急响应-winlinux分析后门勒索病毒攻击
  11. 可缩放矢量图形svg
  12. 【朝花夕拾】Android自定义View篇之(十)移动阈值TouchSlop及滑动追踪VelocityTracker...
  13. arcgis for javascript 4.18 添加图片到地图(可用于实现雷达图片上图)
  14. Android音乐浮窗播放器
  15. RAC环境备份归档日志和RMAN恢复启动数据库
  16. 神舟十二号出征星辰大海--麒麟信安操作系统筑牢“千年飞天梦”软件基石
  17. 计算机主机拆转视频,新旧电脑数据转移(如何将旧电脑数据转移到新电脑)
  18. Done、Doing、ToDo
  19. kaggle中的房价预测的一些数据分析方法详解
  20. 基于Matlab闭环Buck降压斩波电路Simulink仿真电路模型搭建

热门文章

  1. 基础shell脚本练习
  2. 低轨互联网产业发展探究
  3. 华为充电显示android 是怎么回事,华为手机充电提示音教程如何改?Android设置换充电提示音教程...
  4. 使用Framer为iOS和Android创建原型:基础
  5. 【Linux】分区和格式化硬盘(fdisk | parted)
  6. 16g电脑内存有什么好处_买2条8G的内存也不买1条16G?详解电脑内存双通道工作原理与作用...
  7. 获巴菲特腾讯加持,拉美信用卡大王Nubank 凭啥值400亿美元?
  8. 单反相机SD卡报错示例
  9. 非分页缓冲池占用巨大且不减少(网卡内存泄漏)
  10. WooCommerce电商开发:高性能订单存储(即将成为)新常态