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中SQLAlchemy排序的一个坑

    浅析python中SQLAlchemy排序的一个坑

    这篇文章主要介绍了关于python中SQLAlchemy排序的一个坑,文中给出了详细的示例代码,需要的朋友可以参考借鉴,感兴趣的朋友们下面来一起学习学习吧。
    2017-02-02
  • 解决hive中导入text文件遇到的坑

    解决hive中导入text文件遇到的坑

    这篇文章主要介绍了解决hive中导入text文件遇到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python的Django框架中settings文件的部署建议

    Python的Django框架中settings文件的部署建议

    这篇文章主要介绍了Python的Django框架中settings文件的部署建议,包括对local_settings的弊病的一些简单分析,需要的朋友可以参考下
    2015-05-05
  • python实现三子棋游戏

    python实现三子棋游戏

    这篇文章主要为大家详细介绍了python实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python编程在flask中模拟进行Restful的CRUD操作

    Python编程在flask中模拟进行Restful的CRUD操作

    今天小编就为大家分享一篇关于Python编程在flask中模拟进行Restful的CRUD操作,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Python调用命令行进度条的方法

    Python调用命令行进度条的方法

    这篇文章主要介绍了Python调用命令行进度条的方法,涉及Python进度条的调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • python利用opencv实现颜色检测

    python利用opencv实现颜色检测

    这篇文章主要为大家详细介绍了python利用opencv实现颜色检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • NumPy之矩阵向量线性代数等操作示例

    NumPy之矩阵向量线性代数等操作示例

    这篇文章主要为大家介绍了NumPy之矩阵向量线性代数等操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python实现变量数值交换及判断数组是否含有某个元素的方法

    Python实现变量数值交换及判断数组是否含有某个元素的方法

    这篇文章主要介绍了Python实现变量数值交换及判断数组是否含有某个元素的方法,涉及Python字符串与数组的相关赋值、判断操作技巧,需要的朋友可以参考下
    2017-09-09
  • django有外键关系的两张表如何相互查找

    django有外键关系的两张表如何相互查找

    这篇文章主要介绍了django有外键关系的两张表如何相互查找,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论