nhull commited on
Commit
26d726f
·
verified ·
1 Parent(s): bd5585a

Upload 2 files

Browse files

Add Gradio demo for logistic regression model, first try

Files changed (2) hide show
  1. app.py +40 -0
  2. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from datasets import load_dataset
3
+ from sklearn.feature_extraction.text import TfidfVectorizer
4
+ from sklearn.linear_model import LogisticRegression
5
+
6
+ # Load the dataset and prepare the model (as you already did)
7
+ dataset = load_dataset("nhull/tripadvisor-split-dataset")
8
+ train_data = dataset['train']
9
+ val_data = dataset['validation']
10
+ test_data = dataset['test']
11
+
12
+ # Prepare data and labels
13
+ X_train, y_train = train_data['review'], train_data['label']
14
+ X_val, y_val = val_data['review'], val_data['label']
15
+ X_test, y_test = test_data['review'], test_data['label']
16
+
17
+ # Vectorize the text using TF-IDF
18
+ vectorizer = TfidfVectorizer(max_features=10000)
19
+ X_train_vec = vectorizer.fit_transform(X_train)
20
+ X_val_vec = vectorizer.transform(X_val)
21
+ X_test_vec = vectorizer.transform(X_test)
22
+
23
+ # Train the logistic regression model
24
+ model = LogisticRegression(max_iter=1000)
25
+ model.fit(X_train_vec, y_train)
26
+
27
+ # Define the prediction function
28
+ def predict_sentiment(text):
29
+ text_vec = vectorizer.transform([text])
30
+ prediction = model.predict(text_vec)[0]
31
+ return f"Predicted label: {prediction}"
32
+
33
+ # Create the Gradio interface
34
+ iface = gr.Interface(fn=predict_sentiment,
35
+ inputs=gr.Textbox(label="Enter a review text", placeholder="Type your review here..."),
36
+ outputs=gr.Textbox(label="Predicted label"),
37
+ live=True)
38
+
39
+ # Launch the interface
40
+ iface.launch()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ gradio
2
+ scikit-learn
3
+ datasets