相关的包
import pymysql
import pymysql
from wordcloud import WordCloud
import jieba
import pygal
1 从数据库把所有用户评论查出
def get_comments():
# 连接数据库
# 读表 连接的mysql 数据库,
mysql_con= pymysql.connect(host=‘127.0.0.1’,
port=3306,
user=‘root’,
password=‘密码’,
db=‘表名’,
charset=‘utf8mb4’,
cursorclass=pymysql.cursors.DictCursor
)
cursor = mysql_con.cursor()
sql=""“select content,product_color from jd.comment”""
cursor.execute(sql)
result = cursor.fetchall()
print(result)
# process_comments(result)
color_r(result)
# select content from
# return [{},{}]
def process_comments(result):
# 所有用户评论拼成一个长字符串
word_list=[]
for re in result:
res = re[‘content’]
# print(res)
word_list.append(res)
comment = ’ '.join(word_list)
# print(comment)
list = jieba.cut(comment, cut_all=False)
req = ‘/’.join(list)
# print(req)
word_cloud(req)
# return ‘’
def color_r(result):
list = [ ]
for color in result:
color_s = color[‘product_color’]
list.append(color_s)
list_color = ‘/’.join(list)
# print(list_color)
content(list_color)
def content(list_color):
s = list_color
golden = s.count(‘金色’)/2
gray = s.count(‘深空灰色’)/2
silver = s.count(‘银色’)/2
s = golden + gray + silver
print(s)
print(golden,gray,silver)
gen_pei(golden,gray,silver)
# print(golden)
def cut_word(string):
# 分词 ,返回wordcloud包使用的格式
# string
# ['手机', '好', '质量', '手机']# return '手机 好 质量 手机'
print('正在计算分词,可能需要秒数。。。。')
def word_cloud(rep):
# 生成词云,保存到本地
string=rep
font = ‘C:\Windows\Fonts\msyhbd.ttc’
wc = WordCloud(
font_path=font,
background_color=‘white’,
width=1920,
height=1080,
).generate(string)
wc.to_file(‘京东评价.png’)
# gen_pei()
# return None
def gen_pei(golden,gray,silver):
# 生成饼状图
# select count() group by
# 本地生成饼状图
pie_chart = pygal.Pie()
pie_chart.title = ‘京东华为手机销售颜色数量’
pie_chart.add(‘金色’, golden)
pie_chart.add(‘深空灰色’, gray)
pie_chart.add(‘银色’, silver)
pie_chart.render_to_file(‘1bar.svg’)
if name == ‘main’:
get_comments()
运行出来的词云。