基于中文新闻分词绘制词云图
1、数据导入展示:
将所有类别的新闻导入数据库中。以树形目录形式展示新闻类别,每个树形节点代表
新闻分类,括号中代表该类新闻的数量,选择每个新闻,以列表形式显示新闻标题,点击新
闻标题,可以查看详细信息。
2、文章统计:
统计各个类别的文章总数,以柱状图表示。
3、文章分词:
使用中文分词算法解析所有新闻正文,并统计每个词语出现的数量,并以词云图的方
式展示,点击词云图中该词语,显示其数量。
4、选择某一类文章,绘制该类型新闻文章词云图,例如汽车类新闻词云图。
测试结果:
1.
2.

3.

4.

先分享使用python进行分词的代码:
import jieba
import pandas as pd
import re
from collections import Counter
import pymysql
import xlwt
import csv
if __name__ == '__main__':
file_ob=open('E:\大三上\软件需求\ceshi02/main.csv',encoding='utf-8').read().split('\n')
file = open("final_hotword2.txt", "w", encoding='utf-8');
filepaixu = open("main.txt", "w", encoding='utf-8');
rs2=[]
dbinserthot = []
for i in range(len(file_ob)):
result=[]
seg_li=jieba.cut(file_ob[i])
for w in seg_li:
result.append(w)
rs2.append(result)
c = Counter()
stopwords = {}.fromkeys([line.rstrip() for line in open(r'final.txt', encoding='UTF-8')])
for seg_list in rs2:
for x in seg_list:
if x not in stopwords:
if len(x) > 1 and x != '\r\n' and x != 'quot':
c[x] += 1
print('\n词频统计结果:')
for (k, v) in c.most_common(1000): # 输出词频最高的前两个词
print("%s:%d" % (k, v))
file.write(k + '\n')
filepaixu.write(k + "," + str(v) + '\n')
value = [k, str(v)]
dbinserthot.append(value)
tuphot = tuple(dbinserthot)
db = pymysql.connect(host="localhost", user="root", password="1229", database="newfc", charset='utf8')
cursor = db.cursor()
sql_hot = "INSERT INTO mainTu values(%s,%s)"
try:
cursor.executemany(sql_hot, tuphot)
db.commit()
except:
print('执行失败,进入回调3')
db.rollback()
db.close()
file=open('G:\Python程序\ceshi\st.txt','w',encoding='utf-8')
file.write(str(rs2));
file.close()
词云图的项目后续后上传到GitHub中