elifsara commited on
Commit
d2ab139
1 Parent(s): 17e5017

Upload 4 files

Browse files
Files changed (4) hide show
  1. BoW.h5 +3 -0
  2. app.py +49 -0
  3. requirements.txt +6 -0
  4. tfidf_vectorizer.pkl +3 -0
BoW.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d4adb2a9af8176082ebae13ade8305d3f0a97a710e6779a52bdfe8e98d38f192
3
+ size 188821720
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import numpy as np
3
+ from keras.models import load_model # type: ignore
4
+ import joblib
5
+ import nltk
6
+ from nltk.corpus import stopwords
7
+ from nltk.tokenize import word_tokenize
8
+ from nltk.stem import WordNetLemmatizer
9
+ import re
10
+
11
+ # Modeli ve TF-IDF vectorizer'ı yükle
12
+ model = load_model("BoW.h5", compile=False)
13
+ vectorizer = joblib.load("tfidf_vectorizer.pkl")
14
+
15
+ # NLTK paketlerini indir
16
+ nltk.download('stopwords')
17
+ nltk.download('punkt')
18
+ nltk.download('wordnet')
19
+
20
+ # Preprocessing fonksiyonları
21
+ stop_words = set(stopwords.words('english'))
22
+ lemmatizer = WordNetLemmatizer()
23
+
24
+ def preprocess_text(text):
25
+ text = text.lower()
26
+ text = re.sub(r'[^\w\s]', '', text)
27
+ text = re.sub(r'\s+', ' ', text)
28
+ text = re.sub(r'\d+', ' ', text)
29
+ tokens = word_tokenize(text)
30
+ tokens = [lemmatizer.lemmatize(word) for word in tokens if word not in stop_words]
31
+ return ' '.join(tokens)
32
+
33
+ def predict_sentiment(text):
34
+ text = preprocess_text(text)
35
+ text_vectorized = vectorizer.transform([text]).toarray()
36
+ prediction = model.predict(text_vectorized)
37
+ return 'Positive' if prediction > 0.5 else 'Negative'
38
+
39
+ # Gradio arayüzü
40
+ demo = gr.Interface(
41
+ fn=predict_sentiment,
42
+ inputs=gr.Textbox(lines=2, placeholder="Enter a movie review here..."),
43
+ outputs="text",
44
+ title="Movie Review Sentiment Analysis",
45
+ description="Enter a movie review and get the sentiment prediction (positive or negative)."
46
+ )
47
+
48
+ if __name__ == "__main__":
49
+ demo.launch(share=True)
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ tensorflow
2
+ keras
3
+ gradio
4
+ scikit-learn
5
+ joblib
6
+ nltk
tfidf_vectorizer.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e69679f08527102bbf0299691c988bfb03ce8e6c2bbe3090d40471235a7d60d3
3
+ size 4312540