Python练习题

【Python练习题】用 jieba (结巴)分词,计算字符串

2019-05-30  本文已影响0人  小象解答编程练习题

【问题1】用 jieba 分词,计算字符串 s 中的中文词汇个数,不包括中文标点符号。显示输分词后的结果,用”/ ”分隔,以及中文词汇个数。示例如下:

输入:
工业互联网”实施的方式是通过通信、控制和计算技术的交叉应用,建造一个信息物理系统,促进物理系统和数字系统的融合。
输出:
工业/ 互联网/实施/ 的/ 方式/是/ 通过/ 通信/控制/ 和/ 计算技术/的/ 交叉/ 应用/建造/ 一个/ 信息/物理/ 系统/ 促进/物理/ 系统/ 和/数字/ 系统/ 的/融合/

中文词语数是:27

问题2:在问题1的基础上,统计分词后的词汇出现的次数,用字典结构保存。显示输出每个词汇出现的次数,以及出现次数最多的词汇。如果有多个词汇出现次数一样多,都要显示出来。示例如下:##

继续输出:

控制: 1

物理: 2

通信: 1

交叉: 1

互联网: 1

和: 2

是: 1

计算技术: 1

一个: 1

的: 3

数字: 1

促进: 1

信息: 1

方式: 1

建造: 1

应用: 1

系统: 3

通过: 1

实施: 1

融合: 1

工业: 1

出现最多的词是(的 系统):3 次

【解题思路】

1. 用 jieba 分词处理词汇统计
2. 要处理掉输入的各种标点符号,用到replace()
3. 用字典保存各个词出现次数
4. 要遍历字典的键值对,找到最大的值,及其对应的键
import jieba
from collections import Counter

n = 0

s = "工业互联网实施的方式是通过通信、控制和计算技术的交叉应用建造一个信息物理系统,促进物理系统和数字系统的融合。"
# 标点符号都去掉
s = s.replace("、", "")
s = s.replace(",", "")
s = s.replace("。", "")

j = jieba.lcut(s)  # 拆分若干词组

dic = Counter(j)  # 若干词组转换成字典统计数量
# dic.keys()
st = set(j)  # 词组列表转换成无序但是不重复的Set集合为准备dict字典的键值调用
print("/".join(j))  # j集合用反斜杠相连

for i in st:  # 遍历Set集合,集合元素就是字典的key值
    n = n+dic.get(i)  # 统计个数
    print(i+":"+str(dic.get(i)))
print("总个数:"+str(n))
ltb6w2017(vx).jpg
上一篇下一篇

猜你喜欢

热点阅读