import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from flask_ngrok import run_with_ngrok
from flask import Flask,request
import ast
app = Flask(__name__)
run_with_ngrok(app)
@app.route("/predict_level",methods=['GET','POST'])
def predict_level():
corr = request.args["correct"]
wr = request.args["wrong"]
data = pd.read_csv("data.csv")
print(data.columns)
level = data["level"]
p_f = data["passed_or_failed"]
test = pd.read_csv("test.csv")
level_test = test["level"]
p_f_test = test["passed_or_failed"]
data = data.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
test = test.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
clf = DecisionTreeClassifier()
clf.fit(data,level)
pred_level = clf.predict(test)
acc_level=accuracy_score(level_test,pred_level)
print("Accuracy for level is:",acc_level)
res = clf.predict([[corr,wr]])
return {"level":str(res[0])}
@app.route("/predict_passed",methods=['GET','POST'])
def predict_passed():
corr = request.args["correct"]
wr = request.args["wrong"]
data = pd.read_csv("data.csv")
level = data["level"]
p_f = data["passed_or_failed"]
test = pd.read_csv("test.csv")
level_test = test["level"]
p_f_test = test["passed_or_failed"]
data = data.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
test = test.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
clf = DecisionTreeClassifier()
clf.fit(data,p_f)
pred_p_f = clf.predict(test)
acc_p_f=accuracy_score(p_f_test,pred_p_f)
print("Accuracy for passed or failed is:",acc_p_f)
res = clf.predict([[corr,wr]])
return {"passed_failed":str(res[0])}
@app.route("/predict_level_teacher",methods=['GET','POST'])
def predict_level_teacher():
corr = request.args["correct"]
wr = request.args["wrong"]
data = pd.read_csv("data.csv")
print(data.columns)
level = data["level"]
p_f = data["passed_or_failed"]
test = pd.read_csv("test.csv")
level_test = test["level"]
p_f_test = test["passed_or_failed"]
data = data.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
test = test.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
clf = DecisionTreeClassifier()
clf.fit(data,level)
pred_level = clf.predict(test)
acc_level=accuracy_score(level_test,pred_level)
print("Accuracy for level is:",acc_level)
res = clf.predict([[corr,wr]])
return {"level":str(res[0])}
@app.route("/predict_passed_teacher",methods=['GET','POST'])
def predict_passed_teacher():
corr = request.args["correct"]
wr = request.args["wrong"]
data = pd.read_csv("data.csv")
level = data["level"]
p_f = data["passed_or_failed"]
test = pd.read_csv("test.csv")
level_test = test["level"]
p_f_test = test["passed_or_failed"]
data = data.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
test = test.drop(["level","passed_or_failed","Unnamed: 0"],axis=1)
clf = DecisionTreeClassifier()
clf.fit(data,p_f)
pred_p_f = clf.predict(test)
acc_p_f=accuracy_score(p_f_test,pred_p_f)
print("Accuracy for passed or failed is:",acc_p_f)
res = clf.predict([[corr,wr]])
return {"passed_failed":str(res[0])}
@app.route("/get_comment_topic",methods=['GET','POST'])
def get_comment_topic():
corr = request.args["comments"]
print(corr)
corr = ast.literal_eval(corr)
topic = get_topic(corr)
return {"The most popular idea from comments":topic}
if __name__ == "__main__":
app.run()