jieba基本使用过程

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,安装完成示意图

jieba基本使用过程_第1张图片

2 jieba库文件查看

安装好之后,认识一下这个jieba库,首先导入jieba,查看一下这个库的文件位置
jieba基本使用过程_第2张图片
主要是为了查看jieba库中的dict.txt文件夹,这个就是分词的依据,关于文件中数据的介绍,第一个就是词汇,第二个代表词频,第三个是词性,每一行都是由三个数据组成
jieba基本使用过程_第3张图片

3 基本使用

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

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

关于cut()/lcut()方法,直接先拿示例操作一下,看看结果输出是什么,代码如下。其中cut之后是一个生成器对象,如果要使用的话需要进行遍历迭代,比如这里直接让生成器中的数据全部输出至列表中;而lcut就是直接将分词后的内容以列表的形式返回。为了展示方便,后续都是使用lcut进行代码操作
jieba基本使用过程_第4张图片
看一下三种模式下的分词结果,搜索引擎模式是在精准模式上的细分
jieba基本使用过程_第5张图片
需要留意一下到底是在使用cut()方法还是在lcut()方法,两者只有一个字符之差
jieba基本使用过程_第6张图片

4 词性标注

在上面查看jieba文件夹时,除了很重要的dict.txt文件外还有一些文件夹,这些文件夹都是有着对应的功能,比如要进行词性标注,就使用到了posseg文件夹,使用方式如下
jieba基本使用过程_第7张图片
其中第一个是词汇,第二个就是词性,再进行一个简单的示例,可以发现存在着不同的词性
jieba基本使用过程_第8张图片
不必要全部记作所有的词性及其对应的标志字符,但是常用的一些词性标志及其对应的字符还是要牢记于心的,整理如下
jieba基本使用过程_第9张图片

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

上面列举的示例,貌似都没有问题,符合正常的输出,那么实际情况下,比如对于自己学校来说,对“‘上海海事大学是一个以航运、物流、海洋为特色的安全管理高校’”句子进行分词,可以发现对于“上海海事大学”和“安全管理”两个词语没有正确的切分开
jieba基本使用过程_第10张图片
是不是使用精准模式就不保留长长的一串的词汇呢?那试一试基于精准模式下的搜索模式,输出如何。结果表明,这两种方式都没有办法满足我的要求,测试全模式下的切分也没有办法满足,这时候就出现问题了,需要对现在的这种状况进行解决
jieba基本使用过程_第11张图片
解决问题的方式就回归到最初提到的那个dict.txt文件上了,由于jieba是按照这个词库进行分词的,如果默认的分词不能满足自己的需要,就需要我们手动进行指定相应的词库,比如在dict.txt文件夹下创建一个dict1.txt文件,用来放置我们要加载的词语,如下
jieba基本使用过程_第12张图片
然后将词库加载到程序中,代码如下:jieba.load_userdict(文件路径+文件名),执行结果后可以发现,定义的第一个词汇可以正常的进行分词,但是第二个词汇安全管理还是被当做了两个词
jieba基本使用过程_第13张图片
由于分词是按照词频进行的,这时候就需要改一下自己加入的词语的词频,更改的依据就是查看对应的词汇的频率,比如安全、管理这两个词汇的频率,都是属于高频的词汇
jieba基本使用过程_第14张图片
jieba基本使用过程_第15张图片
这里尝试把安全管理词汇的重要性提高,比如词频改为100试一下,结果可以完美输出了,所以针对于自己专业的词语,指定相应的字典进行分词。

★★★注意:这种方式操作不会影响原来的分词依据,也就是说这次程序加载的自定义字典只会在这次运行中有效,不会影响下次操作,除非修改的是自带的dict.txt文件
jieba基本使用过程_第16张图片
如果是加载的词语量比较少的情况下,可以不创建文件,直接通过代码来操作。代码指令:jieba.add_word(一个词汇) Add a word to dictionary. 如果要添加多个词可以遍历循环一下。比如下面对于云计算操作,这里的添加和上面的一样都是只对运行的本次程序有效,不影响下次执行
jieba基本使用过程_第17张图片
或者使用jieba.suggest_freq(词汇,tune = True),注意里面的tune参数
jieba基本使用过程_第18张图片

6 关键词提取与位置查找

关键词提取需要用到jieba模块下面的analyse文件夹,步骤如下,先指定好加载词,然后使用jieba.analyse.extract_tags(demo,5)进行关键词提取,如果不指定参数会默认提取前20个,也可以人工指定
jieba基本使用过程_第19张图片
对关键词的位置进行查找,可以使用jieba.tokenize(),里面有个mode参数,如果指定为search就是为搜索引擎模式,默认的就是精准匹配的方式
jieba基本使用过程_第20张图片

你可能感兴趣的:(#,python数据处理,python,编程语言,大数据,文本挖掘)