python根据评论.txt写的词图云在Flask网页显示,代码。
时间: 2024-09-16 11:01:29 浏览: 38
为了在Python中创建一个基于评论.txt文件的词云,并将其作为Flask应用的一部分显示出来,你需要做以下几个步骤:
1. 首先安装必要的库:
- 使用`pip install wordcloud flask`
- 可能还需要`pip install jieba` (如果文件是中文的,用于分词)
2. 导入所需模块并读取文本:
```python
from flask import Flask, render_template
import jieba.analyse
from wordcloud import WordCloud
import matplotlib.pyplot as plt
app = Flask(__name__)
# 如果是中文文件,需要先读取文本
def read_text(file_name):
with open(file_name, 'r', encoding='utf-8') as f:
text = f.read()
if '\u4e00' <= text[0] <= '\u9fff': # 判断是否为中文
return text
else:
return text
text = read_text('comments.txt')
```
3. 创建词云:
```python
stopwords = set() # 自定义停用词列表,可以为空
wordcloud = WordCloud(font_path='simhei.ttf', # 如果有特定字体替换
stopwords=stopwords,
width=800, height=600).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show() # 这里仅仅是为了生成词云图片
```
4. 将词云保存为图片:
```python
wc_image = io.BytesIO()
plt.savefig(wc_image, format='png')
wc_image.seek(0) # 移动文件指针到开头以便Flask读取
```
5. 创建Flask路由和视图函数:
```python
@app.route('/')
def index():
return render_template('index.html', wc_image=wc_image.getvalue())
if __name__ == '__main__':
app.run(debug=True)
```
6. 在HTML模板 (`templates/index.html`) 中,展示词云:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>词云</title>
</head>
<body>
<img src="{{ url_for('static', filename='wc_image.png') }}" alt="词云图" style="width: 100%; height: auto;">
</body>
</html>
```
记得在Flask项目目录下创建一个名为`static`的文件夹,然后将词云图片文件放在其中。
阅读全文