2021SC@SDUSC
前言随着NPL的发展,目前有许多热门分词组件,但“结巴”无疑稳占中文分词领域的C位,当然jieba也致力于做最好的中文分词组件。本文是对研究jieba项目核心代码的一个综述,包括对jieba的一些介绍、研究内容和前期的准备工作。
一、jieba是什么?
jieba是一个Python中文分词组件,可以对中文文本进行分词、词性标注、关键词抽取等功能,并且支持自定义词典,其分词主要有精确模式、全模式、搜索引擎模式、paddle模式。jieba相关的算法知识,主要包括用于新词发现的隐马尔科夫模型和维特比算法、用于关键词提取的TextRank和TF-IDF算法。在接下来的这几个月内,我会和队友合作具体分析jieba分词代码的作用,我会首先分析TextRank算法。
二、准备工作 1.安装相关工具在进行具体的项目研究之前,首先是准备工作,包括相关工具的安装。jieba代码对Python2和Python3均兼容,所以首先需要安装合适版本的Python,此处略过。安装jieba有很多方式,最简单的就是使用pip命令全自动安装,具体安装命令为pip install jieba / pip3 install jieba,如果pip命令出现问题,可以选择在http://pypi.python.org/pypi/jieba/下载后进行半自动安装或者手动安装,具体安装步骤不再详述。安装好后,编程时可以直接通过import jieba引用。
如果需要使用paddle模式下的分词和词性标注功能,还需要安装paddlepaddle-tiny,可以使用命令pip install paddlepaddle-tiny==1.6.1安装特定版本的paddlepaddle-tiny,但是这里安装的时候可能就会碰到一个问题,paddlepaddle-tiny的安装需要对应的Python版本,一般情况下是Python3.7。
进行完前期的安装准备工作之后是了解jieba整体的工作流程。具体如下图所示:
jieba中使用的算法主要有基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG),采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。那么在之后的博文中会以用于关键词提取的TextRank算法为主,同时也会涉及到以上几种算法仔细研究jieba分词项目的核心代码。



