开发记录2
上次完成了功能描述(1)将数据导入到数据库
所以这一次,我准备开始第二个功能:将手册涉及的热词自动分类展示,将每个热词自 动创建关键字、模糊检索两个字段便于检索
起初老师建议的是用spark完成,由于一直在windows没配置好spark环境,在Ubuntu中又太卡,所以我决定用python实现此功能
今天就先提取关键字:
1.首先我在清华大学的一个网站上下载了一个词典,词典中都是关于IT行业的术语,所以分词时以词典内容为基础分词,这样就排除了很多没有必要的词如“的”,“2016年12月1日”等与信息行业无关的词语,使得关键字的提取更加准确。
2.在提取关键字的时候为了防止关键字提取过多而造成关键字不够严格和包容,所以我只提取了关键字出现较多的前20个(当然你也可以修改提取的个数)
3.基于上面的步骤,下面就是python代码
#encoding=utf-8 import jieba import jieba.analyse import pymysql #全模式 jieba.load_userdict("it.txt")# 下载的词典,以词典为基础提取关键字 jieba.analyse.set_stop_words('except.txt')# 该文件中可以写入你不需要的关键自 db = pymysql.connect(host='localhost', user='root', passwd='root', db='dazuoye', port=3306, charset='utf8') conn = db.cursor() # 获取指针以操作数据库 conn.execute('set names utf8') conn.execute("select * from info_tech") result=conn.fetchall() for data in result: text = data[4] #精确模式 keywords = jieba.analyse.extract_tags(text, topK=20, withWeight=True, allowPOS=('n', 'nr', 'ns'))# 取关键字频率最高的前20个 seg_list = jieba.cut(text, cut_all=False) # 获取关键词 tags = jieba.analyse.extract_tags(text,topK=20) print(u"关键词:") keyw="" for item in keywords: print(item[0], item[1]) keyw=keyw+item[0]+" " t=(keyw,int(data[0])) sql = "update info_tech set keyword = '%s' where `index` = %d" % t # 将关键字写入数据库,以空格划分存入一列中 print(sql) conn.execute(sql) db.commit()
写入数据:如图示