|
|
from flask import Flask, render_template, url_for, request |
|
|
from flask_bootstrap import Bootstrap |
|
|
import pickle |
|
|
import pandas as pd |
|
|
import numpy as np |
|
|
from sklearn.feature_extraction.text import CountVectorizer |
|
|
from sklearn.feature_extraction.text import TfidfVectorizer |
|
|
import joblib |
|
|
|
|
|
app = Flask(__name__) |
|
|
Bootstrap(app) |
|
|
|
|
|
|
|
|
@app.route('/') |
|
|
def home(): |
|
|
return render_template("home.html") |
|
|
|
|
|
@app.route('/predict', methods = ['POST']) |
|
|
def predict(): |
|
|
|
|
|
|
|
|
|
|
|
df= pd.read_csv("data2.csv") |
|
|
|
|
|
df_data = df[["class", "comments"]] |
|
|
df_x = df_data["comments"] |
|
|
df_y = df_data["class"] |
|
|
|
|
|
corpus = df_x |
|
|
cv = CountVectorizer() |
|
|
X = cv.fit_transform(corpus) |
|
|
|
|
|
from sklearn.model_selection import train_test_split |
|
|
X_train, X_test, y_train, y_test = train_test_split(X, df_y, test_size=0.3, random_state=42) |
|
|
|
|
|
from sklearn.linear_model import LogisticRegression |
|
|
clf = LogisticRegression() |
|
|
clf.fit(X_train, y_train) |
|
|
clf.score(X_test, y_test) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if request.method == 'POST': |
|
|
comment = request.form['comment'] |
|
|
data = [comment] |
|
|
vect = cv.transform(data).toarray() |
|
|
my_prediction = clf.predict(vect) |
|
|
return render_template('home.html', name = data, prediction = my_prediction, user_comment = comment) |
|
|
|
|
|
if __name__ == '__main__': |
|
|
app.run(debug = True) |