用jieba抓取网络小说中的关键词
挑选了这么几本:
哈哈,因为我比较懒,就只下载了这几本小说,又因为我现在很菜,所以没有用爬虫.
import os
import jieba.analyse as analyse
import time
#这里是一个计时功能的实现
begin=time.time()
#这里是网络小说所在的父目录
fatherdir="D:/Project44/网络小说"
#获得所有书名组成的list,一个个打太麻烦了
booklist =os.listdir(fatherdir)
#这个文档存放关键词的结果
resultFile=open("D:/Project44/关键词结果.txt","w")
#这里限定了抓取的关键词的词性,但是结果其实聊胜于无
kwordkind=('vd','vf','vx' ,'vi' ,'vl','vg','ad','ag','al' )
for book in booklist:
bookcontent=open(fatherdir+"/"+book,"r",encoding="utf-8").read()
#抓取关键词有两个方法,但是那个textrank方法总是报错
kwordstr = ",".join(analyse.extract_tags(bookcontent,topK=150,allowPOS=()))
#这里的代码是最后一版的,抓得最多
resultFile.write(book+"的前150个关键词为:"+"\n"+kwordstr+'\n\n')
end=time.time()
span=round(end-begin,2)
resultFile.write("共用时"+str(span)+"秒"+"\n")
resultFile.close()
下面上结果:
最后一遍(有几本小说出现了编码问题,我就把他们删了,但是以前的版本可能还能看,大家可以看底下的纠结过)
第三版(100个关键词):
可见,从出现次数比较多的关键词中是可以对小说内容有一个初步认识的,比如作者的文风,小说的主题,小说的主角(包括女主角甚至男配角).
综上,本程序的可改进空间还是很大的:
用爬虫替代下载,编码问题来几个try catch,真.词性筛选等等