Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理

这篇具有很好参考价值的文章主要介绍了Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Jieba(结巴)是一个中文分词第三方库,它可以帮助我们将一段中文文本分成一个个独立的词语。Jieba具有以下特点:
  1. 简单易用:Jieba提供了简洁的API接口,易于使用和扩展。可以快速地实现中文分词功能。
  2. 高效准确:Jieba采用了基于前缀词典和动态规划算法的分词方法,能够高效准确地处理各种中文文本。
  3. 支持多种分词模式:Jieba提供了三种分词模式:精确模式、全模式和搜索引擎模式,可以根据不同的应用场景选择合适的模式。
  4. 支持用户自定义词典:Jieba允许用户自定义词典,可以根据实际需要添加新的词语或调整已有词语的词频和词性等信息。
  5. 支持并发分词:Jieba采用多进程和协程的方式实现并发分词,可以提高分词速度和效率。

除了中文分词功能之外,Jieba还提供了关键词提取、词性标注、繁体转简体、词语拼音转换等功能。可以满足不同的中文文本处理需求。
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理

1 Jieba的搜索模式

1.1 全模式

全模式会将需要分词的文本中所有可能的词语都进行匹配,因此会产生大量的冗余词语。使用Jieba的全模式,比如我们希望把美国数据仓库巨头发布开源模型,公开挑战ChatGPT这句话进行分词:

import jieba    
text = '美国数据仓库巨头发布开源模型,公开挑战ChatGPT'  
seg_list = jieba.cut(text, cut_all=True)  
print("/".join(seg_list))

在上述代码中,cut_all=True指定了使用全模式进行分词,"/".join(seg_list)会将分词结果以斜杠分隔输出。这段的输出结果为:
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
可以看到分词结果中,数据仓库被分为了数据、仓库、数据仓库三个独立的词语,因此会产生大量的冗余词语。全模式适合于对文本中所有可能的词语进行匹配的场景,例如搜索引擎的索引处理、关键词提取等。

1.2 精确模式

精确模式会将需要分词的文本中可能存在的词语都进行匹配,但不会产生冗余词语。使用Jieba的精确模式,可以通过以下方式实现:

import jieba    
text = '美国数据仓库巨头发布开源模型,公开挑战ChatGPT'  
seg_list = jieba.cut(text, cut_all=False)  
print("/".join(seg_list))

在上述代码中,cut_all=False指定了使用精确模式进行分词。这段的输出结果为:
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
可以看到,在精确模式下,Jieba会将数据仓库作为一个词语进行匹配,不会产生冗余词语。精确模式适合于对文本中存在的词语进行匹配的场景,例如文本分类、情感分析等。精确模式不会产生冗余词语,因此可以得到准确的分词结果。

1.3 搜索引擎模式

搜索引擎模式使用了基于前缀匹配算法的正向最大匹配(FMM)和逆向最大匹配(RMM)算法,会对需要分词的文本进行分词,并且尽可能多地匹配分词结果。因此,在分词时,搜索引擎模式会优先匹配较长的词语。使用Jieba的搜索引擎模式,可以通过以下方式实现:

import jieba   
text = '美国数据仓库巨头发布开源模型,公开挑战ChatGPT'  
seg_list = jieba.cut_for_search(text)  
print("/".join(seg_list))

这段函数的输出结果为;
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
由于我们的实例文本过段,在这里的结果与全模式的分词结果并未表现出区别。搜索引擎模式适合于对长文本进行分词的场景,例如自然语言处理、信息检索等。搜索引擎模式使用了基于前缀匹配算法的正向最大匹配(FMM)和逆向最大匹配(RMM)算法,可以尽可能多地匹配分词结果,但可能会对一些新词造成误判,需要进行进一步的处理和校对。

1.4 分词结果的形式选择

正常情况下,分词结果将会以生成器的形式保存,这意味着,当我们像上面一样将分词结果全部打印之后,这个生成器就不能二次使用了。
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
如果希望以列表的形式报错结果。可以将生成器转为list格式:

seg_list = jieba.cut(text)  
print(type(seg_list))  
seg_list = list(seg_list)  
print(type(seg_list))

Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
也可以直接指定函数的返回为list,此时我们需要使用函数lcut

seg_list = jieba.lcut(text)  
print(type(seg_list)) 

Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理

2 词库的添加与删除

在Jieba中,词库是指用于分词的词典,Jieba提供了内置的词典和用户自定义的词典。用户可以通过添加或删除词语来定制自己的词典。

2.1 添加单个词语

在Jieba中,可以通过调用add_word(word, freq=None, tag=None)方法来向词库中添加单个词语。其中,word为需要添加的词语,freq为该词语的词频,tag为该词语的词性。
例如,假设需要将词语开源模型添加到Jieba的词库中,可以通过如下代码实现:

import jieba  
text = '美国数据仓库巨头发布开源模型,公开挑战ChatGPT'  
jieba.add_word("开源模型")  
seg_list = jieba.cut(text)  
print('/'.join(seg_list))

此时,开源模型就被分为一个词了:
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理

2.2 添加自定义词典

当需要添加的词过多时,建议使用添加词典的方式。自定义词典可以包含用户自己添加的词语及其词频和词性等信息。
添加自定义词典的方法如下:

  1. 创建一个文本文件,例如userdict.txt,用于存储自定义词典。每行格式为:词语 词频 词性。
  2. 将需要添加的词语及其词频和词性等信息写入到userdict.txt中,每个词语一行
  3. 调用Jieba的load_userdict()方法加载自定义词典文件。
    词典示例如下:
开源模型 10 n 
深度学习 8 n

其中,108为词语的词频,n为词语的词性。之后调用词典即可。

jieba.load_userdict("userdict.txt")

词典加入之后,再次进行分词,词典中的内容就可以被分出来了。

2.3 词库的删除

在Jieba中,可以通过调用del_word(word)方法来删除词库中的单个词语。其中,word为需要删除的词语。刚刚我们在词典中添加了开源模型这个词,接下来我们将其删除:

jieba.del_word("开源模型")
seg_list = jieba.cut(text)  
print('/'.join(seg_list))

Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
此时开源和模型就又变为两个词了。

3.4 添加词库失效的情况

如果想要添加的词包含标点符号,则这个添加操作会失效(无论是添加单个的词语还是使用自定义字典),比如:

import jieba  
text = '美国数据仓库巨头发布<开源模型>,公开挑战ChatGPT'  
jieba.add_word("<开源模型>")  
seg_list = jieba.cut(text)  
print('/'.join(seg_list))

这段代码希望将<开源模型>分为一个词,然而jieba默认标点符号会被单独分割,因此这个添加词库的操作会失效,不但<开源模型>不能被分出来,开源模型也不能被分出来。
Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理
因此,在添加词库时要避免这种情况的出现。文章来源地址https://www.toymoban.com/news/detail-449939.html

到了这里,关于Jieba分词模式详解、词库的添加与删除、自定义词库失败的处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 中文分词库jieba的三种模式介绍

    精准模式 jieba.cut(test_text, cut_all=False): 试图将句子最精确地分开,适合文本分析 全模式 jieba.cut(test_text, cut_all=True): 把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义 搜索引擎模式 jieba.cut_for_search(test_text):在精确模式的基础上,对长词再次切分,提

    2024年02月13日
    浏览(39)
  • ElasticSearch的使用,安装ik分词器,自定义词库,SpringBoot整合ES(增、删、改、查)

    保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识(相当于,保存一个数据,保存在那个数据库中的哪个表中,指定主键ID) 例:PUT customer/external/1;在customer索引下的external类型下保存1号数据name为John Doe的数据 POST和PUT都可以新增数据 注意: POST 新增。如果

    2023年04月25日
    浏览(46)
  • 数据分析之jieba分词使用详解

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

    2024年02月11日
    浏览(46)
  • 基于 Jieba 和 Word2vec 的关键词词库构建

    最近有空,把论文中用到的技术和大家分享一下(以组件化的形式),本文是第一篇,将讲述如何从大量的语料中获取诸多和构建词库或 xx 词库( 细分领域 )。举例以 购物网站的在线评论 作为语料库,对其进行分词等操作,最终构建词库( 以物

    2024年02月16日
    浏览(42)
  • es elasticsearch 十 中文分词器ik分词器 Mysql 热更新词库

    目录 中文分词器ik分词器 介绍 安装 使用分词器 Ik分词器配置文件 Mysql 热更新词库 介绍 中文分词器按照中文进行分词,中文应用最广泛的是ik分词器 安装 官网下载对应版本zip 下载  放到  plugins 目录 新建 ik文件夹 考入解析zip 重启 es //分成小单词 使用分词器 ik_max_word分成

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

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

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

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

    2024年02月16日
    浏览(36)
  • Python中文分词库——jieba的用法

    jieba是优秀的中文分词第三方库。由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个单词,这种手段就叫分词。而jieba是Python计算生态中非常优秀的中文分词第三方库,需要通过安装来使用它。 jieba库提供了三种分词模式,但实际上要达到

    2023年04月25日
    浏览(48)
  • 分词工具与方法:jieba、spaCy等

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

    2024年02月15日
    浏览(41)
  • hanlp,pkuseg,jieba,cutword分词实践

    总结:只有jieba,cutword,baidu lac成功将色盲色弱成功分对,这两个库字典应该是最全的 https://github.com/hankcs/HanLP/blob/doc-zh/plugins/hanlp_demo/hanlp_demo/zh/tok_stl.ipynb https://github.com/lancopku/pkuseg-python 下载最新模型 https://github.com/fxsjy/jieba HMM中文分词原理 https://github.com/liwenju0/cutword https://gi

    2024年01月19日
    浏览(82)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包