高仿模拟练习,完整编写程序并运行出结果,答案点击按钮展开
news.txt 是一段中文新闻文本。 用第三方库 jieba 的 lcut() 分词后: ① 输出总词数(去停用词前); ② 停用词列表 STOP = {'的','了','在','是','和','有'},去掉这些停用词后再统计总词数; ③ 按词频降序输出前 5 个高频词(格式 词:次数,每行一个)。 需用 jieba.lcut(s) 切词。
# news.txt 示例:
# 小明在学校的图书馆里学习了Python和数据分析,有非常大的收获。
import jieba
STOP = {'的','了','在','是','和','有'}
with open("news.txt") as f:
text = f.read()
words = jieba.lcut(text)
# 请在下面编写完整程序:总词数;去停用词后词数;TOP5 词频
# ① 总词数(含停用词)
print(len(words))
# ② 过滤停用词
kept = [w for w in words if w.strip() and w not in STOP]
print(len(kept))
# ③ 词频 + TOP5
freq = {}
for w in kept:
freq[w] = freq.get(w, 0) + 1
top5 = sorted(freq.items(), key=lambda x: x[1], reverse=True)[:5]
for w, c in top5:
{c}")
jieba.lcut 返回列表形式分词结果(最常用的精确模式)。
STOP 集合判断 O(1) 去掉虚词;w.strip() 去空白字符避免把空行/标点统计成词。
TOP5 按次数降序取前 5。
示例含'小明''学校''图书馆''学习''Python' 高频词。