自然语言NLP必备(1),jieba工具 5 行代码对整篇文章分词

自然语言是什么?下面来看看百度百科的介绍:

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。

自然语言有什么作用?

广泛的应用在机器(文字/语言/图片)翻译,情感分析、信息检索等领域。

下面介绍中文分词工具 jieba 的安装和使用,旨在让读者快速入门 jieba,快速掌握中文分词的方法。

1、安装

pip install jieba

2、重要分词函数

常规模式

jieba.cut(sentence, cut_all=False, HMM=True)

sentence: 需要分词的字符串; 
cut_all: 参数用来控制是否采用全模式;
HMM: 参数用来控制是否适用HMM模型

搜索模式

jieba.cut_for_search(sentence, HMM=True)

 sentence:需要分词的字符串;
 HMM: 是否使用 HMM 模型,适用于搜索引擎构建倒排索引的分词,粒度比较细。

分词器

jieba.Tokenizer(dictionary=DEFUALT_DICT)

新建自定义分词器,可用于同时使用不同字典,jieba.dt为默认分词器,所有全局分词相关函数都是该分词器的映射。

​返回的形式

◇jieba.cut 以及 jieba.cut_for_search 返回的结构都是可以得到的 generator (生成器), 
 可以使用 for 循环来获取分词后得到的每一个词语或者使用
​jieb.lcut() 以及 jieba.lcut_for_search() 直接返回list

注意事项

◇待分词的字符串可以是unicode或者UTF-8字符串,GBK字符串。
注意不建议直接输入GBK字符串,可能无法预料的误解码成UTF-8,

3、三种分词模式

jieba分词支持三种分词模式:
​
★精确模式, 试图将句子最精确地切开,适合文本分析:
​
★全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,
 但是不能解决歧义;
​
★搜索引擎模式,在精确模式的基础上,对长词再词切分,提高召回率,
 适合用于搜索引擎分词。
​
 

4、具体实例

注意在展示分词数据时,join 要表示成 '【区域1】' . join(【区域2】)的形式,其中区域 1 主要是自定义分词符,而区域 2 是分词后的数据

全模式分词

import jieba
data = jieba.cut('人生苦短,我学python',cut_all=True) 
print('Out:' + '/'.join(data))

Out:人生/苦短///我/学/python

精确模式

import jieba
​data = jieba.cut('人生苦短,我学python',cut_all=False) 
print('Out:' + '/'.join(data))

Out:人生/苦短/,/我学/python

搜索引擎模式

import jieba
data = jieba.cut_for_search('人生苦短,我学python,让我们一起学习python吧') 
print('Out:' + ','.join(data))

Out:人生,苦短,,,我学,python,,,让,我们,一起,学习,python,吧

5、整篇文章进行分词

5 行代码实现任意中文文章分词

下面将小编以往的文章保存成 mydata.txt 记事本文件,然后通过 jieba 模块进行分词(提示:也可以直接利用爬虫模块 requests 直接把网页数据下载用于分词)

python网络爬虫学习路线的最全总结,理清思路才能高效学好爬虫

代码如下:

''' 传入中文文档进行分词 '''
import jieba
# 打开自己想要分词的文本文件,打开模式为 'rb' 二进制读取
fp = open('../data/mydata.txt','rb')
strData = fp.read()
data = jieba.cut(strData, cut_all=False)
print('/ '.join(data))

程序运行部分结果如下:

大家/ 都/ 知道/ ,/ 学习/ 一门/ 学科/ 的/ 时候/ 是/ 要/ 清楚/ 它/ 的/ 知识/ 框架/ 才能/ 清晰/ 的/ 学习/ 、/ 有/ 系统/ 的/ 学习/ ,/ 下面/ 来列/ 一列/ python/ 网络/ 爬虫/ 的/ 知识/ 框架/ 来/ 帮助/ 大家/ 能够/ 有效/ 的/ 学习/ 和/ 掌握/ ,/ 避免/ 不必要/ 的/ 坑/ 。/ 
/ 
/ python/ 网络/ 爬虫/ 总的来说/ 有/ 五个/ 大/ 的/ 方面/ :/ 
/ 前端/ 知识/ —/ —/ 基础/ 爬虫/ —/ —/ 框架/ 爬虫/ —/ —/ 分布式/ 爬虫/ —/ —/ 突破/ 反/ 爬虫/ 
/ 
/ 1/ ./ 前端/ 知识/ :/ 
/ “/ 网络/ 爬虫/ ”/ 很/ 明显/ 对象/ 是/ 网络/ ,/ 也/ 就是/ 网页/ 。/ 说/ 到/ 网页/ ,/ 这里/ 就/ 涉及/ 到/ 了/ 前端/ 的/ 知识/ 了/ ,/ 不过/ 大家/ 也/ 不要/ 慌/ ,/ 只要/ 懂点/ 必要/ 的/ HTML5/ 框架/ 、/ 网页/ 的/ http/ 请求/ 、/ 还有/ JavaScript/ 、/ css3/ 的/ 知识/ 就/ 可以/ 了/ ,/ 以/ 这样/ 的/ 水平/ 也/ 是/ 可以/ 学会/ 爬虫/ 的/ 啦/ 。/ 当然/ ,/ 如果/ 要/ 非常/ 精通/ python/ 网络/ 爬虫/ 的话/ ,/ 深入/ 学习/ 前端/ 知识/ 是/ 必要/ 的/ 。/ 
自然语言NLP必备(1),jieba工具 5 行代码对整篇文章分词

明天将介绍如何提取关键词,怎样才知道那些词语出现的频率更高的问题

End--------------

喜欢的读者朋友可以点赞和关注小编呀,更多精彩内容等着你.......

往期文章推荐如下:

机器学习必备知识(1),线性回归官方参数和用法介绍

机器学习必备知识(2),岭回归模型参数和用法介绍

数据分析必备知识(2),Matplotlib绘图必备知识大总结(上篇)

python必备知识(1),打包为exe文件封装成可导入模块

python列表操作,助你快速掌握列表常用的操作


分享到:


相關文章: