更新时间:2021-11-04 来源:黑马程序员 浏览量:
随着汉语言的广泛应用,中文信息处理成了一个重要的研究课题,常见于搜索引擎:信息检索、中外文自动翻译、数据挖掘技术、自然语言处理等领域。在处理的过程中,中文分词是最基础的一环。
中文分司是指将个汉字序列切分成一个一个单独的话,是一个学生”经分词中文语句或语段拆成若干汉语词汇。例如,用户输人的语句“我是一个学生,经分词系统处理之后,该语句被分成“我”是”“一个”“学生”四个汉语词汇。
在英文本中,每个单词之间以空格作为自然分界符,而中文只有句子和段落能够
通过明显的分界符来简单划分,词并没有有二个形式上的分界符,虽然英文也同样存在短语的划分问题,但是在词这层上,中文要比英文复杂得多、困难得多。jieba是国内使用人数最多的中文分词工具,可以采用如下方式进行安装:
>>> pip install jieba
安装完之后,通过import语句将其引入:
import jieba
jieba模块支持以下3种分词模式。
(1)精确模式,试图将句子最精准地切开。
(2)全模式,将句子中所有可以成词的词语都扫描出来,速度非常快。
(3)搜索引擎模式,在精确模式的基础上对长词再次切分。
jieba模块中提供了一系列分词函数,常用的是jieba.cut()函数,该函数需要接收如下3个参数。
(1)sentence,需要分词的字符串。
(2)cut_all,控制是否采用全模式。若设为True,代表按照全模式进行分词;若设为False,代表按照精确模式进行分词。
(3)HMM,控制是否使用HMM(Hidden Markov Model,隐马尔可夫模型)。
若要采用搜索引擎模式对中文进行分词,需要使用cut_for_search()函数,该函数中需要接收两个参数:sentence和HMM。
下面分别采用以上3种模式对中文进行分词操作,代码如下:
#02_word_segmentation.py seg_list = jieba.cut("我来到北京清华大学 ",cut_all-True) print("[全模式]: "+"/".join(seglist)) #全模式 seg_list = jieba.cut("我来到北京清华大学",cut_all=False) print("[精确模式]:"+"/".join(seg_list)) #精确模式 seg_list = jieba.cut_for_search("小明硕土毕业于中国科学院计算所, 后在日本京都大学深造") #搜索引擎模式 print("[搜索引擎模式] :" + ",".join(seg list))
程序输出的结果如下:
[全模式]:我/来到/北京/清华/清华大学/华大/大学 [精确模式]:我/来到/北京/清华大学 [搜索引擎模式]: 小明,硕士,毕业,于,中国,,科学院,中国科学院,计算, 计算所,后,在,日本,京都,大学,日本京都大学,深造