各位学python的朋友,是否也曾遇到过这样的问题,举个例子如下:

“I am proud of my motherland”

如果我们需要提取中间的单词要走如何做?

自然是调用string中的split()函数即可

那么将这转换成中文呢,“我为我的祖国感到骄傲”再分词会怎样?

中国词汇并不像是英文文本那样可以通过空格又或是标点符号来区分,

这将会导致比如“骄傲”拆开成“骄”、“傲”,又或者将“为”“我的”组合成“为我的”等等

那如何避免这些问题呢? 这就用到了今天介绍的python基础库——jieba库

一、什么是jieba库?

jieba库是优秀的中文分词第三方库 ,它可以利用一个中文词库,确定汉字之间的关联概率,

将汉字间概率大的组成词组,形成分词结果,将中文文本通过分词获得单个的词语。

jieba分词的三种模式 :精确模式、全模式、搜索引擎模式

- 精确模式:把文本精确的切分开,不存在冗余单词

- 全模式:把文本中所有可能的词语都扫描出来,有冗余

- 搜索引擎模式:在精确模式基础上,对长词再次切分

二、安装jieba库

安装jieba库还是比较简单的,我介绍几种简单的方法

1.全自动安装

打开cmd命令提示符然后输入代码

easy_install jieba

pip install jieba

pip3 install jieba

三段代码任意一个即可自动下载安装

2.半自动安装

首先打开jieba库网站:http://pypi.python.org/pypi/jieba/

然后下载并运行python setup.py install

最后将 jieba 目录放置于当前目录或者 site-packages 目录

3.软件安装

许多编辑软件都可以在软件内部安装,以pycharm2019为例子

首先打开pycharm,在左上角文件中可以找到设置,然后打开设置

右侧项目相关可以找到 project interpreter,进入可以查看项目引用的模块

点击右侧的加号,在available packages 中搜索jieba  选中后点击左下角安装即可

4.检测安装

打开命令提示符(cmd)进入python环境

输入import jieba 如下图所示即为安装成功

三、主要函数

jieba.cut(s)        

被运用于精确模式,将会返回一个可迭代的数据类型

jieba.cut(s,cut_all=True) 

被运用于全模式,输出文本s中的所有可能单词

jieba.cut_for_search(s)

搜索引擎模式,适合搜索引擎建立索引的分词结果

jieba.lcut(s)

被运用于精确模式,将会返回一个列表类型

jieba.lcut(s,cut_all=True)

被运用于全模式,返回一个列表类型

jieba.lcut_for_search(s)

搜索引擎模式,返回一个列表类型

jieba.add_word(w)

向分词词典加入新词

相信不少同学已经看得有点蒙,那么接下来我将通过代码来实际对比不同点

首先我们对比三个不同的模式 ,之前的介绍可以看出:

精确模式将不会出现冗余,所有词汇都是根据最大可能性而进行组合的出结果

全模式与精确模式最大区别在于,全模式将会把所有可能拼接的词汇全部展现

搜索引擎模式则是在精确模式的前提下对较长词汇进行再一次分割

我们以“我因自己是中华人民共和国的一份子而感到骄傲”为例

*精确模式结果如下 :

['我', '因', '自己', '是', '中华人民共和国', '的', '一份', '子', '而', '感到', '骄傲']

*全模式结果如下:

['我', '因', '自己', '是', '中华', '中华人民', '中华人民共和国', '华人', '人民', '人民共和国', '共和', '共和国', '的', '一份', '份子', '而', '感到', '骄傲']

*搜索引擎模式结果如下:

['我', '因', '自己', '是', '中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '的', '一份', '子', '而', '感到', '骄傲']

可以很明显的对比出来,全模式将所有课能出现的词汇进行罗列,而搜索引擎模式与精确模式十分相似,但对“中华人名共和国“”这一词汇进行分词

至于有的同学发现有些函数十分相似,比如说cut()与lcut()

两者之间其实差距不大,主要不同在于返回类型,加“l”的一般返回为列表类型。

如果觉得有所帮助,还望各位大佬点赞支持谢谢

Python基础库之jieba库的使用(第三方中文词汇函数库)的更多相关文章

  1. 学习参考《Python基础教程(第3版)》中文PDF+英文PDF+源代码

    python基础教程ed3: 基础知识 列表和元组 字符串 字典 流程控制 抽象(参数 作用域 递归) 异常 魔术方法/特性/迭代器 模块/标准库 文件 GUI DB 网络编程 测试 扩展python ...

  2. Python基础学习笔记(八)常用字典内置函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...

  3. Python基础学习笔记(七)常用元组内置函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxue ...

  4. 【笔记】Python基础二:数据类型之集合,字符串格式化,函数

    一,新类型:集合 集合出现之前 python_l = ['lcg','szw','zjw'] linux_l = ['lcg','szw','sb'] #循环方法求交集 python_and_linu ...

  5. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...

  6. python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数

    目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...

  7. python基础(内存分析,不引入第三方变量的方式交换变量的值)

    a,b指向同一块内存地址 下面方法是重新给b赋值;a,b指向不同的内存地址 字符串或int类型内存分析 不引入第三方变量的方式,交换a,b的值

  8. Win10系统下Anaconda下安装多种Python函数库

    建议直接安装Anaconda,这是一个包含Numpy,Pandas,Sklearn等函数库的计算机科学软件包,下面的软件可以在此环境下进行安装下载. 一.计算机视觉 1. OpenCV图像处理 在ht ...

  9. 通过编译函数库来学习GCC【转】

    转自:http://blog.csdn.net/u012365926/article/details/51446295 基本概念 什么是库 在windows平台和linux平台下都大量存在着库. 本质 ...

随机推荐

  1. Java复习:集合框架(一张图)

    最后一个看不见了补充一下: ConcurrentHashMap:是线程安全的(基于lock实现的,同步的时候锁住的不是整个对象,而加了synchronized的是锁住了整个的对象),实现了Map接口, ...

  2. MySQL Explain学习笔记

    目录 一.执行计划概念 二.Explain用法 三.Explain属性介绍 3.1 id属性 3.2 select_type属性 3.3 table属性 3.4 type属性 3.5 possible ...

  3. 【深入浅出-JVM】(76):classloader

    方法 public Class<?> loadClass(String name) throws ClassNotFoundException 通过类名发挥这个类的Class实例 prot ...

  4. 聊聊JavaScript异步中的macrotask和microtask

    前言 首先来看一个JavaScript的代码片段: console.log(1); setTimeout(() => { console.log(2); Promise.resolve().th ...

  5. Linux服务器MySQL安装

    Linux服务器MySQL安装 1. MySQL官网下载如图: 2. 安装MySQL [root@iZ2zebb0428roermd00462Z /]# rpm -ivh https://dev.my ...

  6. DirectX12 3D 游戏开发与实战第四章内容(下)

    Direct3D的初始化(下) 学习目标 了解Direct3D在3D编程中相对于硬件所扮演的角色 理解组件对象模型COM在Direct3D中的作用 掌握基础的图像学概念,例如2D图像的存储方式,页面翻 ...

  7. spring中基于注解使用ehcache

    继续上篇,这篇介绍服务层缓存,基于注解的方式使用ehcache 注解的标签主要有4个:@Cacheable.@CacheEvict.@CachePut.@Caching,他们的用法是: @Cachea ...

  8. wepy框架开发小程序遇到的node-sass问题解决方案

    一.报错图 二.解决方案 主要是windows平台缺少编译环境, 1.先运行: npm install -g node-gyp 2.然后运行cmd:(右键点击:以管理员身份运行) 输入:npm ins ...

  9. moment实现计算两个时间的差值

    var m1 = moment('2018-08-14 11:00:00'), m2 = moment('2018-08-14 12:10:00'); console.log(m1)console.l ...

  10. IT修养-基础篇

    1.科学基础 成为开发人员的过程不尽相同,有的是科班出身,有的是兴趣爱好,还有的是专业机构的培训,在这个过程中,可能全面或者零散甚至没有学习过计算机基础学科,但无论是哪一种,想要成为更高层次的开发人员 ...