Spaces:
Build error
Build error
| import gradio as gr | |
| import tensorflow as tf | |
| import pickle | |
| import re | |
| import nltk | |
| from nltk.corpus import stopwords | |
| from nltk.stem import WordNetLemmatizer | |
| nltk.download('stopwords') | |
| nltk.download('wordnet') | |
| # Load model | |
| model = tf.keras.models.load_model("sentiment_cnn.keras") | |
| # Load tokenizer | |
| with open("tokenizer.pkl", "rb") as f: | |
| tokenizer = pickle.load(f) | |
| max_len = 80 | |
| pattern = re.compile(r"(?:\@|https?\://)\S+|[^\w\s#]") | |
| lemm = WordNetLemmatizer() | |
| stop_words = set(stopwords.words("english")) | |
| def preprocess(text): | |
| text = text.lower() | |
| text = pattern.sub("", text) | |
| tokens = text.split() | |
| tokens = [lemm.lemmatize(t) for t in tokens if t not in stop_words and len(t) > 1] | |
| return " ".join(tokens) | |
| def predict(text): | |
| clean = preprocess(text) | |
| seq = tokenizer.texts_to_sequences([clean]) | |
| pad = tf.keras.preprocessing.sequence.pad_sequences(seq, maxlen=max_len) | |
| pred = model.predict(pad)[0][0] | |
| return "Positive " if pred > 0.5 else "Negative " | |
| demo = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Textbox(lines=3, placeholder="Enter tweet here..."), | |
| outputs="text", | |
| title="Twitter Sentiment Analyzer", | |
| description="CNN based sentiment classifier" | |
| ) | |
| demo.launch() |