2021-07-29

此外也对用户画像这个主题进行了实践

获取数据:在我们的实际开发中,原始数据是通过在数据库中获取,本文为了方便通过test.txt文件读取数据;

分析数据:在该步骤中,我们需要对读取的数据进行切割,并提取关键词及计算关键词的权重,这里我们我们利用Python的一个中文分词工具jieba,如果还没安装的可以使用pip安装(安装命令为:pip install jieba);

生成用户画像:在这个步骤中,我们需要把获得关键词生成云词图,这里借用wordcloud生成云词图(如果还没安装可以通过命令pip install wordcloud进行安装)

# -*- coding: utf-8 -*-

__author__ = 'heroli'

#wordcloud生成中文词云

from wordcloud import WordCloud

import jieba

# 词频计算

import jieba.analyse as analyse

from scipy.misc import imread

import os

from os import path

import matplotlib.pyplot as plt

class WC(object):

# 绘制词云

def draw_wordcloud(self):

#读入一个txt文件

comment_text = open('static/test.txt','r').read()

#结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云

cut_text = " ".join(jieba.cut(comment_text))

result = jieba.analyse.textrank(cut_text, topK=1000, withWeight=True)

# 生成关键词比重字典

keywords = dict()

for i in result:

keywords[i[0]] = i[1]

d = path.dirname(__file__) # 当前文件文件夹所在目录

color_mask = imread("static/images/alice.png") # 读取背景图片

cloud = WordCloud(

#设置字体,不指定就会出现乱码

font_path="./fonts/Simfang.ttf",

# font_path=path.join(d,'simsun.ttc'),

width=200,

height=200,

#设置背景色

background_color='white',

#词云形状

mask=color_mask,

#允许最大词汇

max_words=2000,

#最大号字体

max_font_size=40

)

word_cloud = cloud.generate(cut_text)# 产生词云

word_cloud.to_file("static/images/user_img.jpg") #保存图片

# 显示词云图片

# plt.imshow(word_cloud)

# plt.axis('off')

# plt.show()

if __name__ == '__main__':

wc = WC()

wc.draw_wordcloud()

网站实现:网站通过flask实现,Flask是一个使用python编写的轻量级 Web 应用框架。由于其简单易学,非常适合与编写轻量级的web应用,故本文选择flask进行网站的实现。代码比较简单,下面为主要代码:

# -*- coding:utf-8 -*-

from flask import Flask

from flask import render_template

import userWordCould

app = Flask(__name__)

@app.route('/')

def all():

return '开启探索用户画像的大门'

@app.route('/portrait/')

@app.route('/portrait/')

def portrait(name=None):

wc = userWordCould.WC()

wc.draw_wordcloud()

return render_template('portrait.html', name=name)

if __name__ == '__main__':

app.run(debug=True,host='127.0.0.1')

以下为html代码:

用户画像

应用实现完毕,项目结构如下:

进入项目文件夹,启动项目:

python portrait.py

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

* Restarting with stat

* Debugger is active!

* Debugger PIN: 263-119-555

然后再浏览器打开http://127.0.0.1:5000/portrait地址即可看到上面的用户画像效果页面。

————————————————

版权声明:本文为CSDN博主「文宇肃然」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/wenyusuran/article/details/81132940

你可能感兴趣的:(2021-07-29)