我正在使用烧瓶工作,以基于系统中静态的文件显示WordCloud。页面加载后,我希望用户能够输入停止单词,以便在提交时更新cloud。使用当前代码,当用户提交新的停止单词时,stop_words的列表将更新,但是当模板再次呈现时,它不会更新云单词。get_nmf_topics(模型,20(使用主题生成器(NMF(创建单词和权重列表,并且还处理该功能中的stop_words。
@app.route('/')
def home_page():
return render_template('index.html')
@app.route('/word_cloud', methods=['GET'])
def word_cloud():
try:
words=get_nmf_topics(model, 20)
# JQCloud requires words in format {'text': 'sample',
'weight':'100'}
# so, lets convert out word_freq in the respective format
words_json = [{'text': word, 'weight': weight} for word, weight in
words]
# now convert it into a string format and return it
#return json.dumps(words_json)
return json.dumps(words_json)
except Exception as e:
return '[]'
@app.route('/', methods=['POST'])
def parse_data():
text = request.form['text']
stop_words.append(text)
print(stop_words)
return redirect(url_for('parse_data'))
您没有使用stop_words添加到WordCloud中,因此在调用GET方法时,cloud Word Cloud将保持不变。