参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301
本关任务:编写一个能读文件到字符串小程序。
一般来说,一篇文章的最重要的内容会反复出现,所以词频可以表示文章的重点,本项目将训练统计文件中的文本词频的能力。
根据提示,输入一个正整数n,在右侧编辑器补充代码,将文件中的文本读取为字符串,并输出前n个字符。
二十大报告.txt
平台会对你编写的代码进行测试:
15
高举中国特色社会主义伟大旗帜
file = '/data/bigfiles/二十大报告.txt'
with open(file, 'r', encoding='utf-8') as f:
txt = f.read()
n = int(input())
print(txt[:n])
本关任务:编写一个能读文件到字符串小程序。
一般来说,一篇文章的最重要的内容会反复出现,所以词频可以表示文章的重点,本项目将训练统计文件中的文本词频的能力。
根据提示,输入一个正整数n,在右侧编辑器补充代码,将文件中的文本读取为字符串,利用jieba库的精确模式将文本切分为字符串,并输出前n个字符串的列表。
二十大报告.txt
平台会对你编写的代码进行测试:
15
['高举', '中国', '特色', '社会主义', '伟大旗帜', '\n', '\n', '为', '全面', '建设', '社会主义', '现代化', '国家', '而', '团结奋斗']
import jieba
jieba.setLogLevel(jieba.logging.INFO)
file = '/data/bigfiles/二十大报告.txt'
with open(file, 'r', encoding='utf-8') as f:
txt = f.read()
n = int(input())
print(list(jieba.cut(txt))[:n]) # 精确模式
本关任务:编写一个能统计词频小程序。
一般来说,一篇文章的最重要的内容会反复出现,所以词频可以表示文章的重点,本项目将训练统计文件中的文本词频的能力。
根据提示,输入一个正整数n,在右侧编辑器补充代码,将文件中的文本读取为字符串,利用jieba库的精确模式将文本切分为字符串,统计每个字符串出现的频率,存储为字典类型,输出词频最高的元素为二元组的列表前n项。
二十大报告.txt
平台会对你编写的代码进行测试:
10
[(',', 1360), ('、', 847), ('。', 610), ('的', 563), ('和', 351), ('\n', 341), ('\u3000', 322), ('发展', 218), ('坚持', 170), ('建设', 151)]
import jieba
jieba.setLogLevel(jieba.logging.INFO)
file = '/data/bigfiles/二十大报告.txt'
with open(file, 'r', encoding='utf-8') as f:
txt = f.read()
n = int(input())
dic = {}
for c in jieba.cut(txt):
dic[c] = dic.get(c, 0)+1 # 统计词频
dic = sorted(dic.items(), key=lambda x:x[1], reverse=True)
print(list(dic[:n]))
本关任务:编写一个能统计词频小程序。
一般来说,一篇文章的最重要的内容会反复出现,所以词频可以表示文章的重点,本项目将训练统计文件中的文本词频的能力。
根据提示,输入一个正整数n,在右侧编辑器补充代码,将文件中的文本读取为字符串,利用jieba库的精确模式将文本切分为字符串,将无实质意义的单字符元素去掉,统计长度大于1的每个字符串出现的频率,存储为字典类型,输出词频最高的元素为二元组的列表前n项。
二十大报告.txt
平台会对你编写的代码进行测试:
10
[('发展', 218), ('坚持', 170), ('建设', 151), ('人民', 134), ('中国', 124), ('社会主义', 116), ('国家', 110), ('体系', 109), ('推进', 107), ('全面', 102)]
import jieba
jieba.setLogLevel(jieba.logging.INFO)
file = '/data/bigfiles/二十大报告.txt'
with open(file, 'r', encoding='utf-8') as f:
txt = f.read()
n = int(input())
dic = {}
for c in jieba.cut(txt):
if len(c)>1:
dic[c] = dic.get(c, 0)+1
dic = sorted(dic.items(), key=lambda x:x[1], reverse=True)
print(list(dic[:n]))
本关任务:编写一个能统计词频小程序。
一般来说,一篇文章的最重要的内容会反复出现,所以词频可以表示文章的重点,本项目将训练统计文件中的文本词频的能力。
stopwordsshz.txt
文本“stopwordsshz.txt”称为停用词文件,其中存储了无意义的虚词,这些词在统计时可以忽略掉。
根据提示,输入一个正整数n,在右侧编辑器补充代码,将文件中的文本读取为字符串,利用jieba库的精确模式将文本切分为字符串,将无实质意义的单字符元素和停用词文本中存在的元素去掉,统计长度大于1的每个字符串出现的频率,存储为字典类型,输出词频最高的元素为二元组的列表前n项。
二十大报告.txt
平台会对你编写的代码进行测试:
10
[('发展', 218), ('建设', 151), ('中国', 124), ('国家', 110), ('体系', 109), ('推进', 107), ('现代化', 86), ('制度', 76), ('完善', 73), ('推动', 61)]
import jieba
jieba.setLogLevel(jieba.logging.INFO)
file = '/data/bigfiles/二十大报告.txt'
with open(file, 'r', encoding='utf-8') as f:
txt = f.read()
with open('/data/bigfiles/stopwordsshz.txt','r', encoding='utf-8') as f:
stop = f.read().split()
n = int(input())
dic = {}
for c in jieba.cut(txt):
if len(c)>1 and c not in stop: # 去除停用词
dic[c] = dic.get(c, 0)+1
dic = sorted(dic.items(), key=lambda x:x[1], reverse=True)
print(list(dic[:n]))