1. jieba中文处理

如题所述

第1个回答  2022-06-15
jieba是一个在中文自然语言处理中用的最多的工具包之一,它以分词起家,目前已经能够实现包括分词、词性标注以及命名实体识别等多种功能。既然Jieba是以分词起家,我们自然要首先学习Jieba的中文分词功能。Jieba提供了三种分词模式:

在jieba分词中,最常用的分词函数有两个,分别是 cut 和 cut_for_search ,分别对应于“精确模式/全模式”和“搜索引擎模式”。

当然,两者的输入参数也不一样,cut函数的输入主要有三个,分别是:

cut_for_search 函数主要有两个参数:

需要注意的是, cut 和 cut_for_search 返回的都是generator,如果想直接返回列表,需要使用 lcut 和 lcut_for_search

如果在一些特定场景中,需要使用一些特殊词汇进行分词,就需要加载自定义的分词词典:

其中,用户字典的格式为:

每一行表示一个单词,每行最多由三部分组成

如果只是少量词汇,可以使用

需要注意的是,如果没有给出词频和词性信息,在后续的处理中可能会造成一定的影响。

jieba提供了两种关键词提取算法,分别是TF-IDF以及TextRank

关于TF-IDF的原理,可以参考吴军老师的《数学之美》,里面给出了很详细的说明。本文只介绍利用TF-IDF算法提取关键词。

其中:

TextRank的用法与extract_tags的函数定义完全一致

词性标注主要是在分词的基础上,对词的词性进行判别,在jieba中可以使用如下方式进行:

在jieba中采用将目标文档按行分割,对每一行采用一个Python进程进行分词处理,然后将结果归并到一起(有点类似于MapReduce)。据说目前尚不支持Windows,仅支持Linux和MacOS。

启动并行分词使用如下命令:

关闭并行分词使用如下命令:

使用tokenize函数后,会获得一个词语信息的元组,元组中的第一个元素是分词得到的结果,第二个元素是词的起始位置,第三个元素是词的终止位置。

除了本文介绍的jieba分词工具包以外,还有很多好用的中文分词工具,比如
相似回答