Python二级试题解读:使用jieba进行中文分词

题目


从键盘输入一个中文字符串变量s,内部包含中文逗号和句号。计算字符串s中的中文词语数。示例如下: 请输入一个中文字符串,包含标点符号。
示例
输入:问君能有几多愁?恰似一江春水向东流
输出:中文词语数:8
代码模板:

import _____
s = input("请输入一个中文字符串,包含标点符号:")
m =_____
print("中文词语数:{}".format(_____))

考查知识点


什么是中文分词?
中文和英文不同,英文通常采用空格和标点符号将词隔开,具有天然的分隔符,对英文文本进行相似性分析时,词的获取非常简单。中文虽然句子之间有分隔符,但词与词之间没有分隔符,需要编写专门的分词程序,拆分句子获取单词。
对中文句子进行分词时,有不同的切分方案,对于搜索来说,经常需要同时输出多种粒度的切分结果。例如“世界卫生组织会议”,最粗的切分结果是:“世界卫生组织会议”,稍微细一些的切分结果是“世界/卫生组织/会议”,更细的切分结果是:“世界/卫生/组织/会议”。
现成的分词工具有哪些?
Python计算生态的分词工具很多,包括盘古分词、Yaha分词、Jieba分词等,这些分词程序都是开源软件,在许可协议下,可以免费使用这些分词程序。
如何使用分词工具?
若计算机没有安装jieba库,在命令行窗口输入下面的命令:
pip3 install jieba
或者
pip install jieba
在Python程序中要使用jieba库,还需要使用import语句导入jieba库到程序:
import jieba

试题解读

代码模板有三个位置需要填入代码,我们先来看第一个位置:
import _____
import是导入外部库的关键字,这里应该填入中文分词库的库名,我们使用jieba分词,因此填入“jieba”。
再来看第二个位置:
m =_____
结合整个代码模板,可知变量m用来接收jieba分词后的对象,jieba库的lcut(s)函数,可以切分字符串对象s,并返回切分后的分词对象。因此填入:
m =jieba.lcut(s)
最后看第三个位置:
print("中文词语数:{}".format(_____))
该语句输出字符串对象s的中文词语数,m是分词对象,使用len(m)函数可以提取分词对象m的中文词语数。因此填入:
print("中文词语数:{}".format(_len(m) ))

完整代码

import jieba
s = input("请输入一个中文字符串,包含标点符号:")
m = jieba.lcut(s)
print("中文词语数:{}".format(len(m)))