从键盘输入一个中文字符串变量s,内部包含中文逗号和句号。计算字符串s中的中文词语数。示例如下: 请输入一个中文字符串,包含标点符号。

考点:计算生态

示例

输入:问君能有几多愁?恰似一江春水向东流

输出:中文词语数:8

代码模板:

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

知识拓展

1、什么是中文分词?

中文和英文不同,英文通常采用空格和标点符号将词隔开,具有天然的分隔符,对英文文本进行相似性分析时,词的获取非常简单。中文虽然句子之间有分隔符,但词与词之间没有分隔符,需要编写专门的分词程序,拆分句子获取单词。

对中文句子进行分词时,有不同的切分方案,对于搜索来说,经常需要同时输出多种粒度的切分结果。例如“世界卫生组织会议”,最粗的切分结果是:“世界卫生组织会议”,稍微细一些的切分结果是“世界/卫生组织/会议”,更细的切分结果是:“世界/卫生/组织/会议”。

2、现成的分词工具有哪些?

Python计算生态的分词工具很多,包括盘古分词、Yaha分词、Jieba分词等,这些分词程序都是开源软件,在许可协议下,可以免费使用这些分词程序。

3、如何使用分词工具?

若计算机没有安装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)))

---------------------------------------------------------------------------------------------------------------------------------