neena2024 commited on
Commit
a3d0f2a
·
verified ·
1 Parent(s): c78ce14

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -0
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ import pandas as pd
4
+
5
+ # Use a pipeline as a high-level helper
6
+ from transformers import pipeline
7
+ analyzer = pipeline("text-classification", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english")
8
+
9
+ # Load model directly
10
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
11
+
12
+ def sentiment_analyzer(reviews):
13
+ sentiment = analyzer(reviews)
14
+ return sentiment
15
+
16
+ # Read Reviews & Analyzer Sentiments
17
+ def read_reviews_and_analyze_sentiment(file_object):
18
+ """
19
+ Reads reviews from an Excel file, analyzes their sentiment, and returns a DataFrame
20
+ with the reviews, sentiment, and sentiment score.
21
+
22
+ Parameters:
23
+ input_excel (str): Path to the input Excel file.
24
+
25
+ Returns:
26
+ pd.DataFrame: DataFrame containing reviews, sentiment, and sentiment score.
27
+ """
28
+ # Read the Excel file
29
+ df = pd.read_xlsx(file_object)
30
+
31
+
32
+ # Check if 'reviews' column exists
33
+ if 'review' not in df.columns:
34
+ raise ValueError("The input Excel file must contain a column named 'reviews'.")
35
+
36
+ # Analyze sentiment for each review
37
+ sentiments = []
38
+ scores = []
39
+ for review in df['review']:
40
+ obj = sentiment_analyzer(review[0])
41
+ sentiment = obj[0]['label']
42
+ score = obj[0]['score']
43
+ sentiments.append(sentiment)
44
+ scores.append(score)
45
+
46
+ # Add sentiment and score to the DataFrame
47
+ df['sentiment'] = sentiments
48
+ df['sentiment_score'] = scores
49
+
50
+ return df
51
+
52
+ # file_path = '/content/sample_data/amazon customer reviews.csv'
53
+ # result = read_reviews_and_analyze_sentiment(file_path)
54
+ # print(result)
55
+
56
+
57
+ gr.close_all()
58
+
59
+ demo = gr.Interface(fn=read_reviews_and_analyze_sentiment,
60
+ inputs=[gr.File(file_types=['xlsx'], label="Upload review file")],
61
+ outputs=[gr.Dataframe(label="Analyze the sentiment of the reviews")],
62
+ title = "Gen AI Sentiment Analyzer",
63
+ description= "Review is positive negative."
64
+ )
65
+ demo.launch(share=True)