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])