-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
44 lines (36 loc) · 1.26 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from flask import Flask, render_template, request, jsonify
import nltk
import pickle
from nltk.corpus import stopwords
import re
from nltk.stem.porter import PorterStemmer
nltk.download('stopwords')
application = Flask(__name__)
ps = PorterStemmer()
model = pickle.load(open('model2.pkl', 'rb'))
tfidfvect = pickle.load(open('tfidfvect2.pkl', 'rb'))
@app.route('/', methods=['GET'])
def home():
return render_template('index.html')
def predict(text):
review = re.sub('[^a-zA-Z]', ' ', text)
review = review.lower()
review = review.split()
review = [ps.stem(word) for word in review if not word in stopwords.words('english')]
review = ' '.join(review)
review_vect = tfidfvect.transform([review]).toarray()
prediction = 'BEEP!! This. Is. Fake. News.' if model.predict(review_vect) == 0 else 'This. Is. Real. News.'
return prediction
@app.route('/', methods=['POST'])
def webapp():
text = request.form['text']
prediction = predict(text)
return render_template('index.html', text=text, result=prediction)
@app.route('/predict/', methods=['GET','POST'])
def api():
text = request.args.get("text")
prediction = predict(text)
return jsonify(prediction=prediction)
if __name__ == "__main__":
app.debug = True
app.run()