added flask interface

This commit is contained in:
Andreas Stephanides
2017-08-06 10:16:30 +02:00
parent 4060a77c48
commit ff0bdc6d3b
23 changed files with 14913 additions and 63 deletions

25
run.py
View File

@@ -14,7 +14,7 @@ from storage.fetch_mail import fetch_threads, flatten_threads
from storage import Mail, MailThread, db_session
import yaml
import email
from classifier import get_training_threads, ThreadDictExtractor, pipe1, print_answers, in_training, store_training_data, pipe2, pipe2b
from classifier import get_training_threads, ThreadDictExtractor, print_answers, in_training, store_training_data, get_pipe, test_pipe # , pipe2, pipe2b
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import LabelEncoder
import numpy
@@ -23,8 +23,8 @@ import numpy
def train_fit_pipe():
tt= get_training_threads(b"answered")
print tt[1]
print tt[0]
# print tt[1]
# print tt[0]
pipe1.fit(tt[0],tt[1])
return pipe1,tt[2]
def train_fit_pipe2():
@@ -80,13 +80,15 @@ def train_single_thread(tid,p,le,key="answered"):
else:
print "couldn't handle %s" % ca
from flaskapp import app
#print "arg1:"+sys.argv[1]
if len(sys.argv)>1:
if sys.argv[1] == "fetch_threads":
print flatten_threads(fetch_threads())
if sys.argv[1] == "run_server":
app.run(port=3000,debug=True)
if sys.argv[1] == "print_threads":
mth=db_session.query(MailThread).all()
for t in mth:
@@ -104,6 +106,10 @@ if len(sys.argv)>1:
print t.firstmail
print t.subject()
print t.text()
if sys.argv[1] == "compile_threads":
mth=db_session.query(MailThread).all()
for t in mth:
t.compile()
if sys.argv[1] == "print_threads2":
@@ -113,8 +119,9 @@ if len(sys.argv)>1:
print "---------------\n"
if sys.argv[1] == "train_thrd2":
p, le=train_fit_pipe2()
pb, lb =train_fit_pipe2b()
p, le=get_pipe("pipe2", "maintopic")
pb, lb =get_pipe("pipe2b", "maintopic")
train_single_thread(int(sys.argv[2]),p,le,b"maintopic")
if sys.argv[1] == "train_all2":
p, labelencoder=train_fit_pipe2()
@@ -130,7 +137,9 @@ if len(sys.argv)>1:
predict_thread(pb,lb,t)
train_single_thread(t.firstmail, p, labelencoder, b"maintopic")
if sys.argv[1] == "benchpipe2":
test_pipe(["pipe2","pipe2b","pipe2c"],"maintopic")
if sys.argv[1] == "testpipe2":
from classifier import ThreadSubjectExtractor, ThreadTextExtractor
pipe2,le=train_fit_pipe2()