ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

中文自然语言处理——jieba中文分词器

2021-02-16 18:01:39  阅读:279  来源: 互联网

标签:学习 中文 cut jieba content 分词器 print sens


jieba分词器

1.引入jieba库和语料

import jieba
content = '深度学习是机器学习的一个子集,传统机器学习中,人们需要对专业问题理解非常透彻,才能手工设计特征,然后把特征交给某个机器学习算法'

1)、精准分词:把句子最精确的分开

sens_1 = jieba.cut(content,cut_all=False)
print('/'.join(sens_1))

可以看到分词结果

深度/学习/是/机器/学习/的/一个/子集/,/传统/机器/学习/中/,/人们/需要/对/专业/问题/理解/非常/透彻/,/才能/手工/设计/特征/,/然后/把/特征/交给/某个/机器/学习/算法

2)、全模式分词:把句子中所有可能的单词都找出来

sens_2 = jieba.cut(content,cut_all=True)
print('/'.join(sens_2))

可以看到分词结果

深度/学习/是/机器/学习/的/一个/个子/子集/,/传统/机器/学习/中/,/人们/需要/对/专业/问题/理解/非常/透彻/,/才能/能手/手工/设计/特征/,/然后/把/特征/交给/某个/机器/学习/算法

3)、搜索引擎模式:在精准分词的基础上,对长词再次进行划分

content = '深度学习在大量数据可用时,才能有效地学习模型,才能从数据自身通过学习完成参数提取'
sens_3 = jieba.cut_for_search(content)
print('/'.join(sens_3))

可以看到分词结果

深度/学习/在/大量/数据/可用/时/,/才能/有效/地/学习/模型/,/才能/从/数据/自身/通过/学习/完成/参数/提取

4)、jieba.cut 和 jieba.cut_for_seatch 结果的封装
用jieba.lcut和 jieba.lcut_for_seatch函数输出的结果是一个列表
5)、可以使用jieba.posseg 模块实现词性标注

content = '很难想象哪一个大行业不会被人工智能改变,人工智能会在这个行业里发挥着重大作用'
import jieba.posseg as psg
print([(x.word,x.flag) for x in psg.lcut(content)])
[('很', 'd'), ('难', 'a'), ('想象', 'n'), ('哪', 'r'), ('一个', 'm'), ('大', 'a'), ('行业', 'n'), ('不会', 'v'), ('被', 'p'), ('人工智能', 'n'), ('改变', 'v'), (',', 'x'), ('人工智能', 'n'), ('会', 'v'), ('在', 'p'), ('这个', 'r'), ('行业', 'n'), ('里', 'f'), ('发挥', 'v'), ('着', 'uz'), ('重大', 'a'), ('作用', 'v')]

6)、获取分词结果列表中出现频率top—n
其中Counter().most_common(n),参数n是获得top几的

content = '人工智能的难题不仅是计算机科学问题,更是数学、认知科学和哲学问题'
sens_1 = jieba.lcut(content,cut_all=False)
print('/'.join(sens_1))

from collections import Counter
top2= Counter(sens_1).most_common(2)
print(top2)
[('问题', 2), (',', 2)]

7)、自定义添加词和字典

txt = "铁甲网是中国最大的工程机械交易平台。"
print(jieba.lcut(txt))
['铁甲', '网是', '中国', '最大', '的', '工程机械', '交易平台', '。']

可以看出jieba分词器是不能分出“铁甲网”这个新词的,所以需要把这个词添加到字典中

jieba.add_word('铁甲网')
print(jieba.lcut(txt))
['铁甲网', '是', '中国', '最大', '的', '工程机械', '交易平台', '。']

可以看出此时能正确分出铁甲网
当有多个词时,一个一个添加效率就不高了,所以可以采用这种方法

    jieba.load_userdict('user_dict.txt')
    print(jieba.lcut(txt))

标签:学习,中文,cut,jieba,content,分词器,print,sens
来源: https://blog.csdn.net/qq_44870115/article/details/111173465

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有