jieba分词

  • 0 引言
  • 1 jieba库安装
  • 2 jieba库文件查看
  • 3 基本使用
  • 4 词性标注
  • 5 自定义词典和加载自定义词语
  • 6 关键词提取与位置查找

0 引言

今天起正式开始对于文本挖掘相关知识的学习,之前都是东学一点,西学一点,没有一个体系,希望接下来可以好好把这方面的知识梳理一下,方便学以致用。今天梳理知识点就是jieba分词,采用逐步梳理的方式进行

python环境使用的是miniconda里面的jupyter notebook

1 jieba库安装

关于jieba这个库的介绍,就不多说了,主要就是和分词联系在一块,所以叫多了就把结巴分词当成一个词语了,首先就是使用前安装,为了安装方便,可以直接在jupyter notebook里面进行,安装代码:!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba,安装完成示意图

2 jieba库文件查看

安装好之后,认识一下这个jieba库,首先导入jieba,查看一下这个库的文件位置

主要是为了查看jieba库中的dict.txt文件夹,这个就是分词的依据,关于文件中数据的介绍,第一个就是词汇,第二个代表词频,第三个是词性,每一行都是由三个数据组成

3 基本使用

比如最常用的一个示例,就是对“我喜欢上海东方明珠”进行分词,分词类型有三种,如下

  • 全模式cut_all = True
  • 精准模式cut_all = False
  • 搜索引擎模式lcut_for_search

关于cut()/lcut()方法,直接先拿示例操作一下,看看结果输出是什么,代码如下。其中cut之后是一个生成器对象,如果要使用的话需要进行遍历迭代,比如这里直接让生成器中的数据全部输出至列表中;而lcut就是直接将分词后的内容以列表的形式返回。为了展示方便,后续都是使用lcut进行代码操作

看一下三种模式下的分词结果,搜索引擎模式是在精准模式上的细分

需要留意一下到底是在使用cut()方法还是在lcut()方法,两者只有一个字符之差

4 词性标注

在上面查看jieba文件夹时,除了很重要的dict.txt文件外还有一些文件夹,这些文件夹都是有着对应的功能,比如要进行词性标注,就使用到了posseg文件夹,使用方式如下

其中第一个是词汇,第二个就是词性,再进行一个简单的示例,可以发现存在着不同的词性

不必要全部记作所有的词性及其对应的标志字符,但是常用的一些词性标志及其对应的字符还是要牢记于心的,整理如下

5 自定义词典和加载自定义词语

上面列举的示例,貌似都没有问题,符合正常的输出,那么实际情况下,比如对于自己学校来说,对“‘上海海事大学是一个以航运、物流、海洋为特色的安全管理高校’”句子进行分词,可以发现对于“上海海事大学”和“安全管理”两个词语没有正确的切分开

是不是使用精准模式就不保留长长的一串的词汇呢?那试一试基于精准模式下的搜索模式,输出如何。结果表明,这两种方式都没有办法满足我的要求,测试全模式下的切分也没有办法满足,这时候就出现问题了,需要对现在的这种状况进行解决

解决问题的方式就回归到最初提到的那个dict.txt文件上了,由于jieba是按照这个词库进行分词的,如果默认的分词不能满足自己的需要,就需要我们手动进行指定相应的词库,比如在dict.txt文件夹下创建一个dict1.txt文件,用来放置我们要加载的词语,如下

然后将词库加载到程序中,代码如下:jieba.load_userdict(文件路径+文件名),执行结果后可以发现,定义的第一个词汇可以正常的进行分词,但是第二个词汇安全管理还是被当做了两个词

由于分词是按照词频进行的,这时候就需要改一下自己加入的词语的词频,更改的依据就是查看对应的词汇的频率,比如安全、管理这两个词汇的频率,都是属于高频的词汇


这里尝试把安全管理词汇的重要性提高,比如词频改为100试一下,结果可以完美输出了,所以针对于自己专业的词语,指定相应的字典进行分词。

★★★注意:这种方式操作不会影响原来的分词依据,也就是说这次程序加载的自定义字典只会在这次运行中有效,不会影响下次操作,除非修改的是自带的dict.txt文件

如果是加载的词语量比较少的情况下,可以不创建文件,直接通过代码来操作。代码指令:jieba.add_word(一个词汇) Add a word to dictionary. 如果要添加多个词可以遍历循环一下。比如下面对于云计算操作,这里的添加和上面的一样都是只对运行的本次程序有效,不影响下次执行

或者使用jieba.suggest_freq(词汇,tune = True),注意里面的tune参数

6 关键词提取与位置查找

关键词提取需要用到jieba模块下面的analyse文件夹,步骤如下,先指定好加载词,然后使用jieba.analyse.extract_tags(demo,5)进行关键词提取,如果不指定参数会默认提取前20个,也可以人工指定

对关键词的位置进行查找,可以使用jieba.tokenize(),里面有个mode参数,如果指定为search就是为搜索引擎模式,默认的就是精准匹配的方式

jieba基本使用过程相关推荐

  1. 自然语言处理之jieba分词

    在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...

  2. python情感分析:基于jieba的分词及snownlp的情感分析!

    情感分析(sentiment analysis)是2018年公布的计算机科学技术名词. 它可以根据文本内容判断出所代表的含义是积极的还是负面的,也可以用来分析文本中的意思是褒义还是贬义. 一般应用场景 ...

  3. for循环数据量太大_中文文本分类roberta大力出奇迹之数据量大的问题

    问题描述: 笔者在文本分类场景中使用了roberta+pool+dense的三分类模型.采用预训练模型做项目的时候经常苦于数据太少,模型泛化性差,因此收集了1300W数据.在我尝试暴力出奇迹的时候,遇 ...

  4. 数据挖掘——文本挖掘-关键字提取

    基于jieba包的自动提取 关键方法:jieba.analyse.extract_tags(content,topK=n) 具体思路:通过jieba包自带的extract_tags方法,在遍历读取文件 ...

  5. 分词,难在哪里?科普+解决方案!

    题图:by Lucas Davies 一.前言 分词,我想是大多数大前端开发人员,都不会接触到的一个概念.这个不影响我们了解它,毕竟我们要多方向发展.今天就来简单介绍一些分词,我尽量用简介的语言来描述 ...

  6. jieba中文分词源码分析(四)

    一.未登录词问题 在jieba中文分词的第一节曾提到未登录词问题 中文分词的难点 分词规范,词的定义还不明确 (<统计自然语言处理>宗成庆) 歧义切分问题,交集型切分问题,多义组合型切分歧 ...

  7. Jieba分词原理与解析

    1 HMM模型 马尔科夫过程: 以天气判断为例:引出隐马尔科夫模型 于是我们可以将这种类型的过程建模为有一个隐藏的马尔科夫过程和一个与这个隐藏马尔科夫过程概率相关的并且可以观察到的状态集合.这就是本文 ...

  8. 码书:入门中文NLP必备干货:5分钟看懂“结巴”分词(Jieba)

    导读:近年来,随着NLP技术的日益成熟,开源实现的分词工具越来越多,如Ansj.盘古分词等.在本文中,我们选取了Jieba进行介绍和案例展示,主要基于以下考虑: 社区活跃.截止本文发布前,Jieba在 ...

  9. Python_note6 组合数据类型+jieba库+文本词频统计

    集合类型和操作 集合元素不可修改,由不可变数据类型组成,元素不可重复 a = {"python",123,("python",123)}使用{}建立集合 b = ...

  10. python删除中文停用词_python词云 wordcloud+jieba生成中文词云图

    简介 Python+jieba+wordcloud+txt+gif生成动态中文词云 本文基于爬虫爬取某微信号三个月的文章为例,展示了生成中文词云的完整过程.本文需要的两个核心Python类库: jie ...

最新文章

  1. java close 方法,用Layman的术语解释Java中的close()方法
  2. 价值6.11亿美元的入侵工具无人问津
  3. 【CV】基于聚类的图像分割-Python
  4. webview与js交互
  5. 缓存-SpringCache-整合体验@Cacheable
  6. WebGL(五)——WEBGL缓冲区,绘制三角形
  7. 为什么不建议学python贴吧_为什么那么多自学Python的后来都放弃了,总结下来就这些原因...
  8. 采用优化卷积神经网络的红外目标识别系统
  9. python实践gcForest模型对鸢尾花数据集iris进行分类
  10. DNS服务器上的IP地址修改
  11. Android面试问题收集总结
  12. 阿里巴巴高级Java面试题(首发,70道)
  13. java 找不到符号变量_java 编程中出现的 找不到符号 的问题
  14. 数据分析基础学习_Matplotlib_常见图形及绘制(折线图/散点图/柱状图/直方图/饼图)
  15. NLP文档挖宝(1)——tokenizer的诞生
  16. 用Python制作动态饼图
  17. 读书笔记-《像高手一样发言》
  18. 零基础想学习Web安全,如何入门?
  19. 使用mybatis进行四表联查
  20. 什么是大数据,大数据的特点

热门文章

  1. 随机森林模型保存-python
  2. NetBEUI协议巧安装
  3. 【亲测有效】无法定位链接器!请检查 tools\link.ini 中的配置是否正确的解决方案...
  4. 使用dea-toolbox进行数据包络分析
  5. CAD插件学习系列教程(五) 小菜选择易
  6. 用拉普拉斯变换求零状态响应_什么是UPS?为什么用UPS?关于UPS电源的知识都在这里!...
  7. 手机销售网jsp程序设计
  8. 射频电路设计——射频器件基础
  9. 统计Java源代码中关键字的数目(每个关键字的数目)
  10. session超时问题