Ich habe mit Word2vec und Gensim als seine Python-Implementierung experimentiert. Jetzt muss ich mein Modell auf einer Website zugänglich machen - also brauche ich Flask. I definiert ein Formular in forms.py wie folgt aus:Daten von wtforms
from wtforms Import Form, StringField, SubmitField, validators
class msForm(Form):
ms_1 = StringField(label='Eingabe_1', default = 'king', validators=[validators.input_required()])
ms_2 = StringField(label='Eingabe_2', default = 'man', validators=[validators.input_required()])
ms_3 = StringField(label='Eingabe_3', default = 'queen', validators=[validators.input_required()])
submit=SubmitField()
jetzt meine views.py wie folgt aussieht:
from app import app
from .forms import msForm
from flask import render_template, flash, request
from gensim.models import word2vec
global model
model = word2vec.Word2Vec.load_word2vec_format('./app/static/GoT.model.vector', binary=True)
global form
form = msForm()
@app.route('/')
def index():
return render_template('my-form.html', form=form)
@app.route('/', methods=['POST'])
def msForm_post():
text1 = form.ms_1.data
text2 = form.ms_2.data
text3 = form.ms_3.data
processed_text = model.most_similar(positive=[text3, text2], negative = [text1])
return processed_text[0][0]
Wenn ich meine run.py ausführen, um http://localhost:5000/ gehen, meine Eingabe ändern und klicken Sie auf die 'Submit' Taste, ich bekomme nur die Antwort auf meine Standard-Eingabe. Warum sendet er meine Eingabe nicht?
Vielen Dank für Ihre Hilfe und sorry für mein Englisch, FFoDWindow
hey @davidism, danke für Ihre schnelle Antwort! Es scheint immer noch an einem Punkt zu scheitern .. Wenn ich den Submit-Button drücke, zeigt es mir einen Fehler 405 - Website hat einen Programmierfehler. Ist das meine Vorlage? Mein Formular sieht so aus: '
' – FFoDWindowwenn ich '@ app.route' ('/ ') 'zu' @ app.route ('/', Methoden = [' GET, 'POST']) 'die Website gibt keinen Fehler zurück, aber jetzt ist es das gleiche Problem wie in meiner Frage - ich bekomme nur die antwort auf meine defaultdata ... – FFoDWindow
Ich beantwortete meine eigene Frage. Ich musste die Sachen ändern, die ich in meinem letzten Kommentar gepostet habe und instanziiere 'form = msForm (request.form)'. – FFoDWindow