各位学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. 【LeetCode】300-最长上升子序列

    题目描述 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 ...

  2. redis在windows下安装设置密码及主从数据库

    redis在windows下安装设置密码及主从数据库 1.安装 下载解压后,如图所示: 2.配置. 打开redis.windows.conf文件,在此处设置端口和ip: 这里设置持久化: 在这里设置密 ...

  3. MySQL和mybatis查询相关

    0.mybatis的xml文件头 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapp ...

  4. android 定时提醒 - Notification

    定时弹出 demo ,代码如下: 1.MainActivity.java public class MainActivity extends Activity implements OnClickLi ...

  5. Android系统修改之Email自动回复功能分析

    1. Email添加自动回复功能需要注意事项 Email可能存在多个账户, 因此自动回复功能应该添加在账户设置里面, 自动回复针对一个账户单独处理 在Email账户设置里面, 开启自动回复功能的时, ...

  6. 面试官: 聊一聊Babel

    点击关注本公众号获取文档最新更新,并可以领取配套于本指南的 <前端面试手册> 以及最标准的简历模板. 前言 Babel 是现代 JavaScript 语法转换器,几乎在任何现代前端项目中都 ...

  7. 使用broker进行Datagurd主备切换报ORA-12514异常

    在使用Datagurd broker进行Datagurd主备切换时报ORA-12514监听异常, 详细信息如下: DGMGRL> switchover to xiaohe; Performing ...

  8. 07.Django学习之model进阶

    一 QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. >>> Entry.objects.all( ...

  9. gym102346题解

    B Buffoon 判断最大值是不是第一个数,签到题. H Hour for a Run 输出\(n*m\)的\(10\%\)到\(90\%\),签到题,注意别用浮点数和ceil,有精度问题. M M ...

  10. win10 更新之后,软件路径被改为*

    win 10 更新到最新版之后,软件安装盘符被改为* ,导致软件打开失败,截图如下: 1. 首先先下载一个RegistryWorkshop 地址:https://sm.myapp.com/origin ...