【一】头歌平台实验-基于jieba的中文分词实战

这篇具有很好参考价值的文章主要介绍了【一】头歌平台实验-基于jieba的中文分词实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       近年来,随着自然语言处理技术的日益成熟,开源实现的分词工具越来越多,如 Ansj 、盘古分词等。Jieba 是目前最好的 Python 中文分词组件。 本实训主要介绍 Jieba 模块的使用,并通过示例与实战,帮助大家掌握使用 Jieba 的方法。

第1关:中文分词工具——Jieba

import jieba
text = input()
seg_list1 = ''
seg_list2 = ''
# 任务:采用jieba库函数,对text分别进行精确模式分词和搜索引擎模式分词,
# 将分词结果分别保存到变量seg_list1和seg_list2中

# ********** Begin *********#
seg_list1=jieba.cut(text,cut_all=False)
seg_list2=jieba.cut_for_search(text)

# ********** End **********#
print("精确模式:"+'/'.join(seg_list1) +"  搜索引擎模式:"+ ' /'.join(seg_list2))

相关知识

1、jieba的特点

        分词是自然语言处理中最基础的一个步骤。而 Jieba 分词是目前中文分词中一个比较好的工具。它包含有以下特性:

  • 社区活跃。Jieba 在 Github 上已经有 17670 的 star 数目。社区活跃度高,代表着该项目会持续更新,实际生产实践中遇到的问题能够在社区反馈并得到解决,适合长期使用;

  • 功能丰富。Jieba 其实并不是只有分词这一个功能,其是一个开源框架,提供了很多在分词之上的算法,如关键词提取、词性标注等;

  • 提供多种编程语言实现。 Jieba 官方提供了 Python、C++、Go、R、iOS 等多平台多语言支持,不仅如此,还提供了很多热门社区项目的扩展插件,如 ElasticSearch、solr、lucene 等。在实际项目中,进行扩展十分容易;

  • 使用简单。Jieba 的 API 总体来说并不多,且需要进行的配置并不复杂,方便上手。

2、jieba的分词原理

        Jieba 分词依靠中文词库,结合了基于规则和基于统计这两类方法。首先基于前缀词典进行词图扫描,前缀词典是指词典中的词按照前缀包含的顺序排列。如果将词看作节点,词和词之间的分词符看作边,那么一种分词方案则对应着从第一个字到最后一个字的一条分词路径。

因此,基于前缀词典可以快速构建包含全部可能分词结果的有向无环图,这个图中包含多条分词路径,有向是指全部的路径都始于第一个字、止于最后一个字,无环是指节点之间不构成闭环。基于标注语料,使用动态规划的方法可以找出最大概率路径,并将其作为最终的分词结果。

3、jieba分词的三种模式

  • 精确模式:试图将句子最精确地切开,适合文本分析;

  • 全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;

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

4、使用 Jieba 库进行分词

        可使用jieba.cut(sentence, cut_all, HMM)jieba.cut_for_search(sentence, HMM)方法进行分词,两者所返回的结构都是一个可迭代的 generator ,可使用 for 循环来获得分词后得到的每一个词语( unicode ),或者直接使用jieba.lcut(s,cut_all,HMM)以及jieba.lcut_for_search(sentence, HMM)直接返回 list 。其中:

  • jieba.cut(sentence, cut_all, HMM)jieba.lcut(s,cut_all,HMM) 接受 3 个参数:

    • 需要分词的字符串( unicode 或 UTF-8 字符串、GBK 字符串);

    • cut_all 参数:是否使用全模式,默认值为 False;

    • HMM 参数:用来控制是否使用 HMM 模型,默认值为 True。

  • jieba.cut_for_search(sentence, HMM)jieba.lcut_for_search(sentence, HMM)接受2个参数:

    • 需要分词的字符串( unicode 或 UTF-8字符串、 GBK 字符串)

    • HMM 参数:用来控制是否使用 HMM 模型,默认值为 True

代码示例:

import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

输出结果:

 【一】头歌平台实验-基于jieba的中文分词实战

第2关:基于 Jieba 的词频统计 

import jieba

text= input()
words = jieba.lcut(text)  
data={} # 词典

# 任务:完成基于 Jieba 模块的词频统计
# ********** Begin *********#
for chara in words:
    if len(chara)<2:
        continue
    if chara in data:
        data[chara]+=1
    else:
        data[chara]=1

# ********** End **********#
data = sorted(data.items(), key=lambda x: x[1], reverse=True)  # 排序
print(data[:3],end="")

相关知识

1、词频统计

        词频统计是自然语言处理技术中最基础的技术之一,在一份给定的文件里,词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的次数。一个词语出现的次数越多,越表明是该文件的核心词汇,该词语对于快速理解文章具有重要的意义。

【一】头歌平台实验-基于jieba的中文分词实战

2、基于 Jieba 的词频统计

        分词器 在前面的学习,我们已经介绍过在 Jieba 模块中支持三种分词模式,它们分别为:

  • 精确模式:试图将句子最精确地切开,适合文本分析;

  • 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

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

代码分析:

        在进行词频统计之间,我们可以通过 Jieba 模块对文本进行分词,将一个句子中的各个词语分开,从而便于我们对词语进行统计。

import jieba
text = input()
words1 = jieba.cut(text, cut_all=True) # 全模式分词
words2 = jieba.cut(text, cut_all=False) # 精确模式分词
words3 = jieba.lcut_for_search(text) # 搜索引擎模式分词

2、分词后的统计 在拿到 Jieba 分词后的数据后就要对数据进行统计,所谓统计就是看一个词在这篇文章中出现了多少次。我们可以通过使用字典的键来存储出现的词,值存储词出现的次数来实现。文章来源地址https://www.toymoban.com/news/detail-451114.html

data = {} # 字典
for chara in words:
if len(chara) < 2:
continue
if chara in data:
data[chara] += 1 # 再次出现则加 1
else:
data[chara] = 1 # 首次出现则为 1

到了这里,关于【一】头歌平台实验-基于jieba的中文分词实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python——jieba优秀的中文分词库(基础知识+实例)

    Hello,World! 从去年开始学习Python,在长久的学习过程中,发现了许多有趣的知识,不断充实自己。今天我所写的内容也是极具趣味性,关于优秀的中文分词库——jieba库。          🐒什么是jieba? 1、jieba 是目前表现较为不错的 Python 中文分词组件,它主要有以下特性: 中

    2024年02月03日
    浏览(29)
  • 使用.NET Jieba.NET 的 PosSegmenter 实现中文分词匹配

    ​ 目录 引言 1. 什么是中文分词 2. Jieba.NET简介 3. PosSegmenter介绍 4. 实现中文分词匹配 4.1 安装Jieba.NET库 4.2 创建PosSegmenter实例 4.3 分词和词性标注 4.4 中文分词匹配 5. 总结           在自然语言处理领域,中文分词是一个重要且基础的任务。中文文本通常没有像英文那样的

    2024年02月11日
    浏览(66)
  • es自定义分词器支持数字字母分词,中文分词器jieba支持添加禁用词和扩展词典

    自定义分析器,分词器 所有字段检索 高亮搜索 分词测试 GET /test_index/_analyze jieba中文分词支持添加禁用词和扩展词库功能 创建索引:PUT http://xxxx:9200/test_index 分词测试: GET http://xxxxxx:9200/test_index/_analyze

    2024年02月11日
    浏览(32)
  • 【五】头歌平台实验-不确定性推理

    在现实世界中的事物以及事物之间的关系是极其复杂的。由于客观上存在的随机性、模糊性以及某些事物或现象暴露得不充分性,导致人们对它们的认识往往是不精确、不完全的,具有一定程度的不确定性。这种认识上的的不确定性反映到知识以及由观察所得到的证据上来,

    2024年02月02日
    浏览(37)
  • Jieba分词统计词频及自定义分词词典

    统计词频的测试文本如下: 编写代码 运行代码查看统计结果 2.1 创建词典 首先我们创建一个 user_dict.txt 文本文件,在文件中添加我们需要的词典,如下所示: 2.2 编写代码 接着我们编写代码进行词典的测试,测试的文本如下: 首先我们 不导入 自定义的分词词典,看看分词

    2024年02月13日
    浏览(29)
  • NLP基础—jieba分词

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

    2024年04月17日
    浏览(32)
  • python之jieba分词库使用

    一. 介绍 A. 什么是jieba库 jieba库是一款开源的中文分词工具,能够将中文文本切分成词语。 B. jieba库的特点和优势 支持四种分词模式:精确模式、全模式、搜索引擎模式和paddle模式。 提供自定义词典功能,可以添加、删除词语。 支持提取和词性标注。 提供Tokenize接口

    2024年02月16日
    浏览(25)
  • 实验-动态规划(头歌实践教学平台-ACM/ICPC培训)

    任务描述 相关知识 编程要求 解题思路: 测试说明 任务描述 本关任务:编写用动态规划解决数塔问题。 相关知识 为了完成本关任务,你需要掌握:动态规划。 编程要求 求上图从顶层到顶层的一个路径,使路径上的数字和最大。要求输出最大的数字和max和数值和最大的路径

    2024年02月04日
    浏览(58)
  • 分词工具与方法:jieba、spaCy等

    分词是自然语言处理中的一项重要任务,将一段文本划分成一系列有意义的词语或单词,是很多文本处理任务的基础,如文本分类、情感分析、机器翻译等。在中文分词中,jieba是一个常用的分词工具,而在英文分词中,spaCy是一个较为流行的选择。本文将介绍jieba和spaCy的使

    2024年02月15日
    浏览(30)
  • 数据分析之jieba分词使用详解

    在所有人类语言中,一句话、一段文本、一篇文章都是有一个个的词组成的。词是包含独立意义的最小文本单元,将长文本拆分成单个独立的词汇的过程叫做分词。分词之后,文本原本的语义将被拆分到在更加精细化的各个独立词汇中,词汇的结构比长文本简单,对于计算机

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包