diff --git a/app.py b/app.py
index 2169d4f0f1bae4f8c94e08a9fa8a60624127319d..aa51c0b8859484a0e370c67dea3be8267fc027aa 100644
--- a/app.py
+++ b/app.py
@@ -1,6 +1,7 @@
 import numpy as np
 from flask import Flask, request, render_template
 import pickle
+import re
 import json
 
 app = Flask(__name__) #Initialize the flask App
@@ -9,9 +10,67 @@ model = pickle.load(open('model.pickle', 'rb'))
 mlb = pickle.load(open('mlb.pickle','rb'))
 vectorizer = pickle.load(open('vectorizer.pickle','rb'))
 
+replace = [':', ';', '<', '=', '>', '?', '@', '\\', '_', '`',
+           '\n', '\r', '#', '$', '%', '&', "'", '*', '+', '-', '{', '|', '}', 
+           '\xa0', '¢', '£', '¥', '«', '°', '´', '»', '¼', '½', '×', 'ß', 'à', 'á', 'â', 
+           'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 
+           'ò', 'ó', 'ô', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ā', 'ă', 'ć', 'č', 'đ', 
+           'ē', 'ė', 'ě', 'ğ', 'ġ', 'ħ', 'ĩ', 'ī', 'ı', 'ĺ', 'ł', 'ń', 'ō', 'œ', 'ś', 
+           'ş', 'š', 'ţ', 'ũ', 'ū', 'ŭ', 'ź', 'ż', 'ž', 'ơ', 'ư', 'ǔ', 'ș', 'ț', 'ɐ', 
+           'ɔ', 'ə', 'ɡ', 'ɪ', 'ɾ', 'ʃ', 'ʊ', 'ʲ', 'ʻ', 'ʼ', 'ˈ', 'ː', '̇', 'μ', 'π', 
+           'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 
+           'р', 'с', 'т', 'у', 'х', 'ч', 'ш', 'ы', 'ь', 'я', 'ё', 'ђ', 'ј', 'њ', 'ה', 
+           'ו', 'י', 'ך', 'ל', 'מ', 'ש', 'ं', 'अ', 'आ', 'उ', 'क', 'ग', 'च', 'ज', 'ट', 
+           'ठ', 'ण', 'त', 'द', 'न', 'प', 'फ', 'ब', 'भ', 'म', 'य', 'र', 'ल', 'व', 'ष', 
+           'स', 'ह', 'ा', 'ि', 'ी', 'ु', 'ू', 'ृ', 'े', 'ै', 'ो', '्', 'ক', 'ঠ', 'ত', 'থ', 
+           'দ', 'ধ', 'ন', 'ব', 'র', 'শ', 'ষ', 'স', 'া', 'ি', 'ী', 'ু', 'ে', '্', 'ế', 'ễ', 
+           'ệ', 'ộ', '\u2009', '\u200a', '\u200b', '\u200c', '\u200d', '‐', '–', '—', '―', 
+           '‘', '’', '‚', '“', '”', '…', '′', '″', '⁄', '₤', '€', '₱', '₹', '⅓', '⅞', '←', 
+           '−', '♥', '\u3000', 'あ', 'い', 'う', 'お', 'か', 'が', 'き', 'く', 'け', 'げ', 'こ', 
+           'し', 'す', 'せ', 'に', 'の', 'ほ', 'ま', 'み', 'も', 'や', 'ゅ', 'よ', 'り', 'ん', 
+           'ア', 'イ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'ケ', 'ゴ', 'サ', 'ザ', 'シ', 'ジ', 'ス', 
+           'ズ', 'ソ', 'ゾ', 'タ', 'ダ', 'ッ', 'ツ', 'デ', 'ト', 'ド', 'ニ', 'ヌ', 'ネ', 'ノ', 
+           'バ', 'パ', 'フ', 'ブ', 'プ', 'ペ', 'ボ', 'ム', 'メ', 'ャ', 'ヤ', 'ュ', 'ラ', 'リ', 
+           'ル', 'ロ', 'ワ', 'ン', 'ヶ', '・', 'ー', 'ㄜ', '一', '七', '三', '世', '中', '丸', 
+           '丹', '举', '久', '之', '也', '予', '二', '井', '京', '人', '仁', '介', '伽', '俊', 
+           '信', '元', '兄', '先', '光', '党', '公', '六', '冯', '刀', '刃', '刘', '劍', '力', 
+           '勇', '務', '化', '十', '千', '原', '友', '司', '合', '名', '向', '君', '吳', '命', 
+           '咲', '四', '団', '図', '国', '圭', '城', '域', '塔', '士', '外', '多', '夢', '大', 
+           '天', '夫', '奪', '女', '姐', '婆', '婉', '子', '孙', '学', '孫', '宇', '安', '宗', 
+           '宙', '宮', '家', '小', '尚', '尾', '山', '島', '州', '巫', '布', '师', '師', '府', 
+           '庭', '弁', '式', '张', '德', '怪', '恵', '悟', '悪', '感', '我', '擊', '教', '方', 
+           '旅', '日', '春', '書', '月', '朋', '望', '木', '本', '村', '条', '杭', '杰', '東', 
+           '林', '柊', '柑', '桑', '森', '椰', '業', '樵', '樹', '正', '武', '歩', '死', '氏', 
+           '民', '永', '汤', '沙', '沢', '治', '法', '泰', '津', '海', '清', '渡', '湖', '源', 
+           '潛', '澎', '澤', '濱', '灣', '点', '焉', '無', '爱', '爷', '物', '犯', '狐', '狙', 
+           '狸', '王', '珊', '琪', '瑜', '瑞', '生', '田', '由', '甲', '町', '畑', '的', '真', 
+           '神', '祭', '穂', '空', '筒', '紀', '綿', '織', '美', '老', '者', '聖', '興', '良', 
+           '花', '芳', '草', '菜', '萩', '葵', '蓝', '薈', '藍', '號', '蛇', '行', '衛', '裕', 
+           '襄', '西', '語', '談', '諜', '識', '讃', '识', '谷', '貴', '賢', '贝', '超', '足', 
+           '轩', '逆', '遊', '達', '邦', '郎', '部', '里', '野', '金', '鈴', '鉄', '鎮', '間', 
+           '防', '陆', '陸', '陽', '隊', '雄', '雪', '青', '響', '首', '香', '馮', '駿', '马', 
+           '髪', '魔', '魚', '鹅', '麻', '黃', '黄', '龍', '龙', '북', '촌', 'fl', '\ufeff',]
+
+def preProcess(text):
+    text = text.lower()
+    text = re.sub(r"what's", "what is ", text)
+    text = re.sub(r"\'s", " ", text)
+    text = re.sub(r"\'ve", " have ", text)
+    text = re.sub(r"can't", "can not ", text)
+    text = re.sub(r"n't", " not ", text)
+    text = re.sub(r"i'm", "i am ", text)
+    text = re.sub(r"\'re", " are ", text)
+    text = re.sub(r"\'d", " would ", text)
+    text = re.sub(r"\'ll", " will ", text)
+    text = re.sub(r"\'scuse", " excuse ", text)
+    text = text.strip(' ')
+    for character in replace:
+        text = text.replace(character,"")
+    return text
+
 @app.route('/predict',methods=['POST'])
 def predict():
-    reqInput = request.form.get('text')
+    reqInput = preProcess(request.form.get('text'))
     vector = vectorizer.transform([reqInput])
     prediction = model.predict(vector)
     output = json.dumps(mlb.inverse_transform(prediction)[0])