获取到所有的新闻热点之后,需要从中分析处人们词汇
我的的想法是先把这些新闻放在一个txt文件中,在读取这个文件对内容进行拆分
写入文件的代码:
file= open('E:html模板hot.txt','w')
for item in items:
file.write(item+" ")
file.close()
读取文件的代码:
f=open('E:html模板hot.txt','r')
suoyou=f.read()
这样读取的是整个txt的字符串,而不是一行一行的
想要读文件一行一行可以用这个
fopen = open('C:\Users\hp\Desktop\final_hotword2.txt', 'r',encoding='utf-8')
lines = fopen.readlines()
注意方式必须是utf-8
****通过jieba这个库来将字符串分成一个一个词语,jieba.cut生成的是一个生成器,generator,也就是可以通过for循环来取里面的每一个词
jieba.lcut 直接生成的就是一个list
words=jieba.cut(suoyou)
需要一个不重要词语的比对文件,创建一个不重要的词汇的列表
r=[]
rubbishwords = [line.rstrip() for line in open(r'E:html模板 ubbish.txt', encoding='UTF-8')]#就是分成一个列表
#以下的三行代码与第十一行代码功能相同
lf=open(r'E:html模板 ubbish.txt',encoding='UTF-8')#打开寻常中文文件按行输出用UTF-8,用'r','w'不可以
for l in lf:
#rstrip() 删除 string 字符串末尾的指定字符(默认为空格).
#此处就是将回车和空格都删除
r.append(l.rstrip())
通过条件判断并对词汇计数,通过导入counter包,来做操作计数
from collections import Counter
c = Counter() #通过这个计数类来记录单词出现个数
for word in words:
if word not in r and len(word)>1 and word !=r' ':
#counts[word] = counts.get(word, 0) + 1
# #没出现一次次数加一
c[word]+=1
学习时间:13:34到16:43