手把手教你用Jieba做中文分词 您所在的位置:网站首页 jieba中文分词原理 手把手教你用Jieba做中文分词

手把手教你用Jieba做中文分词

2023-04-20 10:24| 来源: 网络整理| 查看: 265

01 Jieba的特点

1. 社区活跃Jieba在GitHub上已经有25.3k的star数目。社区活跃度高,代表着该项目会持续更新,能够长期使用,用户在实际生产实践中遇到的问题也能够在社区进行反馈并得到解决。2. 功能丰富Jieba并不是只有分词这一个功能,它是一个开源框架,提供了很多在分词之上的算法,如关键词提取、词性标注等。3. 提供多种编程语言实现Jieba官方提供了Python、C++、Go、R、iOS等多平台多语言支持,不仅如此,还提供了很多热门社区项目的扩展插件,如ElasticSearch、solr、lucene等。在实际项目中,使用Jieba进行扩展十分容易。4. 使用简单Jieba的API总体来说并不多,且需要进行的配置并不复杂,适合新手上手。下载完成后,可以使用如下命令进行安装。

pip install jiebaJieba分词结合了基于规则和基于统计两类方法。首先基于前缀词典进行词图扫描,前缀词典是指词典中的词按照前缀包含的顺序排列,如词典中出现了“上”,之后以“上”开头的词都会出现在一起,如词典中出现“上海”一词,进而会出现“上海市”等词,从而形成一种层级包含结构。如果将词看作节点,词和词之间的分词符看作边,那么一种分词方案则对应着从第一个字到最后一个字的一条分词路径。因此,基于前缀词典可以快速构建包含全部可能分词结果的有向无环图,这个图包含多条分词路径,有向是指全部的路径都始于第一个字、止于最后一个字,无环是指节点之间不构成闭环。其次,基于标注语料、使用动态规划的方法可以找出最大概率路径,并将其作为最终的分词结果。对于未登录词,Jieba使用了基于汉字成词的HMM模型,采用了Viterbi算法进行推导。02 Jieba的3种分词模式Jieba提供了以下3种分词模式。精确模式:试图将句子精确地切开,适合文本分析。全模式:把句子中所有可以成词的词语都扫描出来。全模式处理速度非常快,但是不能解决歧义。搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适用于搜索引擎分词。

下面是使用这3种模式的对比。

import jiebasent = '中文分词是文本处理不可或缺的一步!'seg_list = jieba.cut(sent, cut_all=True)print('全模式:', '/ ' .join(seg_list)) seg_list = jieba.cut(sent, cut_all=False)print('精确模式:', '/ '.join(seg_list)) seg_list = jieba.cut(sent)  print('默认精确模式:', '/ '.join(seg_list))seg_list = jieba.cut_for_search(sent)  print('搜索引擎模式', '/ '.join(seg_list))运行结果如下所示。全模式:中文/ 分词/ 是/ 文本/ 文本处理/ 本处/ 处理/ 不可/ 不可或缺/ 或缺/ 的/ 一步/ / 精确模式:中文/ 分词/ 是/ 文本处理/ 不可或缺/ 的/ 一步/ !默认精确模式:中文/ 分词/ 是/ 文本处理/ 不可或缺/ 的/ 一步/ !搜索引擎模式中文/ 分词/ 是/ 文本/ 本处/ 处理/ 文本处理/ 不可/ 或缺/ 不可或缺/ 的/ 一步/ !可以看到,在全模式和搜索引擎模式下,Jieba会把分词的所有可能都打印出来。一般直接使用精确模式即可,但是在某些模糊匹配场景下,使用全模式或搜索引擎模式更适合。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有