考生文件夹下的文件data.txt是-个来源于网上的技术信息资料。
问题1:在考生文件夹下给了程序框架文件PY301-1.py,补充代码完成程序。用Python语言 中文分词第三
方库jieba对文件dlata.txt进行分词,并选择长度大于等于3个字符的关键词,写入文件out1.txt, 每行一个关键
词,各行的关键词不重复,输出顺序不做要求。例如:
人工智能
科幻小说
问题2:在考生文件夹下给出了程序框架文件PY301-2.py,补充代码完成程序。对文件data.txt进 行分词,对长
度不少于3个字符的关键词,统计出现的次数,按照出现次数由大到小的顺序输出到文件out2.txt,每行一-个关
键词及其出现次数。例如: .
科学家: 2
达特茅斯: 1
参考答案
- import jieba # 此处可多行
- fi = open("data.txt","r")
- fo = open("out2.txt","w")
- data = fi.read()
- fi.close()
- ls1 = jieba.lcut(data)
- d = {}#{"科学家":2,"达特茅斯":1,...}
- for i in ls1:# 此处可多行
- if len(i) >= 3:
- d[i] = d.get(i,0)+1
- ls = list(d.items())#[("科学家",2),("达特茅斯",1),...]
- ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
- for i in ls: # 此处可多行
- fo.write("{}:{}\n".format(i[0],i[1]))
- #关闭文件
- fo.close()