Update app.py
Browse files
app.py
CHANGED
@@ -5,11 +5,8 @@ import torch
|
|
5 |
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
6 |
from textblob import TextBlob
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
# Load the dataset from the local file
|
12 |
-
data = pd.read_csv('twitter_dataset.csv')
|
13 |
|
14 |
# Calculate sentiment polarity and popularity
|
15 |
data['Sentiment'] = data['Text'].apply(lambda x: TextBlob(x).sentiment.polarity)
|
@@ -39,7 +36,7 @@ data['Fake_News_Prediction'] = predictions
|
|
39 |
data['Credibility'] = data['Fake_News_Prediction'].apply(lambda x: 1 if x == 1 else -1)
|
40 |
|
41 |
# Define the prediction and recommendation function
|
42 |
-
def predict_and_recommend(
|
43 |
# Adjust weights and calculate the final score
|
44 |
total_weight = visibility_weight + sentiment_weight + popularity_weight
|
45 |
visibility_weight /= total_weight
|
@@ -56,21 +53,22 @@ def predict_and_recommend(title, text, visibility_weight, sentiment_weight, popu
|
|
56 |
top_100_data = data.nlargest(100, 'User_Final_Visibility_Score')
|
57 |
recommended_data = top_100_data.sample(10)
|
58 |
|
59 |
-
|
|
|
|
|
|
|
60 |
|
61 |
# Set up Gradio interface
|
62 |
iface = gr.Interface(
|
63 |
fn=predict_and_recommend,
|
64 |
inputs=[
|
65 |
-
gr.Textbox(label="Title"),
|
66 |
-
gr.Textbox(label="Text", lines=10),
|
67 |
gr.Slider(0, 1, 0.5, label="Visibility Weight"),
|
68 |
gr.Slider(0, 1, 0.3, label="Sentiment Weight"),
|
69 |
gr.Slider(0, 1, 0.2, label="Popularity Weight")
|
70 |
],
|
71 |
-
outputs="
|
72 |
title="Customizable Fake News Recommendation System",
|
73 |
description="Adjust weights to receive customized tweet recommendations based on visibility, sentiment, and popularity."
|
74 |
)
|
75 |
|
76 |
-
iface.launch()
|
|
|
5 |
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
6 |
from textblob import TextBlob
|
7 |
|
|
|
|
|
|
|
8 |
# Load the dataset from the local file
|
9 |
+
data = pd.read_csv('twitter_dataset.csv')
|
10 |
|
11 |
# Calculate sentiment polarity and popularity
|
12 |
data['Sentiment'] = data['Text'].apply(lambda x: TextBlob(x).sentiment.polarity)
|
|
|
36 |
data['Credibility'] = data['Fake_News_Prediction'].apply(lambda x: 1 if x == 1 else -1)
|
37 |
|
38 |
# Define the prediction and recommendation function
|
39 |
+
def predict_and_recommend(visibility_weight, sentiment_weight, popularity_weight):
|
40 |
# Adjust weights and calculate the final score
|
41 |
total_weight = visibility_weight + sentiment_weight + popularity_weight
|
42 |
visibility_weight /= total_weight
|
|
|
53 |
top_100_data = data.nlargest(100, 'User_Final_Visibility_Score')
|
54 |
recommended_data = top_100_data.sample(10)
|
55 |
|
56 |
+
# Format output with empty lines between tweets
|
57 |
+
output = "\n\n".join(f"**Tweet**: {row['Text']}\n**Score**: {row['User_Final_Visibility_Score']:.2f}"
|
58 |
+
for _, row in recommended_data.iterrows())
|
59 |
+
return output
|
60 |
|
61 |
# Set up Gradio interface
|
62 |
iface = gr.Interface(
|
63 |
fn=predict_and_recommend,
|
64 |
inputs=[
|
|
|
|
|
65 |
gr.Slider(0, 1, 0.5, label="Visibility Weight"),
|
66 |
gr.Slider(0, 1, 0.3, label="Sentiment Weight"),
|
67 |
gr.Slider(0, 1, 0.2, label="Popularity Weight")
|
68 |
],
|
69 |
+
outputs="markdown",
|
70 |
title="Customizable Fake News Recommendation System",
|
71 |
description="Adjust weights to receive customized tweet recommendations based on visibility, sentiment, and popularity."
|
72 |
)
|
73 |
|
74 |
+
iface.launch()
|