Python机器学习NLP自然语言处理基本操作精确分词

 更新时间:2021年09月21日 13:22:21   作者:我是小白呀  
本文是Python机器学习NLP自然语言处理系列文章,带大家开启一段学习自然语言处理 (NLP) 的旅程. 本文主要学习NLP自然语言处理基本操作之如何精确分词

概述

从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁.

在这里插入图片描述

分词器 jieba

jieba 算法基于前缀词典实现高效的词图扫描, 生成句子中汉字所有可能成词的情况所构成的有向无环图. 通过动态规划查找最大概率路径, 找出基于词频的最大切分组合. 对于未登录词采用了基于汉字成词能力的 HMM 模型, 使用 Viterbi 算法.

在这里插入图片描述

安装

pip install jieba

在这里插入图片描述

查看是否安装成功:

import jieba
print(jieba.__version__)

输出结果:

0.42.1

精确分词

精确分词: 精确模式试图将句子最精确地切开, 精确分词也是默认分词.

在这里插入图片描述

格式:

jieba.cut(content, cut_all=False)

参数:

  • content: 需要分词的内容
  • cut_all: 如果为 True 则为全模式, False 为精确模式

例子:

import jieba
# 定义文本
content = "自然语言处理是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。"
# 精确分词
seg = jieba.cut(content, cut_all=False)
# 调试输出
print([word for word in seg])

输出结果:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
Loading model cost 0.984 seconds.
Prefix dict has been built successfully.
['自然语言', '处理', '是', '人工智能', '和', '语言学', '领域', '的', '分支', '学科', '。', '此', '领域', '探讨', '如何', '处理', '及', '运用', '自然语言', ';', '自然语言', '处理', '包括', '多方面', '和', '步骤', ',', '基本', '有', '认知', '、', '理解', '、', '生成', '等', '部分', '。']

全模式

全模式分词: 全模式会把句子中所有可能是词语的都扫出来. 速度非常快, 但不能解决歧义问题.

例子:

C:\Users\Windows\Anaconda3\pythonw.exe "C:/Users/Windows/Desktop/project/NLP 基础/结巴.py"
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
['自然', '自然语言', '语言', '处理', '是', '人工', '人工智能', '智能', '和', '语言', '语言学', '领域', '的', '分支', '学科', '。', '此', '领域', '探讨', '如何', '何处', '处理', '及', '运用', '自然', '自然语言', '语言', ';', '自然', '自然语言', '语言', '处理', '包括', '多方', '多方面', '方面', '和', '步骤', ',', '基本', '有', '认知', '、', '理解', '、', '生成', '等', '部分', '。']
Loading model cost 0.999 seconds.
Prefix dict has been built successfully.

输出结果:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
['自然', '自然语言', '语言', '处理', '是', '人工', '人工智能', '智能', '和', '语言', '语言学', '领域', '的', '分支', '学科', '。', '此', '领域', '探讨', '如何', '何处', '处理', '及', '运用', '自然', '自然语言', '语言', ';', '自然', '自然语言', '语言', '处理', '包括', '多方', '多方面', '方面', '和', '步骤', ',', '基本', '有', '认知', '、', '理解', '、', '生成', '等', '部分', '。']
Loading model cost 0.999 seconds.
Prefix dict has been built successfully.

搜索引擎模式

搜索引擎模式: 在精确模式的基础上, 对长词再次切分. 提高召回率, 适合用于搜索引擎分词.

在这里插入图片描述

例子:

import jieba
# 定义文本
content = "自然语言处理是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。"
# 搜索引擎模式
seg = jieba.cut_for_search(content)
# 调试输出
print([word for word in seg])

输出结果:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
[('自然语言', 'l'), ('处理', 'v'), ('是', 'v'), ('人工智能', 'n'), ('和', 'c'), ('语言学', 'n'), ('领域', 'n'), ('的', 'uj'), ('分支', 'n'), ('学科', 'n'), ('。', 'x'), ('此', 'zg'), ('领域', 'n'), ('探讨', 'v'), ('如何', 'r'), ('处理', 'v'), ('及', 'c'), ('运用', 'vn'), ('自然语言', 'l'), (';', 'x'), ('自然语言', 'l'), ('处理', 'v'), ('包括', 'v'), ('多方面', 'm'), ('和', 'c'), ('步骤', 'n'), (',', 'x'), ('基本', 'n'), ('有', 'v'), ('认知', 'v'), ('、', 'x'), ('理解', 'v'), ('、', 'x'), ('生成', 'v'), ('等', 'u'), ('部分', 'n'), ('。', 'x')]
Loading model cost 1.500 seconds.
Prefix dict has been built successfully.

获取词性

通过 jieba.posseg 模式实现词性标注.

import jieba.posseg as psg
# 定义文本
content = "自然语言处理是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。"
# 分词
seg = psg.lcut(content)
# 获取词性
part_of_speech = [(x.word, x.flag) for x in seg]
# 调试输出
print(part_of_speech)

输出结果:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
[('自然语言', 'l'), ('处理', 'v'), ('是', 'v'), ('人工智能', 'n'), ('和', 'c'), ('语言学', 'n'), ('领域', 'n'), ('的', 'uj'), ('分支', 'n'), ('学科', 'n'), ('。', 'x'), ('此', 'zg'), ('领域', 'n'), ('探讨', 'v'), ('如何', 'r'), ('处理', 'v'), ('及', 'c'), ('运用', 'vn'), ('自然语言', 'l'), (';', 'x'), ('自然语言', 'l'), ('处理', 'v'), ('包括', 'v'), ('多方面', 'm'), ('和', 'c'), ('步骤', 'n'), (',', 'x'), ('基本', 'n'), ('有', 'v'), ('认知', 'v'), ('、', 'x'), ('理解', 'v'), ('、', 'x'), ('生成', 'v'), ('等', 'u'), ('部分', 'n'), ('。', 'x')]
Loading model cost 1.500 seconds.
Prefix dict has been built successfully.

以上就是Python机器学习NLP自然语言处理基本操作之精确分词的详细内容,更多关于Python机器学习NLP自然语言处理的资料请关注脚本之家其它相关文章!

相关文章

  • Python随机生成一个6位的验证码代码分享

    Python随机生成一个6位的验证码代码分享

    这篇文章主要介绍了Python随机生成一个6位的验证码代码分享,本文直接给出代码实例,需要的朋友可以参考下
    2015-03-03
  • Python文件路径os.path函数深入剖析

    Python文件路径os.path函数深入剖析

    这篇文章主要为大家介绍了Python文件路径os.path函数深入剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 如何用python整理附件

    如何用python整理附件

    本篇文章给大家整理了关于如何用python整理附件的相关知识点,学习python的朋友可以跟着测试下。
    2018-05-05
  • Pandas之to_sql()插入数据到mysql中所遇到的问题及解决

    Pandas之to_sql()插入数据到mysql中所遇到的问题及解决

    这篇文章主要介绍了Pandas之to_sql()插入数据到mysql中所遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python挑选文件夹里宽大于300图片的方法

    Python挑选文件夹里宽大于300图片的方法

    这篇文章主要介绍了Python挑选文件夹里宽大于300图片的方法,实例分析了Python中PIL库的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 详解Python yaml模块

    详解Python yaml模块

    这篇文章主要介绍了Python yaml模块的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • Python之DataFrame输出为csv\txt\xlsx文件问题

    Python之DataFrame输出为csv\txt\xlsx文件问题

    这篇文章主要介绍了Python之DataFrame输出为csv\txt\xlsx文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 用Python将库打包发布到pypi

    用Python将库打包发布到pypi

    这篇文章主要介绍了用Python将库打包发布到pypi,文中有很详细的代码作参考,对正在学习python的小伙伴们有很好的学习价值,需要的朋友可以参考下
    2021-04-04
  • python使用matplotlib绘图时图例显示问题的解决

    python使用matplotlib绘图时图例显示问题的解决

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。下面这篇文章主要给大家介绍了在python使用matplotlib绘图时图例显示问题的解决方法,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04
  • Python实现视频中添加音频工具详解

    Python实现视频中添加音频工具详解

    本文主要为大家介绍了Python中提供在无音频的视频中添加音频的工具详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考一下
    2021-12-12

最新评论