Spaces:
Sleeping
Sleeping
Commit
·
00a8f8d
1
Parent(s):
477a96e
Feat: Add strategic overview, KPIs, and action items tabs
Browse files- .gitignore +8 -34
- app.py +112 -163
- create_test_data.py +33 -12
- data/uploads/Prime_bank_Review_posts_manual.txt +0 -1056
- data/uploads/other_banks_comments.csv +0 -0
- data/uploads/other_banks_posts.csv +0 -0
- data/uploads/prime_bank_comments.csv +0 -0
- data/uploads/prime_bank_posts.csv +0 -146
- data/uploads/test_review_comments.txt +6 -0
- data/uploads/test_social_media_posts.csv +15 -0
- requirements.txt +144 -7
- src/visualizations.py +100 -303
- test_reviews.txt +5 -0
- test_social_media_data.csv +11 -0
.gitignore
CHANGED
|
@@ -1,38 +1,12 @@
|
|
| 1 |
-
#
|
| 2 |
-
.env
|
| 3 |
-
.env.local
|
| 4 |
-
|
| 5 |
-
# Data files (general exclusion)
|
| 6 |
-
*.csv
|
| 7 |
-
*.txt
|
| 8 |
-
data/raw/*
|
| 9 |
-
data/processed/*
|
| 10 |
|
| 11 |
-
#
|
| 12 |
-
|
| 13 |
-
!data/uploads/other_banks_posts.csv
|
| 14 |
-
!data/uploads/Prime_bank_Review_posts_manual.txt
|
| 15 |
-
!data/uploads/prime_bank_comments.csv
|
| 16 |
-
!data/uploads/prime_bank_posts.csv
|
| 17 |
|
| 18 |
-
# Python
|
| 19 |
__pycache__/
|
| 20 |
-
*.
|
| 21 |
-
|
| 22 |
-
*.so
|
| 23 |
-
.Python
|
| 24 |
-
|
| 25 |
-
# Streamlit
|
| 26 |
-
.streamlit/secrets.toml
|
| 27 |
-
|
| 28 |
-
# IDE
|
| 29 |
-
.vscode/
|
| 30 |
-
.idea/
|
| 31 |
-
|
| 32 |
-
# OS
|
| 33 |
-
.DS_Store
|
| 34 |
-
Thumbs.db
|
| 35 |
|
| 36 |
-
#
|
| 37 |
-
|
| 38 |
-
!data/processed/.gitkeep
|
|
|
|
| 1 |
+
# .gitignore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
+
# Ignore the backup folder with real data
|
| 4 |
+
_real_data_backup/
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
+
# Ignore Python cache and environment files
|
| 7 |
__pycache__/
|
| 8 |
+
*.pyc
|
| 9 |
+
.env
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
+
# You can also ignore the local Streamlit config if you have one
|
| 12 |
+
.streamlit/config.toml
|
|
|
app.py
CHANGED
|
@@ -16,250 +16,199 @@ st.set_page_config(
|
|
| 16 |
|
| 17 |
# --- Helper function to identify text column ---
|
| 18 |
def find_text_column(df):
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
'review_text', 'Review Text', 'post_text', 'Post Text',
|
| 27 |
-
'comment_text', 'Comment Text', 'description', 'Description',
|
| 28 |
-
'Review', 'Post Content', 'Comment Content']
|
| 29 |
-
|
| 30 |
for col in text_columns:
|
| 31 |
-
if col in df.columns:
|
| 32 |
-
return col
|
| 33 |
-
|
| 34 |
-
# If no standard column found, look for columns containing certain keywords
|
| 35 |
for col in df.columns:
|
| 36 |
col_lower = col.lower()
|
| 37 |
-
if any(keyword in col_lower for keyword in ['text', 'content', '
|
| 38 |
-
return col
|
| 39 |
-
|
| 40 |
-
# If still no column found, check if there's a column with string data
|
| 41 |
for col in df.columns:
|
| 42 |
if df[col].dtype == 'object':
|
| 43 |
-
# Check if it contains text-like content
|
| 44 |
sample = df[col].dropna().head()
|
| 45 |
-
if
|
| 46 |
-
# Check if values are strings and have reasonable length
|
| 47 |
try:
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
return col
|
| 51 |
-
except:
|
| 52 |
-
continue
|
| 53 |
-
|
| 54 |
return None
|
| 55 |
|
| 56 |
# --- Caching for Performance ---
|
| 57 |
@st.cache_data
|
| 58 |
def load_and_process_data():
|
| 59 |
-
"""
|
| 60 |
-
Loads data by differentiating between posts and comments, processes them,
|
| 61 |
-
and generates insights with robust handling for missing file types.
|
| 62 |
-
"""
|
| 63 |
DATA_DIR = 'data/uploads'
|
|
|
|
| 64 |
|
| 65 |
-
# Get all files
|
| 66 |
all_files = glob.glob(os.path.join(DATA_DIR, '*'))
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
post_files = []
|
| 70 |
-
comment_files = []
|
| 71 |
-
txt_files = []
|
| 72 |
-
other_csv_files = []
|
| 73 |
-
|
| 74 |
-
for file_path in all_files:
|
| 75 |
-
filename = os.path.basename(file_path).lower()
|
| 76 |
-
if filename.endswith('.csv'):
|
| 77 |
-
if 'post' in filename:
|
| 78 |
-
post_files.append(file_path)
|
| 79 |
-
elif 'comment' in filename:
|
| 80 |
-
comment_files.append(file_path)
|
| 81 |
-
else:
|
| 82 |
-
# Files like prime_bank_analysis.csv might be posts
|
| 83 |
-
other_csv_files.append(file_path)
|
| 84 |
-
elif filename.endswith('.txt'):
|
| 85 |
-
txt_files.append(file_path)
|
| 86 |
|
| 87 |
-
def
|
| 88 |
dfs = []
|
| 89 |
for f in files_list:
|
| 90 |
try:
|
| 91 |
if f.endswith('.csv'):
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
try:
|
| 95 |
-
df = pd.read_csv(f, encoding=encoding, on_bad_lines='skip')
|
| 96 |
-
break
|
| 97 |
-
except UnicodeDecodeError:
|
| 98 |
-
continue
|
| 99 |
-
else:
|
| 100 |
-
st.error(f"Could not read {os.path.basename(f)} with any encoding")
|
| 101 |
-
continue
|
| 102 |
-
|
| 103 |
-
# Find text column
|
| 104 |
-
text_col = find_text_column(df)
|
| 105 |
-
|
| 106 |
-
if text_col is None:
|
| 107 |
-
st.warning(f"Could not find text column in {os.path.basename(f)}. Skipping...")
|
| 108 |
-
continue
|
| 109 |
-
|
| 110 |
-
# Rename text column to 'text'
|
| 111 |
-
if text_col != 'text':
|
| 112 |
-
df = df.rename(columns={text_col: 'text'})
|
| 113 |
-
|
| 114 |
-
else: # txt files
|
| 115 |
with open(f, 'r', encoding='utf-8') as file:
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
|
|
|
|
|
|
| 119 |
|
| 120 |
-
# Add source file info
|
| 121 |
df['source_file'] = os.path.basename(f)
|
| 122 |
df['file_type'] = file_type
|
| 123 |
-
|
| 124 |
-
# Only keep non-empty text
|
| 125 |
df = df[df['text'].notna() & (df['text'].str.strip() != '')]
|
| 126 |
-
|
| 127 |
-
if not df.empty:
|
| 128 |
-
dfs.append(df)
|
| 129 |
-
|
| 130 |
except Exception as e:
|
| 131 |
st.error(f"Error reading {os.path.basename(f)}: {e}")
|
| 132 |
-
|
| 133 |
return pd.concat(dfs, ignore_index=True) if dfs else pd.DataFrame()
|
| 134 |
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
raw_comments_df = read_files_to_dataframe(comment_files + txt_files, 'comment')
|
| 138 |
-
|
| 139 |
-
# If no posts found, check if we have any CSV files to use as posts
|
| 140 |
-
if raw_posts_df.empty and other_csv_files:
|
| 141 |
-
st.info("No files with 'post' in filename found. Using all CSV files as posts.")
|
| 142 |
-
raw_posts_df = read_files_to_dataframe(other_csv_files, 'post')
|
| 143 |
|
| 144 |
-
# Process the data
|
| 145 |
processor = DataProcessor()
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
processed_comments_df = processor.process_all_data(raw_comments_df) if not raw_comments_df.empty else pd.DataFrame()
|
| 149 |
|
| 150 |
-
# Combine all text for analysis
|
| 151 |
all_text_df = pd.concat([processed_posts_df, processed_comments_df], ignore_index=True)
|
|
|
|
| 152 |
|
| 153 |
-
if all_text_df.empty:
|
| 154 |
-
return pd.DataFrame(), pd.DataFrame(), None
|
| 155 |
-
|
| 156 |
-
# Generate insights
|
| 157 |
insight_gen = InsightsGenerator()
|
| 158 |
-
insights = insight_gen.generate_all_insights(
|
| 159 |
-
posts_df=processed_posts_df,
|
| 160 |
-
all_text_df=all_text_df
|
| 161 |
-
)
|
| 162 |
|
| 163 |
return processed_posts_df, all_text_df, insights
|
| 164 |
|
| 165 |
# --- Main Application ---
|
| 166 |
st.title("🏦 Prime Bank Social Media Analytics")
|
| 167 |
|
| 168 |
-
# Load and process data
|
| 169 |
posts_df, all_text_df, insights = load_and_process_data()
|
| 170 |
|
| 171 |
if all_text_df.empty or insights is None:
|
| 172 |
-
st.error("No data files found or processed in 'data/uploads'. Please
|
| 173 |
-
st.info("
|
| 174 |
st.stop()
|
| 175 |
|
| 176 |
# Filter for Prime Bank mentions
|
| 177 |
-
prime_posts_df = posts_df[posts_df['prime_mentions'] > 0].copy() if
|
| 178 |
-
prime_all_text_df = all_text_df[all_text_df['prime_mentions'] > 0].copy() if
|
| 179 |
|
| 180 |
# --- KPI Section ---
|
| 181 |
-
st.header("📈 Prime Bank
|
| 182 |
-
|
| 183 |
-
total_mentions = all_text_df['prime_mentions'].sum() if 'prime_mentions' in all_text_df.columns else 0
|
| 184 |
total_posts_with_mentions = len(prime_posts_df)
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
)
|
| 189 |
-
kpi2.metric(
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
)
|
| 193 |
st.markdown("---")
|
| 194 |
|
| 195 |
# --- Tabbed Interface ---
|
| 196 |
-
tab1, tab2, tab3 = st.tabs([
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
|
| 198 |
# --- Tab 1: Posts Only Analysis ---
|
| 199 |
with tab1:
|
| 200 |
st.header("Sentiment & Virality Analysis (Posts Only)")
|
| 201 |
-
|
| 202 |
if not prime_posts_df.empty:
|
| 203 |
col1, col2 = st.columns([1, 2])
|
| 204 |
with col1:
|
| 205 |
st.subheader("Sentiment of Posts")
|
| 206 |
st.plotly_chart(create_sentiment_pie(prime_posts_df), use_container_width=True)
|
| 207 |
-
with st.expander("Read Sentiment Insights"):
|
| 208 |
-
sentiment_insight = insights.get('sentiment', {})
|
| 209 |
-
st.markdown(f"**Summary:** {sentiment_insight.get('summary', 'N/A')}")
|
| 210 |
-
st.markdown(f"**Positive Themes:** {sentiment_insight.get('positive_themes', 'N/A')}")
|
| 211 |
-
st.markdown(f"**Negative Themes:** {sentiment_insight.get('negative_themes', 'N/A')}")
|
| 212 |
-
st.write("**Examples of Negative Posts:**")
|
| 213 |
-
for example in sentiment_insight.get('negative_examples', []):
|
| 214 |
-
if example:
|
| 215 |
-
st.warning(f"- \"{example[:150]}...\"" if len(example) > 150 else f"- \"{example}\"")
|
| 216 |
-
|
| 217 |
with col2:
|
| 218 |
st.subheader("Top Viral Posts")
|
| 219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 220 |
else:
|
| 221 |
st.info("No posts mentioning Prime Bank were found in the data.")
|
| 222 |
|
| 223 |
-
# --- Tab 2:
|
| 224 |
with tab2:
|
| 225 |
st.header("Emotion & Category Analysis (Posts & Comments)")
|
| 226 |
-
|
| 227 |
if not prime_all_text_df.empty:
|
| 228 |
col1, col2 = st.columns(2)
|
| 229 |
with col1:
|
| 230 |
st.subheader("Emotion Detection")
|
| 231 |
st.plotly_chart(create_emotion_bar(prime_all_text_df), use_container_width=True)
|
| 232 |
-
with st.expander("Read Emotion Insights"):
|
| 233 |
-
emotion_insight = insights.get('emotion', {})
|
| 234 |
-
st.markdown(f"**Summary:** {emotion_insight.get('summary', 'N/A')}")
|
| 235 |
-
|
| 236 |
-
for emotion, data in emotion_insight.get('details', {}).items():
|
| 237 |
-
st.markdown(f"**{emotion} is often about:** {data.get('themes', 'N/A')}")
|
| 238 |
-
if data.get('example') and data['example'] != "N/A":
|
| 239 |
-
st.write("Example:")
|
| 240 |
-
example_text = data['example']
|
| 241 |
-
st.info(f"- \"{example_text[:150]}...\"" if len(example_text) > 150 else f"- \"{example_text}\"")
|
| 242 |
-
|
| 243 |
with col2:
|
| 244 |
st.subheader("Post & Comment Categories")
|
| 245 |
st.plotly_chart(create_category_donut(prime_all_text_df), use_container_width=True)
|
| 246 |
-
with st.expander("Read Category Insights"):
|
| 247 |
-
category_insight = insights.get('category', {})
|
| 248 |
-
st.markdown(f"**Summary:** {category_insight.get('summary', 'N/A')}")
|
| 249 |
-
for category, data in category_insight.get('details', {}).items():
|
| 250 |
-
st.markdown(f"**{category} topics include:** {data.get('themes', 'N/A')}")
|
| 251 |
else:
|
| 252 |
-
st.info("No
|
| 253 |
|
| 254 |
-
# --- Tab 3:
|
| 255 |
with tab3:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 256 |
st.header("Explore the Raw and Processed Data")
|
| 257 |
-
|
| 258 |
if not posts_df.empty:
|
| 259 |
st.subheader("Processed Posts Data")
|
| 260 |
-
st.dataframe(posts_df.head(100))
|
| 261 |
-
|
| 262 |
-
|
|
|
|
| 263 |
st.subheader("Processed Comments & Reviews Data")
|
| 264 |
-
comments_df
|
| 265 |
-
st.dataframe(comments_df.head(100)) # Show first 100 rows
|
|
|
|
| 16 |
|
| 17 |
# --- Helper function to identify text column ---
|
| 18 |
def find_text_column(df):
|
| 19 |
+
if df.empty: return None
|
| 20 |
+
text_columns = [
|
| 21 |
+
'text', 'Text', 'content', 'Content', 'message', 'Message',
|
| 22 |
+
'review', 'Review', 'comment', 'Comment', 'post', 'Post',
|
| 23 |
+
'review_text', 'Review Text', 'post_text', 'Post Text',
|
| 24 |
+
'comment_text', 'Comment Text', 'description', 'Description'
|
| 25 |
+
]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
for col in text_columns:
|
| 27 |
+
if col in df.columns: return col
|
|
|
|
|
|
|
|
|
|
| 28 |
for col in df.columns:
|
| 29 |
col_lower = col.lower()
|
| 30 |
+
if any(keyword in col_lower for keyword in ['text', 'content', 'review', 'comment', 'post']): return col
|
|
|
|
|
|
|
|
|
|
| 31 |
for col in df.columns:
|
| 32 |
if df[col].dtype == 'object':
|
|
|
|
| 33 |
sample = df[col].dropna().head()
|
| 34 |
+
if not sample.empty:
|
|
|
|
| 35 |
try:
|
| 36 |
+
if sample.astype(str).str.len().mean() > 20: return col
|
| 37 |
+
except: continue
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
return None
|
| 39 |
|
| 40 |
# --- Caching for Performance ---
|
| 41 |
@st.cache_data
|
| 42 |
def load_and_process_data():
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
DATA_DIR = 'data/uploads'
|
| 44 |
+
if not os.path.exists(DATA_DIR): os.makedirs(DATA_DIR)
|
| 45 |
|
|
|
|
| 46 |
all_files = glob.glob(os.path.join(DATA_DIR, '*'))
|
| 47 |
+
if not all_files: return pd.DataFrame(), pd.DataFrame(), None
|
| 48 |
+
|
| 49 |
+
post_files = [f for f in all_files if 'post' in os.path.basename(f).lower() and f.endswith('.csv')]
|
| 50 |
+
comment_files = [f for f in all_files if 'comment' in os.path.basename(f).lower() and f.endswith('.csv')]
|
| 51 |
+
txt_files = [f for f in all_files if f.endswith('.txt')]
|
| 52 |
+
other_csv_files = [f for f in all_files if f.endswith('.csv') and f not in post_files and f not in comment_files]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
|
| 54 |
+
def read_files(files_list, file_type):
|
| 55 |
dfs = []
|
| 56 |
for f in files_list:
|
| 57 |
try:
|
| 58 |
if f.endswith('.csv'):
|
| 59 |
+
df = pd.read_csv(f, on_bad_lines='skip')
|
| 60 |
+
else: # txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
with open(f, 'r', encoding='utf-8') as file:
|
| 62 |
+
df = pd.DataFrame({'text': [p.strip() for p in file.read().split('\n') if p.strip()]})
|
| 63 |
+
|
| 64 |
+
text_col = find_text_column(df)
|
| 65 |
+
if not text_col: continue
|
| 66 |
+
if text_col != 'text': df = df.rename(columns={text_col: 'text'})
|
| 67 |
|
|
|
|
| 68 |
df['source_file'] = os.path.basename(f)
|
| 69 |
df['file_type'] = file_type
|
|
|
|
|
|
|
| 70 |
df = df[df['text'].notna() & (df['text'].str.strip() != '')]
|
| 71 |
+
if not df.empty: dfs.append(df)
|
|
|
|
|
|
|
|
|
|
| 72 |
except Exception as e:
|
| 73 |
st.error(f"Error reading {os.path.basename(f)}: {e}")
|
|
|
|
| 74 |
return pd.concat(dfs, ignore_index=True) if dfs else pd.DataFrame()
|
| 75 |
|
| 76 |
+
raw_posts_df = read_files(post_files + other_csv_files, 'post')
|
| 77 |
+
raw_comments_df = read_files(comment_files + txt_files, 'comment')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
|
|
|
|
| 79 |
processor = DataProcessor()
|
| 80 |
+
processed_posts_df = processor.process_all_data(raw_posts_df)
|
| 81 |
+
processed_comments_df = processor.process_all_data(raw_comments_df)
|
|
|
|
| 82 |
|
|
|
|
| 83 |
all_text_df = pd.concat([processed_posts_df, processed_comments_df], ignore_index=True)
|
| 84 |
+
if all_text_df.empty: return pd.DataFrame(), pd.DataFrame(), None
|
| 85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
insight_gen = InsightsGenerator()
|
| 87 |
+
insights = insight_gen.generate_all_insights(posts_df=processed_posts_df, all_text_df=all_text_df)
|
|
|
|
|
|
|
|
|
|
| 88 |
|
| 89 |
return processed_posts_df, all_text_df, insights
|
| 90 |
|
| 91 |
# --- Main Application ---
|
| 92 |
st.title("🏦 Prime Bank Social Media Analytics")
|
| 93 |
|
|
|
|
| 94 |
posts_df, all_text_df, insights = load_and_process_data()
|
| 95 |
|
| 96 |
if all_text_df.empty or insights is None:
|
| 97 |
+
st.error("No data files found or processed in 'data/uploads'. Please add CSV or TXT files.")
|
| 98 |
+
st.info("Ensure filenames contain 'post' for post data or 'comment' for comment data for best results.")
|
| 99 |
st.stop()
|
| 100 |
|
| 101 |
# Filter for Prime Bank mentions
|
| 102 |
+
prime_posts_df = posts_df[posts_df['prime_mentions'] > 0].copy() if 'prime_mentions' in posts_df.columns else pd.DataFrame()
|
| 103 |
+
prime_all_text_df = all_text_df[all_text_df['prime_mentions'] > 0].copy() if 'prime_mentions' in all_text_df.columns else pd.DataFrame()
|
| 104 |
|
| 105 |
# --- KPI Section ---
|
| 106 |
+
st.header("📈 Prime Bank Key Performance Indicators")
|
| 107 |
+
total_mentions = all_text_df['prime_mentions'].sum()
|
|
|
|
| 108 |
total_posts_with_mentions = len(prime_posts_df)
|
| 109 |
+
new_metrics = create_summary_metrics(all_text_df)
|
| 110 |
+
|
| 111 |
+
kpi1, kpi2, kpi3, kpi4 = st.columns(4)
|
| 112 |
+
kpi1.metric("Total Mentions (Posts & Comments)", f"{int(total_mentions):,}")
|
| 113 |
+
kpi2.metric("Posts Mentioning Prime Bank", f"{total_posts_with_mentions:,}")
|
| 114 |
+
kpi3.metric("Bank Sentiment Score", new_metrics['Bank Sentiment Score'], help="Positive Mentions - Negative Mentions. A positive score is good.")
|
| 115 |
+
kpi4.metric("Engagement-Weighted Sentiment", new_metrics['Engagement-Weighted Sentiment'], help="A combined score of sentiment polarity and virality (likes, shares, etc.). Higher is better.")
|
|
|
|
| 116 |
st.markdown("---")
|
| 117 |
|
| 118 |
# --- Tabbed Interface ---
|
| 119 |
+
tab1, tab2, tab3, tab4, tab5 = st.tabs([
|
| 120 |
+
"Sentiment & Virality (Posts)",
|
| 121 |
+
"Emotion & Categories (All Text)",
|
| 122 |
+
"Strategic Overview",
|
| 123 |
+
"Action Items",
|
| 124 |
+
"Full Data View"
|
| 125 |
+
])
|
| 126 |
|
| 127 |
# --- Tab 1: Posts Only Analysis ---
|
| 128 |
with tab1:
|
| 129 |
st.header("Sentiment & Virality Analysis (Posts Only)")
|
|
|
|
| 130 |
if not prime_posts_df.empty:
|
| 131 |
col1, col2 = st.columns([1, 2])
|
| 132 |
with col1:
|
| 133 |
st.subheader("Sentiment of Posts")
|
| 134 |
st.plotly_chart(create_sentiment_pie(prime_posts_df), use_container_width=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
with col2:
|
| 136 |
st.subheader("Top Viral Posts")
|
| 137 |
+
viral_chart = create_viral_posts_chart(prime_posts_df)
|
| 138 |
+
if viral_chart:
|
| 139 |
+
st.plotly_chart(viral_chart, use_container_width=True)
|
| 140 |
+
else:
|
| 141 |
+
st.info("No viral score data (likes, shares, comments) found to display chart.")
|
| 142 |
else:
|
| 143 |
st.info("No posts mentioning Prime Bank were found in the data.")
|
| 144 |
|
| 145 |
+
# --- Tab 2: All Text Analysis ---
|
| 146 |
with tab2:
|
| 147 |
st.header("Emotion & Category Analysis (Posts & Comments)")
|
|
|
|
| 148 |
if not prime_all_text_df.empty:
|
| 149 |
col1, col2 = st.columns(2)
|
| 150 |
with col1:
|
| 151 |
st.subheader("Emotion Detection")
|
| 152 |
st.plotly_chart(create_emotion_bar(prime_all_text_df), use_container_width=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 153 |
with col2:
|
| 154 |
st.subheader("Post & Comment Categories")
|
| 155 |
st.plotly_chart(create_category_donut(prime_all_text_df), use_container_width=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
else:
|
| 157 |
+
st.info("No text mentioning Prime Bank was found in the data.")
|
| 158 |
|
| 159 |
+
# --- Tab 3: Strategic Overview ---
|
| 160 |
with tab3:
|
| 161 |
+
st.header("Strategic Overview")
|
| 162 |
+
st.write("High-level insights into market position and geographic distribution.")
|
| 163 |
+
col1, col2 = st.columns(2)
|
| 164 |
+
with col1:
|
| 165 |
+
bank_comp_chart = create_bank_comparison_chart(all_text_df)
|
| 166 |
+
if bank_comp_chart:
|
| 167 |
+
st.plotly_chart(bank_comp_chart, use_container_width=True)
|
| 168 |
+
else:
|
| 169 |
+
st.info("Not enough data to compare bank mentions.")
|
| 170 |
+
with col2:
|
| 171 |
+
geo_map = create_geolocation_map(all_text_df)
|
| 172 |
+
if geo_map:
|
| 173 |
+
st.plotly_chart(geo_map, use_container_width=True)
|
| 174 |
+
else:
|
| 175 |
+
st.info("No 'location' column found in data to generate map.")
|
| 176 |
+
|
| 177 |
+
# --- Tab 4: Action Items ---
|
| 178 |
+
with tab4:
|
| 179 |
+
st.header("Posts & Comments That Need Attention")
|
| 180 |
+
st.write("A prioritized list of negative or inquiry-based comments mentioning Prime Bank.")
|
| 181 |
+
|
| 182 |
+
if not prime_all_text_df.empty:
|
| 183 |
+
attention_df = prime_all_text_df[
|
| 184 |
+
(prime_all_text_df['sentiment'] == 'Negative') |
|
| 185 |
+
(prime_all_text_df['category'].isin(['Complaint', 'Inquiry']))
|
| 186 |
+
].copy()
|
| 187 |
+
|
| 188 |
+
if not attention_df.empty:
|
| 189 |
+
attention_df['priority_score'] = (
|
| 190 |
+
(attention_df['sentiment'] == 'Negative') * 2 +
|
| 191 |
+
(attention_df['category'] == 'Complaint') * 1.5 +
|
| 192 |
+
(attention_df['category'] == 'Inquiry') * 1
|
| 193 |
+
)
|
| 194 |
+
attention_df.sort_values(by='priority_score', ascending=False, inplace=True)
|
| 195 |
+
|
| 196 |
+
st.dataframe(attention_df[[
|
| 197 |
+
'text', 'sentiment', 'category', 'emotion', 'viral_score'
|
| 198 |
+
]], use_container_width=True)
|
| 199 |
+
else:
|
| 200 |
+
st.success("✅ No negative comments or inquiries found that require attention.")
|
| 201 |
+
else:
|
| 202 |
+
st.info("No data mentioning Prime Bank to analyze for action items.")
|
| 203 |
+
|
| 204 |
+
# --- Tab 5: Data View ---
|
| 205 |
+
with tab5:
|
| 206 |
st.header("Explore the Raw and Processed Data")
|
|
|
|
| 207 |
if not posts_df.empty:
|
| 208 |
st.subheader("Processed Posts Data")
|
| 209 |
+
st.dataframe(posts_df.head(100))
|
| 210 |
+
|
| 211 |
+
comments_df = all_text_df[all_text_df['file_type'] == 'comment'] if 'file_type' in all_text_df.columns else pd.DataFrame()
|
| 212 |
+
if not comments_df.empty:
|
| 213 |
st.subheader("Processed Comments & Reviews Data")
|
| 214 |
+
st.dataframe(comments_df.head(100))
|
|
|
create_test_data.py
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
|
|
| 1 |
import pandas as pd
|
|
|
|
| 2 |
|
| 3 |
-
# Create
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
sample_data = pd.DataFrame({
|
| 5 |
'text': [
|
| 6 |
'Prime Bank has the best customer service! Love their mobile app.',
|
|
@@ -12,24 +19,38 @@ sample_data = pd.DataFrame({
|
|
| 12 |
'Prime Bank online banking is confusing.',
|
| 13 |
'Excellent service at Prime Bank downtown branch!',
|
| 14 |
'Prime Bank charged me hidden fees. Very disappointed.',
|
| 15 |
-
'Can someone explain Prime Bank credit card benefits?'
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
],
|
| 17 |
-
'date': pd.
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
})
|
| 21 |
|
| 22 |
-
# Save as
|
| 23 |
-
|
| 24 |
-
|
|
|
|
| 25 |
|
| 26 |
-
# Create sample TXT file
|
| 27 |
reviews = """Prime Bank provides exceptional service. Highly recommend!
|
| 28 |
Terrible experience with Prime Bank customer support.
|
| 29 |
Prime Bank mobile app keeps crashing. Please fix this!
|
| 30 |
Love the new features in Prime Bank online banking.
|
| 31 |
-
Why does Prime Bank charge so many fees?
|
|
|
|
| 32 |
|
| 33 |
-
with
|
|
|
|
|
|
|
| 34 |
f.write(reviews)
|
| 35 |
-
print("✅ Created
|
|
|
|
| 1 |
+
# create_test.py
|
| 2 |
import pandas as pd
|
| 3 |
+
import os
|
| 4 |
|
| 5 |
+
# --- Create a directory for uploads if it doesn't exist ---
|
| 6 |
+
UPLOAD_DIR = 'data/uploads'
|
| 7 |
+
if not os.path.exists(UPLOAD_DIR):
|
| 8 |
+
os.makedirs(UPLOAD_DIR)
|
| 9 |
+
|
| 10 |
+
# --- Create sample POSTS CSV data ---
|
| 11 |
sample_data = pd.DataFrame({
|
| 12 |
'text': [
|
| 13 |
'Prime Bank has the best customer service! Love their mobile app.',
|
|
|
|
| 19 |
'Prime Bank online banking is confusing.',
|
| 20 |
'Excellent service at Prime Bank downtown branch!',
|
| 21 |
'Prime Bank charged me hidden fees. Very disappointed.',
|
| 22 |
+
'Can someone explain Prime Bank credit card benefits?',
|
| 23 |
+
'Heard good things about Eastern Bank, but Prime Bank is still my go-to.',
|
| 24 |
+
'Comparing BRAC Bank and Prime Bank for a new account.',
|
| 25 |
+
'City Bank has a nice app, but their service is slow.',
|
| 26 |
+
'DBBL needs to improve their network coverage.',
|
| 27 |
],
|
| 28 |
+
'date': pd.to_datetime(['2024-01-01', '2024-01-02', '2024-01-03', '2024-01-04', '2024-01-05',
|
| 29 |
+
'2024-01-06', '2024-01-07', '2024-01-08', '2024-01-09', '2024-01-10',
|
| 30 |
+
'2024-01-11', '2024-01-12', '2024-01-13', '2024-01-14']),
|
| 31 |
+
'likes': [45, 12, 5, 89, 34, 8, 15, 67, 102, 22, 18, 33, 50, 41],
|
| 32 |
+
'shares': [5, 2, 1, 15, 8, 1, 3, 12, 25, 4, 2, 6, 9, 7],
|
| 33 |
+
'comments': [10, 3, 2, 22, 9, 3, 5, 14, 30, 5, 4, 8, 11, 10],
|
| 34 |
+
'location': ['Dhaka', 'Chittagong', 'Dhaka', 'Sylhet', 'Dhaka', 'Rajshahi',
|
| 35 |
+
'Dhaka', 'Chittagong', 'Sylhet', 'Dhaka', 'Dhaka', 'Chittagong',
|
| 36 |
+
'Dhaka', 'Sylhet'] # <-- NEW LOCATION COLUMN
|
| 37 |
})
|
| 38 |
|
| 39 |
+
# Save as a file with "post" in the name
|
| 40 |
+
posts_filepath = os.path.join(UPLOAD_DIR, 'test_social_media_posts.csv')
|
| 41 |
+
sample_data.to_csv(posts_filepath, index=False)
|
| 42 |
+
print(f"✅ Created {posts_filepath}")
|
| 43 |
|
| 44 |
+
# --- Create sample COMMENTS TXT file ---
|
| 45 |
reviews = """Prime Bank provides exceptional service. Highly recommend!
|
| 46 |
Terrible experience with Prime Bank customer support.
|
| 47 |
Prime Bank mobile app keeps crashing. Please fix this!
|
| 48 |
Love the new features in Prime Bank online banking.
|
| 49 |
+
Why does Prime Bank charge so many fees?
|
| 50 |
+
BRAC Bank is also a good option for students."""
|
| 51 |
|
| 52 |
+
# Save as a file with "comment" in the name
|
| 53 |
+
comments_filepath = os.path.join(UPLOAD_DIR, 'test_review_comments.txt')
|
| 54 |
+
with open(comments_filepath, 'w') as f:
|
| 55 |
f.write(reviews)
|
| 56 |
+
print(f"✅ Created {comments_filepath}")
|
data/uploads/Prime_bank_Review_posts_manual.txt
DELETED
|
@@ -1,1056 +0,0 @@
|
|
| 1 |
-
Post 1:
|
| 2 |
-
|
| 3 |
-
Prime Bank Youth Account: A Detailed Review of My Experience
|
| 4 |
-
📅 Account Opening Journey:
|
| 5 |
-
I opened my Prime Bank Youth Account at the Mohakhali Branch on 29th December 2024. The process was smooth, requiring an initial deposit of 1,000 BDT to activate the account. Within 4 days, I received my cheque book, and by 7 January, my debit card was in hand.
|
| 6 |
-
🎨 Debit Card Design:
|
| 7 |
-
The debit card is fantastic—sleek, modern, and a perfect 10/10. The added NFC support is a standout feature for contactless payments.
|
| 8 |
-
📌 Who Can Apply?
|
| 9 |
-
This account is perfect for Bangladeshi students aged 18 to 25, offering great savings options with modern banking benefits.
|
| 10 |
-
Key Features of the Prime Bank Youth Account:
|
| 11 |
-
1. Interest Benefits:
|
| 12 |
-
4% attractive interest on savings.
|
| 13 |
-
Daily interest calculation with half-yearly payouts, helping your funds grow steadily.
|
| 14 |
-
2. Free Banking Facilities:
|
| 15 |
-
No account maintenance fee, maximizing your savings.
|
| 16 |
-
Free Debit Card and the first Cheque Book provided at no cost.
|
| 17 |
-
Complimentary access to MyPrime Internet Banking and SMS alerts.
|
| 18 |
-
3. Initial Deposit Requirement:
|
| 19 |
-
Open the account with a minimum deposit of just 1,000 BDT, making it affordable for students.
|
| 20 |
-
Required Documents for Opening the Account at Mohakhali Branch:
|
| 21 |
-
1. Identity Proof:
|
| 22 |
-
NID, Passport, or Birth Certificate for both the applicant and nominee.
|
| 23 |
-
2. Address Proof:
|
| 24 |
-
A recent utility bill (electricity, water, telephone, etc.).
|
| 25 |
-
3. Income/Profession Proof:
|
| 26 |
-
Valid Student ID or certification from your educational institution.
|
| 27 |
-
Supporting documents for the parent’s or guardian’s source of funds (if applicable).
|
| 28 |
-
4. Other Documents:
|
| 29 |
-
2 passport-size photos of the applicant (self-attested).
|
| 30 |
-
1 passport-size photo of the nominee, attested by the account holder.
|
| 31 |
-
Proof of Tax Return Submission (PSR) & E-TIN Certificate .
|
| 32 |
-
#PrimeBank #YouthAccount #MohakhaliBranch #StudentBanking #SavingsAccount #ModernBanking #Bangladesh
|
| 33 |
-
Facebook
|
| 34 |
-
Facebook
|
| 35 |
-
Facebook
|
| 36 |
-
Facebook
|
| 37 |
-
Facebook
|
| 38 |
-
Facebook
|
| 39 |
-
Facebook
|
| 40 |
-
Facebook
|
| 41 |
-
Facebook
|
| 42 |
-
Facebook
|
| 43 |
-
Facebook
|
| 44 |
-
Hridoy Hasan
|
| 45 |
-
|
| 46 |
-
Top contributor
|
| 47 |
-
মিনিমাম ব্যালেন্স শূন্য করা যায়?
|
| 48 |
-
22w
|
| 49 |
-
Reply
|
| 50 |
-
See translation
|
| 51 |
-
Share
|
| 52 |
-
Hasin Abrar Shams
|
| 53 |
-
|
| 54 |
-
All-star contributor
|
| 55 |
-
Dual currency card?
|
| 56 |
-
22w
|
| 57 |
-
Reply
|
| 58 |
-
Share
|
| 59 |
-
Fabiha Nawrin
|
| 60 |
-
|
| 61 |
-
All-star contributor
|
| 62 |
-
Ulility bill ki must lagbei?
|
| 63 |
-
22w
|
| 64 |
-
Reply
|
| 65 |
-
Share
|
| 66 |
-
Robiul Islam
|
| 67 |
-
Fabiha NawrinNo
|
| 68 |
-
22w
|
| 69 |
-
Reply
|
| 70 |
-
Share
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
MD Rakib Khan
|
| 74 |
-
·
|
| 75 |
-
NFC মানে কি?
|
| 76 |
-
22w
|
| 77 |
-
Reply
|
| 78 |
-
See translation
|
| 79 |
-
Share
|
| 80 |
-
Hridoy Hossen
|
| 81 |
-
Bhai eta ki dual currency masterd card?
|
| 82 |
-
22w
|
| 83 |
-
Reply
|
| 84 |
-
Share
|
| 85 |
-
Eshtiak Ahmed
|
| 86 |
-
|
| 87 |
-
Rising contributor
|
| 88 |
-
Foysal Hossain Bro, I reached out to Prime Bank through the Call center. The representative told me I had to attach my passport copy to apply for a dual currency card. I'm not talking about dollar endorsement. She told me I had to have a passport before applying. Is that mandatory?
|
| 89 |
-
21w
|
| 90 |
-
Reply
|
| 91 |
-
Share
|
| 92 |
-
Edited
|
| 93 |
-
Aiden N
|
| 94 |
-
initial deposit er tk ki block kora thake ?
|
| 95 |
-
22w
|
| 96 |
-
Reply
|
| 97 |
-
See translation
|
| 98 |
-
Share
|
| 99 |
-
Sadik Hasan Mubin
|
| 100 |
-
vai ac kholar pore app on korsi, ekhn card er jonno to kono msg pai nai, apni kono msg paisilen je card bananor process choltese emn kisu?
|
| 101 |
-
22w
|
| 102 |
-
Reply
|
| 103 |
-
See translation
|
| 104 |
-
Share
|
| 105 |
-
Arman Hossain
|
| 106 |
-
Does this support dual currency?
|
| 107 |
-
22w
|
| 108 |
-
Reply
|
| 109 |
-
Share
|
| 110 |
-
Sabbir Hossen
|
| 111 |
-
Nspb cost?
|
| 112 |
-
22w
|
| 113 |
-
Reply
|
| 114 |
-
Share
|
| 115 |
-
Ashikur Rahman
|
| 116 |
-
|
| 117 |
-
Top contributor
|
| 118 |
-
·
|
| 119 |
-
SA MI লিবি? সব ফ্রি... ২৫বছর বয়স পর্যন্ত...
|
| 120 |
-
22w
|
| 121 |
-
Reply
|
| 122 |
-
See translation
|
| 123 |
-
Share
|
| 124 |
-
Sheikh Ahmed Ali
|
| 125 |
-
Prime Bank Jatrabari Branch এ কেউ আছেন?
|
| 126 |
-
22w
|
| 127 |
-
Reply
|
| 128 |
-
See translation
|
| 129 |
-
Share
|
| 130 |
-
Proteek Hossain
|
| 131 |
-
|
| 132 |
-
Top contributor
|
| 133 |
-
Is this dual currency?
|
| 134 |
-
22w
|
| 135 |
-
Reply
|
| 136 |
-
Share
|
| 137 |
-
প্রচুর পড়তে হবে
|
| 138 |
-
ভাই এটা দিয়ে কি রেমিট্যান্স রিসিভ করা যাবে??
|
| 139 |
-
20w
|
| 140 |
-
Reply
|
| 141 |
-
See translation
|
| 142 |
-
Share
|
| 143 |
-
Md. Yeahea Sayeed
|
| 144 |
-
|
| 145 |
-
Rising contributor
|
| 146 |
-
The card design is😍
|
| 147 |
-
22w
|
| 148 |
-
Reply
|
| 149 |
-
Share
|
| 150 |
-
Rakibul Islam
|
| 151 |
-
Student id card expired hoye gese, akhn kivabe khulbo?
|
| 152 |
-
20w
|
| 153 |
-
Reply
|
| 154 |
-
See translation
|
| 155 |
-
Share
|
| 156 |
-
Shepon Sarker
|
| 157 |
-
·
|
| 158 |
-
👍
|
| 159 |
-
22w
|
| 160 |
-
Reply
|
| 161 |
-
Share
|
| 162 |
-
Sohag Hossain
|
| 163 |
-
|
| 164 |
-
All-star contributor
|
| 165 |
-
kuno initial deposit nai hoyto.amake branch theke bolcilo je kuno amount deposit korte.
|
| 166 |
-
22w
|
| 167 |
-
Reply
|
| 168 |
-
See translation
|
| 169 |
-
Share
|
| 170 |
-
Kohinoor Haque
|
| 171 |
-
Risan last er ta ki bollo? E-TIN & tax submission?
|
| 172 |
-
21w
|
| 173 |
-
Reply
|
| 174 |
-
See translation
|
| 175 |
-
Share
|
| 176 |
-
Naiem Newaz
|
| 177 |
-
|
| 178 |
-
Rising contributor
|
| 179 |
-
Atm charge ?
|
| 180 |
-
22w
|
| 181 |
-
Reply
|
| 182 |
-
Share
|
| 183 |
-
Md Mehrab
|
| 184 |
-
Card পেতে কতদিন লাগছে??
|
| 185 |
-
22w
|
| 186 |
-
Reply
|
| 187 |
-
See translation
|
| 188 |
-
Share
|
| 189 |
-
Yousuf Abdullah Harun
|
| 190 |
-
Is this a duel currency mastercard ?
|
| 191 |
-
22w
|
| 192 |
-
Reply
|
| 193 |
-
Share
|
| 194 |
-
Sadaf Ahmed
|
| 195 |
-
অনলাইনে এপ্লাই করা যায় ?
|
| 196 |
-
22w
|
| 197 |
-
Reply
|
| 198 |
-
See translation
|
| 199 |
-
Share
|
| 200 |
-
Iftekhar Uddin Mullick
|
| 201 |
-
|
| 202 |
-
Top contributor
|
| 203 |
-
Tax return? Is this City Bank v2?
|
| 204 |
-
No photo description available.
|
| 205 |
-
22w
|
| 206 |
-
Reply
|
| 207 |
-
Share
|
| 208 |
-
Samiul Anan
|
| 209 |
-
Initial deposit 500 BDT not 1000 BDT
|
| 210 |
-
21w
|
| 211 |
-
Reply
|
| 212 |
-
Share
|
| 213 |
-
Sabbir Chowdhury
|
| 214 |
-
Income sources ki mandatory Ditey hobe 😳
|
| 215 |
-
22w
|
| 216 |
-
Reply
|
| 217 |
-
Share
|
| 218 |
-
Risan
|
| 219 |
-
|
| 220 |
-
All-star contributor
|
| 221 |
-
All is correct but 1000 taka deposite kora baddhota mulok noi..apni 1 takao deposit kore account khulte prben..abr deposit na korle account actve hbe..ami nije koreci
|
| 222 |
-
22w
|
| 223 |
-
Reply
|
| 224 |
-
See translation
|
| 225 |
-
Share
|
| 226 |
-
Edited
|
| 227 |
-
Parag Mollick
|
| 228 |
-
|
| 229 |
-
All-star contributor
|
| 230 |
-
vai address verify a kono letter ascilo?
|
| 231 |
-
22w
|
| 232 |
-
Reply
|
| 233 |
-
See translation
|
| 234 |
-
Share
|
| 235 |
-
Edited
|
| 236 |
-
Kazi Mohammed Shakil
|
| 237 |
-
|
| 238 |
-
Top contributor
|
| 239 |
-
·
|
| 240 |
-
Best bank in Bangladesh ✌️
|
| 241 |
-
22w
|
| 242 |
-
Reply
|
| 243 |
-
Share
|
| 244 |
-
Rayat Fahmid
|
| 245 |
-
|
| 246 |
-
Rising contributor
|
| 247 |
-
১০০০ টাকা প্রাথমিক জমা, ওইটা কি ব্লক মানি হিসেবে জমা থাকে নাকি পরে বের করা যায়।
|
| 248 |
-
22w
|
| 249 |
-
Reply
|
| 250 |
-
See translation
|
| 251 |
-
Share
|
| 252 |
-
তাওহীদ ইসলাম শাওন
|
| 253 |
-
|
| 254 |
-
Top contributor
|
| 255 |
-
Card free?
|
| 256 |
-
17w
|
| 257 |
-
Reply
|
| 258 |
-
Share
|
| 259 |
-
Shakhawat Hossain
|
| 260 |
-
১ বছর পর থেকে নাকি চার্জ কাটে?
|
| 261 |
-
22w
|
| 262 |
-
Reply
|
| 263 |
-
See translation
|
| 264 |
-
Share
|
| 265 |
-
Foysal Hossain
|
| 266 |
-
Author
|
| 267 |
-
|
| 268 |
-
All-star contributor
|
| 269 |
-
Shakhawat Hossain আমি যতটা জানি ১৮ বছর থেকে ২৫ বছর বয়স পর্যন্ত এটা ফ্রি ।
|
| 270 |
-
22w
|
| 271 |
-
Reply
|
| 272 |
-
See translation
|
| 273 |
-
Share
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
Rakibul Islam
|
| 277 |
-
Inbox check
|
| 278 |
-
20w
|
| 279 |
-
Reply
|
| 280 |
-
Share
|
| 281 |
-
Ahmed Tarek Dipto
|
| 282 |
-
Savings account er interest calculation ta keu ektu bujhiye bolben???
|
| 283 |
-
22w
|
| 284 |
-
Reply
|
| 285 |
-
See translation
|
| 286 |
-
Share
|
| 287 |
-
Jahidul Islam
|
| 288 |
-
|
| 289 |
-
Top contributor
|
| 290 |
-
Foysal Hossain vai amr jonmo nivondhon dea ki korte parvo youth account
|
| 291 |
-
22w
|
| 292 |
-
Reply
|
| 293 |
-
See translation
|
| 294 |
-
Share
|
| 295 |
-
Asif Mahmud Jashim
|
| 296 |
-
|
| 297 |
-
Top contributor
|
| 298 |
-
ভাই এটা কি ইন্টারন্যাশনাল
|
| 299 |
-
ডেবিট কার্ড সাপোর্ট করে?
|
| 300 |
-
বর্তমান সময়ের সেরা ব্যাংক বাংলাদেশের।
|
| 301 |
-
22w
|
| 302 |
-
Reply
|
| 303 |
-
See translation
|
| 304 |
-
Share
|
| 305 |
-
Edited
|
| 306 |
-
তাওহীদ ইসলাম শাওন
|
| 307 |
-
|
| 308 |
-
Top contributor
|
| 309 |
-
prime bank Apply for Virtual Cards free?
|
| 310 |
-
17w
|
| 311 |
-
Reply
|
| 312 |
-
Share
|
| 313 |
-
Nasrullah Abid Foraze
|
| 314 |
-
Tax return er kagoj ki mandatory?
|
| 315 |
-
22w
|
| 316 |
-
Reply
|
| 317 |
-
See translation
|
| 318 |
-
Share
|
| 319 |
-
Wahid Mahmud
|
| 320 |
-
ভাই অ্যাপ এ একাউন্টে হিসেবে কোন একাউন্ট লিখা আসে?
|
| 321 |
-
19w
|
| 322 |
-
Reply
|
| 323 |
-
See translation
|
| 324 |
-
Share
|
| 325 |
-
Foysal Hossain
|
| 326 |
-
Author
|
| 327 |
-
|
| 328 |
-
All-star contributor
|
| 329 |
-
Wahid Mahmud Youth Account
|
| 330 |
-
18w
|
| 331 |
-
Reply
|
| 332 |
-
Share
|
| 333 |
-
Edited
|
| 334 |
-
Foysal Hossain
|
| 335 |
-
Author
|
| 336 |
-
|
| 337 |
-
All-star contributor
|
| 338 |
-
No photo description available.
|
| 339 |
-
18w
|
| 340 |
-
Reply
|
| 341 |
-
Share
|
| 342 |
-
|
| 343 |
-
Post 2:
|
| 344 |
-
|
| 345 |
-
Need a review of prime Bank ! How is their customer support service ? And is their app convenient for internet banking? Need overall review please.
|
| 346 |
-
Facebook
|
| 347 |
-
Facebook
|
| 348 |
-
Facebook
|
| 349 |
-
Facebook
|
| 350 |
-
Facebook
|
| 351 |
-
Facebook
|
| 352 |
-
Facebook
|
| 353 |
-
Facebook
|
| 354 |
-
Facebook
|
| 355 |
-
Facebook
|
| 356 |
-
Facebook
|
| 357 |
-
Maruf Ahmed
|
| 358 |
-
Satisfied 👍🏻
|
| 359 |
-
13w
|
| 360 |
-
Reply
|
| 361 |
-
Share
|
| 362 |
-
Amzad
|
| 363 |
-
|
| 364 |
-
All-star contributor
|
| 365 |
-
Very good
|
| 366 |
-
13w
|
| 367 |
-
Reply
|
| 368 |
-
Share
|
| 369 |
-
|
| 370 |
-
Post 3:
|
| 371 |
-
Prime Bank এর credit card এর review জানতে চাই।
|
| 372 |
-
See translation
|
| 373 |
-
Facebook
|
| 374 |
-
Facebook
|
| 375 |
-
Facebook
|
| 376 |
-
Facebook
|
| 377 |
-
Facebook
|
| 378 |
-
Facebook
|
| 379 |
-
Facebook
|
| 380 |
-
Facebook
|
| 381 |
-
Facebook
|
| 382 |
-
Facebook
|
| 383 |
-
Facebook
|
| 384 |
-
Mn Afsar
|
| 385 |
-
Good service.
|
| 386 |
-
2y
|
| 387 |
-
Reply
|
| 388 |
-
Share
|
| 389 |
-
Edited
|
| 390 |
-
Syed Faizul Ahsan Shameem
|
| 391 |
-
·
|
| 392 |
-
Good
|
| 393 |
-
2y
|
| 394 |
-
Reply
|
| 395 |
-
Share
|
| 396 |
-
Afroza Rupa
|
| 397 |
-
Valo
|
| 398 |
-
2y
|
| 399 |
-
Reply
|
| 400 |
-
See translation
|
| 401 |
-
Share
|
| 402 |
-
Tashniha Jiniya
|
| 403 |
-
Dbbl nite paren
|
| 404 |
-
2y
|
| 405 |
-
Reply
|
| 406 |
-
See translation
|
| 407 |
-
Share
|
| 408 |
-
Abu Rayhan
|
| 409 |
-
EBL is the best
|
| 410 |
-
2y
|
| 411 |
-
Reply
|
| 412 |
-
Share
|
| 413 |
-
Mohammad Moshiur Rahman Badhon
|
| 414 |
-
Good
|
| 415 |
-
2y
|
| 416 |
-
Reply
|
| 417 |
-
Share
|
| 418 |
-
M.A. Kaium
|
| 419 |
-
|
| 420 |
-
Top contributor
|
| 421 |
-
·
|
| 422 |
-
সাধারণ ব্যবহারকারী হিসেবে আমার কাছে ভালোই লেগেছে।
|
| 423 |
-
শুধুমাত্র ভ্যাটের টাকা দিয়ে সারা বছর কার্ড ইউজ করতে পারছি।
|
| 424 |
-
2y
|
| 425 |
-
Reply
|
| 426 |
-
See translation
|
| 427 |
-
Share
|
| 428 |
-
MD Rubel Sheikh
|
| 429 |
-
ab try korte paren
|
| 430 |
-
2y
|
| 431 |
-
Reply
|
| 432 |
-
See translation
|
| 433 |
-
Share
|
| 434 |
-
MD Rubel Sheikh
|
| 435 |
-
vlo na
|
| 436 |
-
2y
|
| 437 |
-
Reply
|
| 438 |
-
See translation
|
| 439 |
-
Share
|
| 440 |
-
Sajjad Hossain
|
| 441 |
-
Don't have NFC feature.
|
| 442 |
-
2y
|
| 443 |
-
Reply
|
| 444 |
-
Share
|
| 445 |
-
Fahima Akter
|
| 446 |
-
Valo na..one bank er ta dekhte paren..tader service akhn valo
|
| 447 |
-
2y
|
| 448 |
-
Reply
|
| 449 |
-
See translation
|
| 450 |
-
Share
|
| 451 |
-
Al Ib Rahat
|
| 452 |
-
Bad things:They don't waive the VAT amount of annual fee despite fulfilling the requirements. In statement, you won't see any reward point information.
|
| 453 |
-
Good things:Don't charge on add money. Usually have cashback/discount offers on daraz, foodpanda, supershops (during Eid)
|
| 454 |
-
2y
|
| 455 |
-
Reply
|
| 456 |
-
Share
|
| 457 |
-
Kaif Hossain
|
| 458 |
-
Amex UCB Dutch bangla
|
| 459 |
-
2y
|
| 460 |
-
Reply
|
| 461 |
-
Share
|
| 462 |
-
Neel Hossain
|
| 463 |
-
|
| 464 |
-
Top contributor
|
| 465 |
-
·
|
| 466 |
-
MTB দেখেন ওদের রিওয়ার্ড পয়েন্ট ভালো অন্যান্য দের চেয়ে।
|
| 467 |
-
2y
|
| 468 |
-
Reply
|
| 469 |
-
See translation
|
| 470 |
-
Share
|
| 471 |
-
Asif Mahmud Jashim
|
| 472 |
-
|
| 473 |
-
Top contributor
|
| 474 |
-
আপনার ইচ্ছা হলে নেন Prime bank ভাল মানের ব্যাংক এই গ্রুপে সবাই বলবে EBL MTB
|
| 475 |
-
|
| 476 |
-
Post 4:
|
| 477 |
-
|
| 478 |
-
Khairul Islam Bablu ·
|
| 479 |
-
nerdtSopso
|
| 480 |
-
4
|
| 481 |
-
921
|
| 482 |
-
|
| 483 |
-
5uc4
|
| 484 |
-
1
|
| 485 |
-
74
|
| 486 |
-
8
|
| 487 |
-
90
|
| 488 |
-
J
|
| 489 |
-
0itm64fl
|
| 490 |
-
a
|
| 491 |
-
70
|
| 492 |
-
|
| 493 |
-
t81
|
| 494 |
-
t
|
| 495 |
-
n
|
| 496 |
-
:
|
| 497 |
-
5
|
| 498 |
-
|
| 499 |
-
3mc2hl68
|
| 500 |
-
e
|
| 501 |
-
0h
|
| 502 |
-
u
|
| 503 |
-
0
|
| 504 |
-
t
|
| 505 |
-
·
|
| 506 |
-
আচ্ছা বর্তমানে prime bank এ কি Savings account এ এমন same color এর Visa/Mastercard দেয় তারা White Color এর? অথবা অন্য কোনো Bank এ এমন White color Mastercard Debit দেয় কেউ?
|
| 507 |
-
©️ Pic টা আরেকজন এর।
|
| 508 |
-
See translation
|
| 509 |
-
Facebook
|
| 510 |
-
Facebook
|
| 511 |
-
Facebook
|
| 512 |
-
Facebook
|
| 513 |
-
Facebook
|
| 514 |
-
Facebook
|
| 515 |
-
Facebook
|
| 516 |
-
Facebook
|
| 517 |
-
Facebook
|
| 518 |
-
Facebook
|
| 519 |
-
Facebook
|
| 520 |
-
Dr. Md. Faisal Ahmed
|
| 521 |
-
|
| 522 |
-
Rising contributor
|
| 523 |
-
EBL sharetrip mastercard
|
| 524 |
-
1w
|
| 525 |
-
Reply
|
| 526 |
-
Share
|
| 527 |
-
Zia Uddin Jewel
|
| 528 |
-
Same card e dey
|
| 529 |
-
1w
|
| 530 |
-
Reply
|
| 531 |
-
Share
|
| 532 |
-
Muttaqinur Ashim
|
| 533 |
-
|
| 534 |
-
Top contributor
|
| 535 |
-
Aita youth account er sathe dey. Normal savings account e alada hobe hoytoh.
|
| 536 |
-
|
| 537 |
-
Post 5:
|
| 538 |
-
1) Eastern Bank
|
| 539 |
-
2) Mutual Trust Bank
|
| 540 |
-
3) The Premier Bank
|
| 541 |
-
4) Prime Bank
|
| 542 |
-
এই ৪ টা ব্যাংকের মধ্যে কোনটা ভালো হবে? এই ৪টার মধ্যে কোন ব্যাংক সেইফ আছে?
|
| 543 |
-
See translation
|
| 544 |
-
Facebook
|
| 545 |
-
Facebook
|
| 546 |
-
Facebook
|
| 547 |
-
Facebook
|
| 548 |
-
Facebook
|
| 549 |
-
Facebook
|
| 550 |
-
Facebook
|
| 551 |
-
Facebook
|
| 552 |
-
Facebook
|
| 553 |
-
Facebook
|
| 554 |
-
Facebook
|
| 555 |
-
Md. Jewel Rana
|
| 556 |
-
যদি সবচেয়ে বেশি নিরাপত্তা খোঁজেন তাহলে সোনালী ব্যাংক৷ আর আপনার দেওয়া চারটি ব্যাংকই ভালো
|
| 557 |
-
3h
|
| 558 |
-
Reply
|
| 559 |
-
See translation
|
| 560 |
-
Share
|
| 561 |
-
Akash Das Jeet
|
| 562 |
-
Prime green Zone bank
|
| 563 |
-
22h
|
| 564 |
-
Reply
|
| 565 |
-
Share
|
| 566 |
-
Zamil D M
|
| 567 |
-
Avoid premier
|
| 568 |
-
21h
|
| 569 |
-
Reply
|
| 570 |
-
Share
|
| 571 |
-
WahiduZzaman Shifat
|
| 572 |
-
Sob gula e safe
|
| 573 |
-
Jta kache apnr location er and branch beshi oi bank a account koren..
|
| 574 |
-
23h
|
| 575 |
-
Reply
|
| 576 |
-
See translation
|
| 577 |
-
Share
|
| 578 |
-
Mashudur Rahman Rakib
|
| 579 |
-
Prime
|
| 580 |
-
17h
|
| 581 |
-
Reply
|
| 582 |
-
Share
|
| 583 |
-
Obydul Kader Masud
|
| 584 |
-
Prime Bank
|
| 585 |
-
20h
|
| 586 |
-
Reply
|
| 587 |
-
Share
|
| 588 |
-
Zahangir Alam
|
| 589 |
-
|
| 590 |
-
Rising contributor
|
| 591 |
-
prime bank
|
| 592 |
-
22h
|
| 593 |
-
Reply
|
| 594 |
-
Share
|
| 595 |
-
Md Noyon Islam
|
| 596 |
-
সব ব্যাংক ই সেফ...
|
| 597 |
-
16h
|
| 598 |
-
Reply
|
| 599 |
-
See translation
|
| 600 |
-
Share
|
| 601 |
-
MD Rony
|
| 602 |
-
|
| 603 |
-
Rising contributor
|
| 604 |
-
Ebl
|
| 605 |
-
13h
|
| 606 |
-
Reply
|
| 607 |
-
Share
|
| 608 |
-
Shuaib Ahmad
|
| 609 |
-
·
|
| 610 |
-
আমি অনেকদিন যাবত প্রাইমের গ্রাহক,আমার কাছে ব্যাক্তিগত ভাবে Prime Bank খুবই লাগছে,তাদের স্টাফদের ব্যাবহার, সার্ভিস, my prime apps, কার্ড সব কিছু মিলিয়ে।
|
| 611 |
-
16h
|
| 612 |
-
Reply
|
| 613 |
-
See translation
|
| 614 |
-
Share
|
| 615 |
-
Kamrul MH
|
| 616 |
-
Only ibbl , ucb and city safe
|
| 617 |
-
9h
|
| 618 |
-
Reply
|
| 619 |
-
Share
|
| 620 |
-
M.A. Hashem Minto
|
| 621 |
-
সব গুলো ভালো তবে সাভিস দেখে হিসাব খুলুন
|
| 622 |
-
15h
|
| 623 |
-
Reply
|
| 624 |
-
See translation
|
| 625 |
-
Share
|
| 626 |
-
Md Abrar Hossain
|
| 627 |
-
|
| 628 |
-
Top contributor
|
| 629 |
-
EBL
|
| 630 |
-
18h
|
| 631 |
-
Reply
|
| 632 |
-
Share
|
| 633 |
-
Tanim Ahmed Zakaria
|
| 634 |
-
Eastern 💥💥💥💥
|
| 635 |
-
19h
|
| 636 |
-
Reply
|
| 637 |
-
Share
|
| 638 |
-
Kamrul MH
|
| 639 |
-
4 ta bad
|
| 640 |
-
9h
|
| 641 |
-
Reply
|
| 642 |
-
Share
|
| 643 |
-
Chowdhury Rafiu Ahmed
|
| 644 |
-
|
| 645 |
-
Top contributor
|
| 646 |
-
All are safe
|
| 647 |
-
|
| 648 |
-
|
| 649 |
-
Post 6:
|
| 650 |
-
|
| 651 |
-
Prime Bank
|
| 652 |
-
এতো ADC CHARGE কেটে নেওয়ার কারণ কী?
|
| 653 |
-
See translation
|
| 654 |
-
Facebook
|
| 655 |
-
Facebook
|
| 656 |
-
Facebook
|
| 657 |
-
Facebook
|
| 658 |
-
Facebook
|
| 659 |
-
Facebook
|
| 660 |
-
Facebook
|
| 661 |
-
Facebook
|
| 662 |
-
Facebook
|
| 663 |
-
Facebook
|
| 664 |
-
Facebook
|
| 665 |
-
SA HA F
|
| 666 |
-
|
| 667 |
-
Rising contributor
|
| 668 |
-
Mastercard er charge katce, 575
|
| 669 |
-
21h
|
| 670 |
-
Reply
|
| 671 |
-
Share
|
| 672 |
-
Ashfiqur Rahman Asif
|
| 673 |
-
Manrainance charge ketese & vat
|
| 674 |
-
1d
|
| 675 |
-
Reply
|
| 676 |
-
Share
|
| 677 |
-
ডীপ স্টোরি
|
| 678 |
-
|
| 679 |
-
Top contributor
|
| 680 |
-
কথা বলুন সমাধান পাবেন
|
| 681 |
-
1d
|
| 682 |
-
Reply
|
| 683 |
-
See translation
|
| 684 |
-
Share
|
| 685 |
-
MD Tushar Aman
|
| 686 |
-
live chat e ask koren
|
| 687 |
-
|
| 688 |
-
|
| 689 |
-
Post 7:
|
| 690 |
-
|
| 691 |
-
Facebook
|
| 692 |
-
Facebook
|
| 693 |
-
Facebook
|
| 694 |
-
Facebook
|
| 695 |
-
Facebook
|
| 696 |
-
Facebook
|
| 697 |
-
Facebook
|
| 698 |
-
Facebook
|
| 699 |
-
Facebook
|
| 700 |
-
Facebook
|
| 701 |
-
Facebook
|
| 702 |
-
মোঃ হাবিবুর রহমান জিহাদ
|
| 703 |
-
onsSodetrph8
|
| 704 |
-
y
|
| 705 |
-
6a8gi7tt5
|
| 706 |
-
4
|
| 707 |
-
f84
|
| 708 |
-
1
|
| 709 |
-
93
|
| 710 |
-
M
|
| 711 |
-
ta1aciaagitm
|
| 712 |
-
a
|
| 713 |
-
mg3fual9t02h90ff
|
| 714 |
-
|
| 715 |
-
·
|
| 716 |
-
প্রাইম ব্যাংকের গাফিলতি ও গ্রাহক ভোগান্তি, প্রগতি স্বরণী শাখা
|
| 717 |
-
আসসালামু আলাইকুম
|
| 718 |
-
একাউন্ট খোলার ২০-২৫ দিন পরে চেক ও তারও ১সপ্তাহ পরে কার্ড পাই। সব ঠিকঠাক চলছিল কিন্তু কোনো লেনদেন করতে পারছিলাম না, কারণ হচ্ছে ওয়েলকাম লেটার পাইনি। ঠিক আছে, গেলাম শাখায় বললাম কোনো লেনদেন করতে পারছি না এবং কোনো লেটার পাইনি।তাদের সার্ভারে চ��ক করে বললো লেটার নাকি ৮/০৪/২৫ এ আমার ঠিকানায় পাঠিয়েছে। তখন ব্যাংক থেকে বললো বাসায় খোঁজ নিয়ে দেখেন। বাসায় খুজলাম কোনো লেটার আমার নামে আসে নাই। আবার আজ ব্যাংকে গেলাম,… See more
|
| 719 |
-
See translation
|
| 720 |
-
Facebook
|
| 721 |
-
Facebook
|
| 722 |
-
Facebook
|
| 723 |
-
Facebook
|
| 724 |
-
Facebook
|
| 725 |
-
Facebook
|
| 726 |
-
Facebook
|
| 727 |
-
Facebook
|
| 728 |
-
Facebook
|
| 729 |
-
Facebook
|
| 730 |
-
Facebook
|
| 731 |
-
Muhammad Alinur Islam
|
| 732 |
-
|
| 733 |
-
Top contributor
|
| 734 |
-
Prime bank er service asholei Ami onek Bhalo peyechi. And best for students who maintain youth account.
|
| 735 |
-
5w
|
| 736 |
-
Reply
|
| 737 |
-
See translation
|
| 738 |
-
Share
|
| 739 |
-
Mahin Chowdhury
|
| 740 |
-
|
| 741 |
-
Rising contributor
|
| 742 |
-
চেক বুক এবং কার্ড পেতে এক মাস লেগে যায়। যা খুবই দু:খজনক।
|
| 743 |
-
4w
|
| 744 |
-
Reply
|
| 745 |
-
See translation
|
| 746 |
-
Share
|
| 747 |
-
নোরাইজ নাইফ
|
| 748 |
-
Kiser letter, amr kase to kono latter ase nai
|
| 749 |
-
4w
|
| 750 |
-
Reply
|
| 751 |
-
See translation
|
| 752 |
-
Share
|
| 753 |
-
Mohammad Ashraful Alam
|
| 754 |
-
২০০৬ থেকে উনারদের গ্রাহক! ব্যবহার খুবই ভাল! অন্য ব্যাংক এর তুলনায় সার্ভিস অনেক ভাল! অফিসার গুলো ডিসেন্ট!
|
| 755 |
-
5w
|
| 756 |
-
Reply
|
| 757 |
-
See translation
|
| 758 |
-
Share
|
| 759 |
-
Shahriar Hossain Emon
|
| 760 |
-
|
| 761 |
-
Rising contributor
|
| 762 |
-
·
|
| 763 |
-
এইটা আসলে কুরিয়ার সার্ভিসের দোষ ভাই, আমি প্রাইমের কেউ নয় তবে সার্ভিস অনেক ভালো পেয়েছি, ব্যবহারও ভালো।
|
| 764 |
-
5w
|
| 765 |
-
Reply
|
| 766 |
-
See translation
|
| 767 |
-
Share
|
| 768 |
-
Akash Das Jeet
|
| 769 |
-
Prime youth best service paisi
|
| 770 |
-
4w
|
| 771 |
-
Reply
|
| 772 |
-
Share
|
| 773 |
-
Shariful Fahim
|
| 774 |
-
|
| 775 |
-
Rising contributor
|
| 776 |
-
Ata couriar er fault vai
|
| 777 |
-
5w
|
| 778 |
-
Reply
|
| 779 |
-
See translation
|
| 780 |
-
Share
|
| 781 |
-
Muttaqinur Ashim
|
| 782 |
-
|
| 783 |
-
Top contributor
|
| 784 |
-
Aita courier er fault. Bank er dosh nei. Tao toh apnake help korlo. Courier er rider er number diye dilo.
|
| 785 |
-
|
| 786 |
-
Post 8:
|
| 787 |
-
|
| 788 |
-
Prime youth:
|
| 789 |
-
প্রাইমের সাথে আছি ২০২৩ সাল থেকে। তখন শুধুমাত্র ১৮ বছরের নিচে স্টুডেন্ট একাউন্ট ছিলো, একাউন্ট ক্যাটাগরি- মাই ফার্স্ট একাউন্ট। ১৮+ youth account টা ২০২৪ এর মাঝামাঝি সময়ে বের হয়েছে। কয়েকদিন আগে ১৮ হওয়ার পর ব্রাঞ্চে গিয়ে এই ব্যাপারে কথা বলি। ব্রাঞ্চের আপু কনভারশনের ব্যাপারে দ্বিধায় ছিলেন হবে কি হবে না। তারপর আমাকে সাজেস্ট করলেন হাসানাহ একাউন্ট টা করতে। কিন্তু আমি কনভেনশনাল একাউন্ট-ই চাচ্ছিলাম। তো বাসায় এসে প্রাইমে মেইল করলে তারা আমাকে জানায় এই একাউন্ট কেই ইউথ-এ কনভারশন করা যাবে এবং ব্রাঞ্চ থেকেও অপারেশন ম্যানেজার কল করে জানায়। তারপর সব ডকুমেন্ট দিয়ে আসার ২ দিন পর ইউথ একাউন্টে কনভার্ট হয় এবং আগের ডেবিট কার্ড জমা দিয়ে নতুন এই ডেবিট কার্ড নিই ফ্রী তেই। চেক বই আগের ছিলো, চাইলে নেওয়া যেতো, আমি বলেছি না দিতে।
|
| 790 |
-
See translation
|
| 791 |
-
Facebook
|
| 792 |
-
Facebook
|
| 793 |
-
Facebook
|
| 794 |
-
Facebook
|
| 795 |
-
Facebook
|
| 796 |
-
Facebook
|
| 797 |
-
Facebook
|
| 798 |
-
Facebook
|
| 799 |
-
Facebook
|
| 800 |
-
Facebook
|
| 801 |
-
Facebook
|
| 802 |
-
ডীপ স্টোরি
|
| 803 |
-
|
| 804 |
-
Top contributor
|
| 805 |
-
এটা ১ম জানলাম পরিচিতি দের কনো লিমিট নেই 🐱
|
| 806 |
-
4w
|
| 807 |
-
Reply
|
| 808 |
-
See translation
|
| 809 |
-
Share
|
| 810 |
-
জুনায়েদ হায়দার
|
| 811 |
-
Elakar manager ke gharaite hobe dekhi, amake ei limit wala scheme bollo na
|
| 812 |
-
4w
|
| 813 |
-
Reply
|
| 814 |
-
See translation
|
| 815 |
-
Share
|
| 816 |
-
Hasan Mohammad
|
| 817 |
-
তো এখন এই কার্ড দিয়ে কী করবেন এখন শুনি? হটাৎ সবাই পাগল হয়ে গেছে।
|
| 818 |
-
4w
|
| 819 |
-
Reply
|
| 820 |
-
See translation
|
| 821 |
-
Share
|
| 822 |
-
JoyJit Das
|
| 823 |
-
Brac Bank এর টা আর এটার মধ্যে কি কি পারথক্য? কোন টা ভালো হবে?
|
| 824 |
-
4w
|
| 825 |
-
Reply
|
| 826 |
-
See translation
|
| 827 |
-
Share
|
| 828 |
-
Sweetie Pie
|
| 829 |
-
card diye uber ba foodpanday payment kora jay?
|
| 830 |
-
3w
|
| 831 |
-
Reply
|
| 832 |
-
See translation
|
| 833 |
-
Share
|
| 834 |
-
RU H AN
|
| 835 |
-
Limit 😂🤣
|
| 836 |
-
4w
|
| 837 |
-
Reply
|
| 838 |
-
Share
|
| 839 |
-
Shariful Fahim
|
| 840 |
-
|
| 841 |
-
Rising contributor
|
| 842 |
-
Amr age under 18 a card amake dive ?
|
| 843 |
-
4w
|
| 844 |
-
Reply
|
| 845 |
-
See translation
|
| 846 |
-
Share
|
| 847 |
-
Post 9:
|
| 848 |
-
আমি অনলাইনের মাধ্যমে প্রাইম ব্যাংকের (Prime Bank)একাউন্ট খুলেছি।
|
| 849 |
-
আমি যদি ১ লাখ টাকার বেশি লেনদেন করি তাহলে কি একাউন্ট ফ্রিজ করে দিবে?
|
| 850 |
-
এই ব্যাপারে কারো কোন অভিজ্ঞতা আছে?
|
| 851 |
-
আমি দেশের বাহিরে আছি বর্তমানে।
|
| 852 |
-
See translation
|
| 853 |
-
Facebook
|
| 854 |
-
Facebook
|
| 855 |
-
Facebook
|
| 856 |
-
Facebook
|
| 857 |
-
Facebook
|
| 858 |
-
Facebook
|
| 859 |
-
Facebook
|
| 860 |
-
Facebook
|
| 861 |
-
Facebook
|
| 862 |
-
Facebook
|
| 863 |
-
Facebook
|
| 864 |
-
Russell Shafik
|
| 865 |
-
|
| 866 |
-
Rising contributor
|
| 867 |
-
No photo description available.
|
| 868 |
-
27w
|
| 869 |
-
Reply
|
| 870 |
-
Share
|
| 871 |
-
Saifur Rahaman Saif
|
| 872 |
-
|
| 873 |
-
All-star contributor
|
| 874 |
-
Online e account korar por branch e gyea document submit kora lagbe
|
| 875 |
-
27w
|
| 876 |
-
Reply
|
| 877 |
-
See translation
|
| 878 |
-
Share
|
| 879 |
-
Monirul Islam
|
| 880 |
-
Kon accnt khulesen?
|
| 881 |
-
27w
|
| 882 |
-
Reply
|
| 883 |
-
Share
|
| 884 |
-
Moynul Ahmed
|
| 885 |
-
প্রাইম ব্যাংকের কার্ড ছাড়া অ্যাপ ব্যাবহার করা যায় কী ?
|
| 886 |
-
27w
|
| 887 |
-
Reply
|
| 888 |
-
See translation
|
| 889 |
-
Share
|
| 890 |
-
|
| 891 |
-
Post 10:
|
| 892 |
-
Bank Asia vs Prime Bank কোনটার সিকিউরিটি, সার্ভিস এবং এপ ভালো হবে?
|
| 893 |
-
See translation
|
| 894 |
-
Facebook
|
| 895 |
-
Facebook
|
| 896 |
-
Facebook
|
| 897 |
-
Facebook
|
| 898 |
-
Facebook
|
| 899 |
-
Facebook
|
| 900 |
-
Facebook
|
| 901 |
-
Facebook
|
| 902 |
-
Facebook
|
| 903 |
-
Facebook
|
| 904 |
-
Facebook
|
| 905 |
-
Rabiul Islam
|
| 906 |
-
·
|
| 907 |
-
১৷ সেলফিন এর সাহায্যে একাউন্ট/ওয়ালেট থেকে IBBL ATM/CRM এর মাধ্যমে কার্ড ছাড়াই টাকা উত্তোলন করা যায় ৷
|
| 908 |
-
২৷ সেলফিন এর সাহায্যে এবং ATM কার্ড দিয়ে ব্যাংকের যে কোনো শাখা/এজেন্ট আউটলেট থেকে টাকা উত্তোলন করা যায় ৷
|
| 909 |
-
৩৷ গ্রামীনফোন সীমে এমবি ছাড়াই সেলফিন/iSmart চালানো যায় ৷
|
| 910 |
-
৪৷ CRM মেশিনে কার্ড ছাড়াই একাউন্টে/সেলফিন ওয়ালেটে টাকা জমা করা যায় (ওটিপি আবশ্যক) ৷
|
| 911 |
-
৫৷ সেলফিনের ভার্চুয়াল ভিসা কার্ডের মাধ্যমে ট্রেনের টিকেট কাটা যায় ৷
|
| 912 |
-
৬৷ সেলফিনের মাধ্যমে ৬ মাসের সকল লেনদেন (স্টেটমেন্ট) দেখা যায় এবং PDF ডাউনলোড করা যায় ৷
|
| 913 |
-
৭৷ iSmart এর মাধ্যমে ১০ (দশ) বছরের এবং ওয়েবসাইটের মাধ্যমে এক বছরের সকল লেনদেন (স্টেটমেন্ট) দেখা যায় এবং PDF ডাউনলোড করা যায় ৷
|
| 914 |
-
৮৷ সেলফিন, iSmart এবং ওয়েবসাইটের মাধ্যমে যে কোনো ব্যাংকে টাকা পাঠানো যায় ৷
|
| 915 |
-
৯৷ ইসলামী ব্যাংকের ATM/CRM এর সংখ্যা অনেক বেশি ৷
|
| 916 |
-
১০৷ সেলফিনের মাধ্যমে ওয়ালেট/একাউন্ট থেকে সরাসরি যেকোনো বিকাশ/নগদ নাম্বারে টাকা পাঠানো যায় (ফ্রি) ৷
|
| 917 |
-
১১৷ সেলফিন থেকে যেকোনো ব্যক্তির মোবাইল নাম্বারে টাকা পাঠানো যায়, ক্যাশ বাই কোড এর মাধ্যমে, যা ঐ ব্যক্তি ইসলামী ব্যাংকের যে কোনো এটিএম থেকে তুলতে পারবে ৷৷
|
| 918 |
-
1y
|
| 919 |
-
Reply
|
| 920 |
-
See translation
|
| 921 |
-
Share
|
| 922 |
-
Bokhtiar Arif
|
| 923 |
-
Bank Asia কিন্তু অ্যাপ+ ফরেইন ট্রানজেকশন এর ক্ষেত্রে EBL & CITY BEST
|
| 924 |
-
1y
|
| 925 |
-
Reply
|
| 926 |
-
See translation
|
| 927 |
-
Share
|
| 928 |
-
Edited
|
| 929 |
-
Sayed Ahmed
|
| 930 |
-
|
| 931 |
-
Top contributor
|
| 932 |
-
Prime is like old is gold.
|
| 933 |
-
কিসের সাথে কিসের তুলনা করেন। তবে প্রাইমের অ্যাপ টপনচ না লাইক Brac, Ebl, City.
|
| 934 |
-
1y
|
| 935 |
-
Reply
|
| 936 |
-
See translation
|
| 937 |
-
Share
|
| 938 |
-
Edited
|
| 939 |
-
Riad Hossain
|
| 940 |
-
|
| 941 |
-
Top contributor
|
| 942 |
-
ব্যাংক এশিয়ার অ্যাপ খুব একটসুবিধাজনক না।
|
| 943 |
-
1y
|
| 944 |
-
Reply
|
| 945 |
-
See translation
|
| 946 |
-
Share
|
| 947 |
-
Jannatul Ferdaous
|
| 948 |
-
Prime bank
|
| 949 |
-
1y
|
| 950 |
-
Reply
|
| 951 |
-
Share
|
| 952 |
-
Akther Hussan
|
| 953 |
-
·
|
| 954 |
-
এপস ইউজ এর ক্ষেত্রে প্রাইমের তুলনা নেই
|
| 955 |
-
1y
|
| 956 |
-
Reply
|
| 957 |
-
See translation
|
| 958 |
-
Share
|
| 959 |
-
Md Rakibul Islam
|
| 960 |
-
prime bank
|
| 961 |
-
1y
|
| 962 |
-
Reply
|
| 963 |
-
Share
|
| 964 |
-
Chowdhury Ahmed
|
| 965 |
-
Prime
|
| 966 |
-
1y
|
| 967 |
-
Reply
|
| 968 |
-
Share
|
| 969 |
-
Md Asif Khan
|
| 970 |
-
Prime bank
|
| 971 |
-
1y
|
| 972 |
-
Reply
|
| 973 |
-
Share
|
| 974 |
-
Lutfor Rahoman
|
| 975 |
-
Asia
|
| 976 |
-
1y
|
| 977 |
-
Reply
|
| 978 |
-
Share
|
| 979 |
-
Ariyan Sarkar
|
| 980 |
-
F
|
| 981 |
-
1y
|
| 982 |
-
Reply
|
| 983 |
-
Share
|
| 984 |
-
Amiable Faysal Mahmud
|
| 985 |
-
·
|
| 986 |
-
দুইটাই ভালো
|
| 987 |
-
1y
|
| 988 |
-
Reply
|
| 989 |
-
See translation
|
| 990 |
-
Share
|
| 991 |
-
Borsha Islam
|
| 992 |
-
·
|
| 993 |
-
ব্যাংক এশিয়া
|
| 994 |
-
1y
|
| 995 |
-
Reply
|
| 996 |
-
See translation
|
| 997 |
-
Share
|
| 998 |
-
Nayeem Sadat
|
| 999 |
-
|
| 1000 |
-
Rising contributor
|
| 1001 |
-
.try brac
|
| 1002 |
-
1y
|
| 1003 |
-
Reply
|
| 1004 |
-
Share
|
| 1005 |
-
Anik Saha
|
| 1006 |
-
|
| 1007 |
-
Rising contributor
|
| 1008 |
-
Midland Bank PLC. You can try MDB online Apps. For details pls inbo
|
| 1009 |
-
|
| 1010 |
-
Post 11:
|
| 1011 |
-
Prime Bank এর এপ্স মাই প্রাইম ডাউন নাকি? আজ সকাল থেকে মারাত্মক স্লো ছিলো। আগে ট্রানজেকশন ফেইল করছিলো। 1628 এ ডিসপুট ক্লেইম করতে ওয়েটিং টাইম লেগেছে ৪০ মিনিট!
|
| 1012 |
-
এখন তো এপ্সে লগইন ই হচ্ছে না।
|
| 1013 |
-
See translation
|
| 1014 |
-
Facebook
|
| 1015 |
-
Facebook
|
| 1016 |
-
Facebook
|
| 1017 |
-
Facebook
|
| 1018 |
-
Facebook
|
| 1019 |
-
Facebook
|
| 1020 |
-
Facebook
|
| 1021 |
-
Facebook
|
| 1022 |
-
Facebook
|
| 1023 |
-
Facebook
|
| 1024 |
-
Facebook
|
| 1025 |
-
Mohammod Nazibullah Khan Onjon
|
| 1026 |
-
connection lost
|
| 1027 |
-
11w
|
| 1028 |
-
Reply
|
| 1029 |
-
Share
|
| 1030 |
-
Mohammod Nazibullah Khan Onjon
|
| 1031 |
-
same
|
| 1032 |
-
11w
|
| 1033 |
-
Reply
|
| 1034 |
-
Share
|
| 1035 |
-
Juwel Khan
|
| 1036 |
-
City bank same
|
| 1037 |
-
11w
|
| 1038 |
-
Reply
|
| 1039 |
-
Share
|
| 1040 |
-
Safin Ahmed Rohan
|
| 1041 |
-
ব্রাক ব্যাংক ও স্লো
|
| 1042 |
-
11w
|
| 1043 |
-
Reply
|
| 1044 |
-
See translation
|
| 1045 |
-
Share
|
| 1046 |
-
Sukanta Deb
|
| 1047 |
-
Author
|
| 1048 |
-
একাউন্ট ব্যালান্সই শো করতেছে না
|
| 1049 |
-
11w
|
| 1050 |
-
Reply
|
| 1051 |
-
See translation
|
| 1052 |
-
Share
|
| 1053 |
-
AsaduzZaman Mithu
|
| 1054 |
-
·
|
| 1055 |
-
সোনালী ব্যাংক এফডিআর রেট কেউ বলতে পারবেন?
|
| 1056 |
-
এবং সুযোগ সুবিধা কেমন??
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data/uploads/other_banks_comments.csv
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/uploads/other_banks_posts.csv
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/uploads/prime_bank_comments.csv
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data/uploads/prime_bank_posts.csv
DELETED
|
@@ -1,146 +0,0 @@
|
|
| 1 |
-
Post ID,Legacy ID,Post URL,Facebook URL,Input URL,Time Posted,User ID,User Name,Post Text,Group Title,Facebook ID,Likes Count,Shares Count,Comments Count,Reaction Like Count,Reaction Love Count,Reaction Wow Count,Reaction Care Count,Reaction Haha Count,Reaction Sad Count,Top Reactions Count,Feedback ID,Has Attachments,Attachment Count,Has Top Comments,Top Comments Count,Scraped At,Scraped Date,Scraped Time,Attachments Info,Top Comments,Post Facebook ID,Page ID,Page Name,Top Level URL,Timestamp,Link,Thumbnail,Source Type
|
| 2 |
-
,,,,,,,,,,,0,0,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,No,0.0,No,0.0,2025-06-18 11:45:33,2025-06-18,11:45:33,,,,,,,,,,
|
| 3 |
-
771091601910976,,https://www.facebook.com/primebankofficial/videos/8204026676388315/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-18T04:29:13.000Z,,,"Customer Engagement Program at Baridhara Branch, organized by Prime Bank Neera.
|
| 4 |
-
|
| 5 |
-
#PrimeBank #Neera #ami_neera #CustomerEngagement #PowerToYou",,100070304281907,32,4,0,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/771091601910976,1750220953.0,,,Facebook Page
|
| 6 |
-
770598281960308,,https://www.facebook.com/primebankofficial/posts/pfbid02w1wksaJGjWS5WfakmWiApoUVwGD1i6utVrps6qabyUw9unYMZkgFzuc8qxvuHVQcl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-17T13:34:14.000Z,,,"Choose your preferred investment option with Prime Bank and enjoy 15% 𝐓𝐀𝐗 𝐑𝐄𝐁𝐀𝐓𝐄!
|
| 7 |
-
|
| 8 |
-
For details, visit: https://tinyurl.com/537ptx9n
|
| 9 |
-
|
| 10 |
-
#PrimeBank #taxrebates #wealthmanagement #investment",,100070304281907,39,4,0,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/770598281960308,1750167254.0,https://tinyurl.com/537ptx9n,,Facebook Page
|
| 11 |
-
770561111964025,,https://www.facebook.com/primebankofficial/posts/pfbid0vc8xtcfZn4YqmGJ2nEnwWfcM8V3YLHW5hz4XDZmoM5btjTzfzgjWXU9PAM3edNTql,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-17T12:32:34.000Z,,,"কৃষি ঋণ সহজ হলেই আমাদের কৃষি খাতে আসবে সমৃদ্ধি।
|
| 12 |
-
|
| 13 |
-
তাই আবাদ ঋণ, খামার ঋণ এবং নবান্ন ঋণ নিয়ে কৃষকদের পাশে আছে প্রাইম ব্যাংক এজেন্ট ব্যাংকিং!
|
| 14 |
-
|
| 15 |
-
#agriculture #agriloans #farming #agribusiness #loans #PrimeBank",,100070304281907,105,14,4,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/770561111964025,1750163554.0,https://www.primebank.com.bd/,,Facebook Page
|
| 16 |
-
770491848637618,,https://www.facebook.com/primebankofficial/posts/pfbid02EDacGAhepRwLccKT44z72WtprthGi53Sui5vYJaYJ34a7eGpnQmFoawSn8B1aghyl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-17T10:30:12.000Z,,,"Prime Bank has signed a strategic agreement with SARTO & SUIT EXPRESS to offer exclusive privileges to its Priority Banking customers and cardholders. The signing ceremony took place at the Bank’s corporate office in Gulshan.
|
| 17 |
-
|
| 18 |
-
Under this partnership, Prime Bank’s Priority Banking customers and cardholders will enjoy attractive benefits and privileges on bespoke tailoring and premium ready-to-wear services offered by SARTO & SUIT EXPRESS.
|
| 19 |
-
|
| 20 |
-
The agreement was formally signed by Md. Nazeem A. Choudhury, Deputy Managing Director of Prime Bank PLC. and Shehzad Aaqib, Founder and Creative Director of SARTO & SUIT EXPRESS. Also present at the ceremony were Joarder Tanvir Faisal, Executive Vice President & Head of Cards and Retail Asset at Prime Bank; Tysir Khan, Deputy Managing Director of JK Group of Industry along with other senior officials from both organizations.
|
| 21 |
-
|
| 22 |
-
This collaboration reflects Prime Bank’s ongoing commitment to delivering premium lifestyle privileges and curated experiences for its valued Priority customers.
|
| 23 |
-
|
| 24 |
-
#PriorityBanking #PrimeBank",,100070304281907,157,8,8,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/770491848637618,1750156212.0,https://www.primebank.com.bd/find-locations,,Facebook Page
|
| 25 |
-
770358678650935,,https://www.facebook.com/primebankofficial/posts/pfbid02gPATiSVsSf6hwvDYeuMCb7zPjXLSmhCxWV6X3N1k3qurhUMXfAdTi4UvegtJYb5Tl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-17T06:00:58.000Z,,,"🎉 প্রাইম ব্যাংকের নতুন শাখা এখন চাঁদপুরে! ৩০ বছরের আস্থা ও আধুনিক ব্যাংকিং সেবার ধারাবাহিকতায় এবার চাঁদপুরে আমাদের নতুন শাখার যাত্রা শুরু।
|
| 26 |
-
|
| 27 |
-
ঠিকানা: প্রিমিয়ার টাওয়ার, হাজী মহসিন রোড (২য় তলা), আ��িমপাড়া, চাঁদপুর সদর, চাঁদপুর
|
| 28 |
-
|
| 29 |
-
✅ নতুন ঠিকানায় আরও আধুনিক ও সাশ্রয়ী ব্যাংকিং সুবিধা!
|
| 30 |
-
|
| 31 |
-
#PrimeBank #NewBranch #CustomerFirst #SmartBanking #Chandpur #BranchExpansion",,100070304281907,345,58,50,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/770358678650935,1750140058.0,,,Facebook Page
|
| 32 |
-
769796352040501,,https://www.facebook.com/primebankofficial/posts/pfbid02kb92uCaPRMw47fjTJLiQjVgZTjeVSDjE3jQZjhT8szrwFUaUbe74GNULPopd2wqkl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-16T13:32:55.000Z,,,"মাইপ্রাইম অ্যাপে রেজিস্ট্রেশন করলেই পাচ্ছেন ১০০ টাকা ক্যাশব্যাক!
|
| 33 |
-
|
| 34 |
-
তাই দেরি না করে এখনি ডাউনলোড করুন মাইপ্রাইম অ্যাপ আর রেজিস্ট্রেশন করে ফেলুন।
|
| 35 |
-
|
| 36 |
-
মাইপ্রাইম অ্যাপ ডাউনলোড করতে ক্লিক করুন: tinyurl.com/Download-MyPrime
|
| 37 |
-
|
| 38 |
-
#moretoyou #MyPrime #PrimeBank",,100070304281907,111,3,12,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/769796352040501,1750080775.0,http://tinyurl.com/Download-MyPrime,,Facebook Page
|
| 39 |
-
769144355439034,,https://www.facebook.com/primebankofficial/posts/pfbid02BcS6Tg9ZxP2Ha2DJwViq8bm6cr7dFcoT8oNaTxccLZYYVdaH6YLpM86DfYzerVeul,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-15T18:00:20.000Z,,,"আন্তর্জাতিক ফ্যামিলি রেমিট্যান্স দিবসে আমরা শ্রদ্ধা জানাই তাঁদের, যারা দেশের মাটির স্বপ্ন বুনে চলেছেন দূরভূমি থেকে। তাদের পাঠানো প্রতিটি রেমিট্যান্স হয়ে উঠুক পরিবারের নিরাপত্তার ভিত্তি - প্রাইম পরিজন সেভিংস একাউন্টের মাধ্যমে।
|
| 40 |
-
|
| 41 |
-
#PrimeBankPLC #PrimePorijon #InsuranceBenefits #PorijonSavingsAccount #RemittanceForFamily #InternationalDayOfFamilyRemittances",,100070304281907,120,7,9,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/769144355439034,1750010420.0,http://onelink.to/7pbj6v,,Facebook Page
|
| 42 |
-
768681448818658,,https://www.facebook.com/primebankofficial/posts/pfbid0pz9RDenJbUi6fgZYeSR5WssdLD6jAPDLmwPviRgiyKuuiPp848xrgMqoUdXDQLDRl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-15T06:59:30.000Z,,,"⭐️ আগামীর ব্যাংকিং নিয়ে প্রাইম ব্যাংক এখন দক্ষিণ বনশ্রী, ঢাকায়!
|
| 43 |
-
|
| 44 |
-
আপনার প্রয়োজনীয় সকল ব্যাংকিং সেবা পেতে আমাদের নতুন এজেন্ট আউটলেটে আসুন এবং বাড়ির কাছেই পেয়ে যান আধুনিক ব্যাংকিং সুবিধা।
|
| 45 |
-
|
| 46 |
-
🏘️ আয়ান এন্টারপ্রাইজ, বাড়ি- ৮৪, রোড- ১৪, ব্লক- এইচ, দক্ষিণ বনশ্রী, ঢাকা।
|
| 47 |
-
|
| 48 |
-
#dhaka #dps #fdr #savings #remittance #AgentBanking #PrimeBank",,100070304281907,75,4,9,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/768681448818658,1749970770.0,,,Facebook Page
|
| 49 |
-
725429063143897,,https://www.facebook.com/primebankofficial/posts/1035501142023675:1035501142023675,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-15T04:44:47.000Z,,,,,100070304281907,540,13,37,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/725429063143897,1749962687.0,,,Facebook Page
|
| 50 |
-
768603615493108,,https://www.facebook.com/primebankofficial/posts/pfbid032ZgGcdkKi7mjwZG9kGPE24Ddfn7KwZ8HbHBmn9tP5JND9LitNbXxXKwmwwq1VS2rl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-15T04:29:22.000Z,,,"PrimePay – আপনার বিজনেসের ওয়ান স্টপ সল্যুশন!
|
| 51 |
-
|
| 52 |
-
নিরাপদ, দ্রুত ও সহজ লেনদেন এখন হাতের মুঠোয়।
|
| 53 |
-
|
| 54 |
-
RTGS, NPSB, MFS, Utility Bill Payment, Fund Transfer—সবকিছু এক প্ল্যাটফর্মে।
|
| 55 |
-
|
| 56 |
-
✅ সব ধরনের পেমেন্ট
|
| 57 |
-
✅ সব ব্যাংকে টাকা পাঠান
|
| 58 |
-
✅ আপনার ব্যবসার ���ময় আর খরচ বাঁচান
|
| 59 |
-
|
| 60 |
-
বিস্তারিত জানতে প্লিজ ই-মেইল: primepay@primebank.com.bd
|
| 61 |
-
|
| 62 |
-
এছাড়াও যেকোনো ধরনের ব্যাংকিং সেবা পেতে কল করুন ১৬২১৮-এ যেকোনো সময়, যেকোনো প্রয়োজনে।সাইন ল্যাঙ্গুয়েজ ভিডিও কল সার্ভিস নিতে কল করুন হোয়াটসঅ্যাপ দিয়ে: ০১৩ ২১১ ১৬২১৮ (সকাল ১০ টা - বিকাল ৪ টা)
|
| 63 |
-
|
| 64 |
-
#BusinessTransactions #PrimePay #PrimeBank",,100070304281907,108,6,3,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/768603615493108,1749961762.0,http://onelink.to/7pbj6v,,Facebook Page
|
| 65 |
-
768296855523784,,https://www.facebook.com/primebankofficial/posts/pfbid0PQJq41CSqVwukaTscpnrZfcDZ2u2PygYEnPYDvqiEDio2P2VBzs9duUgjCQeFEk6l,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-14T18:00:10.000Z,,,"ছোট পায়ে প্রথম পদক্ষেপ থেকে শুরু করে বড় স্বপ্ন দেখানো পর্যন্ত, তার ভালোবাসা এবং সাহস আমাদের জীবনের সবচেয়ে বড় উৎস। প্রাইম ব্যাংক থেকে সকল বাবাকে শুভ বাবা দিবস।
|
| 66 |
-
|
| 67 |
-
#PrimeBank #FathersDay #HonoringAllFathers",,100070304281907,177,23,10,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/768296855523784,1749924010.0,,,Facebook Page
|
| 68 |
-
768252318861571,,https://www.facebook.com/primebankofficial/posts/pfbid0ZTbicTEjFzo4ULJNNPkyeECyxLkZkUxk2H5t9JmiBpPda952kWgX7F9V1qqXzkxcl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-14T17:07:53.000Z,,,"Turn your savings into strength!
|
| 69 |
-
|
| 70 |
-
Open a Prime Hasanah Women’s Savings Account and take charge of your future—with halal savings and the confidence to grow on your own terms.
|
| 71 |
-
|
| 72 |
-
#PrimeBank #Neera #ami_neera #SavingsAccount #halalSavings #PowerToYou",,100070304281907,110,16,4,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/768252318861571,1749920873.0,,,Facebook Page
|
| 73 |
-
768141452205991,,https://www.facebook.com/primebankofficial/videos/1394366471603858/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-14T14:05:54.000Z,,,"Furnish your dream home with Prime Swapnashaj Loan.
|
| 74 |
-
|
| 75 |
-
To know more please visit: tinyurl.com/Prime-Home-Loans
|
| 76 |
-
|
| 77 |
-
#DreamHome #PrimeBank",,100070304281907,44,12,0,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/768141452205991,1749909954.0,http://tinyurl.com/Prime-Home-Loans,,Facebook Page
|
| 78 |
-
767472135606256,,https://www.facebook.com/primebankofficial/posts/pfbid02TM2nZQpZkvobRFF4piDKbHZgz6V2dcwCpfrkXMhnhuBijm6TCDpQtAA11FBNaRfl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-13T16:08:26.000Z,,,"Dive into delicious deals with Prime Bank Cards at Platinum Grand!
|
| 79 |
-
|
| 80 |
-
#PrimeBank #DebitCard #creditcard #PlatinumGrand #eiduladha2025",,100070304281907,5336,20,691,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/767472135606256,1749830906.0,https://www.primebank.com.bd/,,Facebook Page
|
| 81 |
-
767140542306082,,https://www.facebook.com/primebankofficial/posts/pfbid02qp64oQDCiiAimVqVCS9CccUzvs7DYB4Lkmi4WJF4HL2cPChjD9vq8rbuGqCGFVP5l,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-13T06:06:19.000Z,,,"Celebrate DAD, the Prime Way!
|
| 82 |
-
|
| 83 |
-
Details: https://www.primebank.com.bd/fathers-day-2025
|
| 84 |
-
|
| 85 |
-
#PrimeBank #DebitCard #creditcard #FathersDay2025",,100070304281907,3685,7,485,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/767140542306082,1749794779.0,https://www.primebank.com.bd/fathers-day-2025,,Facebook Page
|
| 86 |
-
766675219019281,,https://www.facebook.com/primebankofficial/videos/1263215722045188/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-12T14:42:48.000Z,,,"মাইপ্রাইম অ্যাপ দিয়ে চার্জ ফ্রি মোবাইল টপ-আপ করুন যখন যেখানে প্রয়োজন!
|
| 87 |
-
|
| 88 |
-
মাইপ্রাইম ডাউনলোড করতে ক্লিক করুন: tinyurl.com/Download-MyPrime
|
| 89 |
-
|
| 90 |
-
#PrimeBank #MyPrime",,100070304281907,57,6,2,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/766675219019281,1749739368.0,http://tinyurl.com/Download-MyPrime,,Facebook Page
|
| 91 |
-
765949195758550,,https://www.facebook.com/primebankofficial/posts/pfbid02aqRwyP3pU6EqSwywPWy2X2Z17ZnUkJU99sorZfpd2Hps3uajiV3Bf9ufAF4b3mkcl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-11T14:58:55.000Z,,,"🎓✈️ Unpack Your Future with Prime Bank! Dreaming of studying abroad? 🌍
|
| 92 |
-
|
| 93 |
-
Open your Student File today and step closer to undergraduate, postgraduate, advanced diploma, or PhD programs around the world.
|
| 94 |
-
|
| 95 |
-
For more info please visit: tinyurl.com/Prime-Student-File
|
| 96 |
-
|
| 97 |
-
For queries please email: prime_studentfile@primebank.com.bd or call our 24/7 helpline 16218. For Sign language support please call via WhatsApp 013 211 16218 (10 AM – 4 PM).
|
| 98 |
-
|
| 99 |
-
#PrimeBank #PrimeStudentFile #StudyAbroad",,100070304281907,33,4,4,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/765949195758550,1749653935.0,http://tinyurl.com/Prime-Student-File,,Facebook Page
|
| 100 |
-
765095652510571,,https://www.facebook.com/primebankofficial/videos/1909408576474016/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-10T13:07:14.000Z,,,"মাইপ্রাইম অ্যাপ থেকে কার্ড সার্ভিসেস নিন যখন যেখানে প্রয়োজন!
|
| 101 |
-
|
| 102 |
-
মাইপ্রাইম ডাউনলোড করতে ক্লিক করুন: tinyurl.com/Download-MyPrime
|
| 103 |
-
|
| 104 |
-
#PrimeBank #MyPrime",,100070304281907,151,14,10,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/765095652510571,1749560834.0,http://tinyurl.com/Download-MyPrime,,Facebook Page
|
| 105 |
-
764373905916079,,https://www.facebook.com/primebankofficial/videos/1215388196467593/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-09T13:01:01.000Z,,,"Reach your squad goals with Prime Bank's Auto Loan solution.
|
| 106 |
-
|
| 107 |
-
To know more please visit: tinyurl.com/Auto-Loan-Solution
|
| 108 |
-
|
| 109 |
-
#PrimeBank #AutoLoan #SquadGoals",,100070304281907,3802,65,123,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/764373905916079,1749474061.0,http://tinyurl.com/Auto-Loan-Solution,,Facebook Page
|
| 110 |
-
764224309264372,,https://www.facebook.com/primebankofficial/posts/pfbid02qgE2g3WXiRX3rRYLtFwUwho4BK5RTkFPoPq7vcUf5b7fD8yk2CziYJNwjmFsVqHyl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-09T08:19:38.000Z,,,"Eid treats made sweeter with Prime Bank Cards at Platinum Residence.
|
| 111 |
-
|
| 112 |
-
#PrimeBank #debitcard #creditcard #PlatinumResidence #eiduladha2025",,100070304281907,5356,19,599,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/764224309264372,1749457178.0,,,Facebook Page
|
| 113 |
-
763458219340981,,https://www.facebook.com/primebankofficial/posts/pfbid02qjW2itWfj5iygHQ5z3KeL7D2j69bH9mCrtPbUvqm5aR4br9eSo4zPkmTVwQPV3YYl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-08T08:00:29.000Z,,,"Stay close to the sea and closer to your family — with a Buy 1 Get 1 Free buffet dinner in elegance and comfort at Long Beach Hotel, Cox’s Bazar.
|
| 114 |
-
|
| 115 |
-
#PrimeBank #debitcard #creditcard #longbeach #coxsbazar #buffet #dinner",,100070304281907,4851,12,541,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/763458219340981,1749369629.0,https://www.primebank.com.bd/,,Facebook Page
|
| 116 |
-
763400286013441,,https://www.facebook.com/primebankofficial/videos/1081789643825216/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-08T06:08:56.000Z,,,"মাইপ্রাইম অ্যাপ দিয়ে চার্জ ফ্রি ফান্ড ট্রান্সফার (Intra-bank, BEFTN, NPSB ও MFS) করুন যখন যেখানে প্রয়োজন!
|
| 117 |
-
|
| 118 |
-
মাইপ্রাইম ডাউনলোড করতে ক্লিক করুন: tinyurl.com/Download-MyPrime
|
| 119 |
-
|
| 120 |
-
#PrimeBank #MyPrime",,100070304281907,1218,42,61,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/763400286013441,1749362936.0,http://tinyurl.com/Download-MyPrime,,Facebook Page
|
| 121 |
-
763055656047904,,https://www.facebook.com/primebankofficial/posts/pfbid02HAGwawMPs19BSCst8hgjPZ5VxTfFkyXy75gUQKkTPTZBP6o82t772z2Ebxcsk4Bxl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-07T18:00:09.000Z,,,"Let's remind ourselves that true wellness isn’t just physical, but also emotional, social, and environmental. Because real wellness begins when we reconnect with ourselves and everything around us.
|
| 122 |
-
|
| 123 |
-
#PrimeBankPLC #ReconnectMagenta #GlobalWellnessDay2025",,100070304281907,101,21,9,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/763055656047904,1749319209.0,,,Facebook Page
|
| 124 |
-
763028319383971,,https://www.facebook.com/primebankofficial/posts/pfbid02btom7HDADA3Li163W1iLg6euk8PnP9Jth4QCjryRYsgXKcEvf2hv89KtD9spQ7BCl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-07T17:12:25.000Z,,,"𝙀𝙞𝙙 𝘼𝙙𝙫𝙚𝙣𝙩𝙪𝙧𝙚𝙨 𝙎𝙩𝙖𝙧𝙩 𝙃𝙚𝙧𝙚!
|
| 125 |
-
|
| 126 |
-
Hold hands, scream together, and laugh louder — enjoy the thrill of Eid with exclusive savings at Mana Bay.
|
| 127 |
-
|
| 128 |
-
#PrimeBank #debitcard #CreditCard #ManaBay #eiduladha2025 #amusementpark",,100070304281907,6760,25,352,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/763028319383971,1749316345.0,https://www.primebank.com.bd/,,Facebook Page
|
| 129 |
-
762803282739808,,https://www.facebook.com/primebankofficial/posts/pfbid021T2VTsquYhkKtR3srW5XZeV6PZoRiQcH1TRz8C4g85GFGg6yZzpzDQi7KPhuRctgl,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-07T10:55:18.000Z,,,"Escape into the world of movies with Prime Bank Mastercard Credit Cards!
|
| 130 |
-
|
| 131 |
-
#PrimeBank #creditcard #Mastercard #StarCineplex #movietickets",,100070304281907,4811,12,629,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/762803282739808,1749293718.0,https://www.primebank.com.bd/,,Facebook Page
|
| 132 |
-
762381689448634,,https://www.facebook.com/primebankofficial/videos/1259922195481755/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-06T20:18:59.000Z,,,"তিন দশক ধরে দক্ষতার সাথে বাংলাদেশে শরীয়াহ্সম্মত ব্যাংকিং সেবা দিয়ে আসছে প্রাইম ব্যাংকের হাসানাহ ইসলামী ব্যাংকিং। তাই হালাল সঞ্চয়ের মাধ্যমে সমৃদ্ধ ভবিষ্যৎ নিশ্চিত করতে প্রাইম ব্যাংকের হাসানাহ ইসলামী ব্যাংকিং-ই হোক আপনার প্রথম পছন্দ।
|
| 133 |
-
|
| 134 |
-
#PrimeBank #halaldeposit #halal #Hasanah #IslamiBanking #Deposit",,100070304281907,2839,96,50,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/762381689448634,1749241139.0,,,Facebook Page
|
| 135 |
-
762195369467266,,https://www.facebook.com/primebankofficial/posts/4062249187390337:4062249187390337,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-06T14:35:46.000Z,,,,,100070304281907,111,5,10,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/762195369467266,1749220546.0,https://www.primebank.com.bd/,,Facebook Page
|
| 136 |
-
762138419472961,,https://www.facebook.com/primebankofficial/videos/1040923977622768/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-06T13:01:28.000Z,,,"ঈদ মোবারক 🎉
|
| 137 |
-
|
| 138 |
-
#PrimeBank #EidAlAdha2025 #Eid2025 #Compassion&Unity #DivineSacrifice",,100070304281907,125,142,11,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/762138419472961,1749214888.0,https://www.primebank.com.bd/,,Facebook Page
|
| 139 |
-
761969766156493,,https://www.facebook.com/primebankofficial/videos/1339381793804859/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-06T07:46:08.000Z,,,"Customer Engagement Program at Dhanmondi Branch, organized by Prime Bank Neera in association with Prime Bank’s Sat Masjid Road Branch.
|
| 140 |
-
|
| 141 |
-
#PrimeBank #Neera #ami_neera #CustomerEngagement #PowerToYou",,100070304281907,167,15,7,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/761969766156493,1749195968.0,,,Facebook Page
|
| 142 |
-
761854066168063,,https://www.facebook.com/primebankofficial/videos/1366201268008884/,https://www.facebook.com/primebankofficial,https://www.facebook.com/primebankofficial,2025-06-06T03:44:03.000Z,,,"মাইপ্রাইম অ্যাপ দিয়ে চার্জ ফ্রি মোবাইল টপ-আপ করুন যখন যেখানে প্রয়োজন!
|
| 143 |
-
|
| 144 |
-
মাইপ্রাইম ডাউনলোড করতে ক্লিক করুন: tinyurl.com/Download-MyPrime
|
| 145 |
-
|
| 146 |
-
#PrimeBank #MyPrime",,100070304281907,891,9,25,,,,,,,,,,,,,2025-06-18 12:03:17,2025-06-18,12:03:17,,,,,primebankofficial,https://www.facebook.com/100070304281907/posts/761854066168063,1749181443.0,http://tinyurl.com/Download-MyPrime,,Facebook Page
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data/uploads/test_review_comments.txt
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Prime Bank provides exceptional service. Highly recommend!
|
| 2 |
+
Terrible experience with Prime Bank customer support.
|
| 3 |
+
Prime Bank mobile app keeps crashing. Please fix this!
|
| 4 |
+
Love the new features in Prime Bank online banking.
|
| 5 |
+
Why does Prime Bank charge so many fees?
|
| 6 |
+
BRAC Bank is also a good option for students.
|
data/uploads/test_social_media_posts.csv
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
text,date,likes,shares,comments,location
|
| 2 |
+
Prime Bank has the best customer service! Love their mobile app.,2024-01-01,45,5,10,Dhaka
|
| 3 |
+
Worst experience at Prime Bank branch today. Waited 2 hours!,2024-01-02,12,2,3,Chittagong
|
| 4 |
+
How do I apply for a loan at Prime Bank?,2024-01-03,5,1,2,Dhaka
|
| 5 |
+
Prime Bank ATM is not working again. So frustrated!,2024-01-04,89,15,22,Sylhet
|
| 6 |
+
Thank you Prime Bank staff for helping with my account.,2024-01-05,34,8,9,Dhaka
|
| 7 |
+
What are Prime Bank interest rates?,2024-01-06,8,1,3,Rajshahi
|
| 8 |
+
Prime Bank online banking is confusing.,2024-01-07,15,3,5,Dhaka
|
| 9 |
+
Excellent service at Prime Bank downtown branch!,2024-01-08,67,12,14,Chittagong
|
| 10 |
+
Prime Bank charged me hidden fees. Very disappointed.,2024-01-09,102,25,30,Sylhet
|
| 11 |
+
Can someone explain Prime Bank credit card benefits?,2024-01-10,22,4,5,Dhaka
|
| 12 |
+
"Heard good things about Eastern Bank, but Prime Bank is still my go-to.",2024-01-11,18,2,4,Dhaka
|
| 13 |
+
Comparing BRAC Bank and Prime Bank for a new account.,2024-01-12,33,6,8,Chittagong
|
| 14 |
+
"City Bank has a nice app, but their service is slow.",2024-01-13,50,9,11,Dhaka
|
| 15 |
+
DBBL needs to improve their network coverage.,2024-01-14,41,7,10,Sylhet
|
requirements.txt
CHANGED
|
@@ -1,7 +1,144 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
altair==5.5.0
|
| 2 |
+
annotated-types==0.7.0
|
| 3 |
+
anyio==4.9.0
|
| 4 |
+
argon2-cffi==23.1.0
|
| 5 |
+
argon2-cffi-bindings==21.2.0
|
| 6 |
+
arrow==1.3.0
|
| 7 |
+
asttokens==3.0.0
|
| 8 |
+
async-lru==2.0.5
|
| 9 |
+
attrs==25.3.0
|
| 10 |
+
babel==2.17.0
|
| 11 |
+
beautifulsoup4==4.13.4
|
| 12 |
+
bleach==6.2.0
|
| 13 |
+
blinker==1.9.0
|
| 14 |
+
cachetools==6.1.0
|
| 15 |
+
certifi==2025.4.26
|
| 16 |
+
cffi==1.17.1
|
| 17 |
+
charset-normalizer==3.4.2
|
| 18 |
+
click==8.2.1
|
| 19 |
+
colorama==0.4.6
|
| 20 |
+
comm==0.2.2
|
| 21 |
+
contourpy==1.3.2
|
| 22 |
+
cycler==0.12.1
|
| 23 |
+
debugpy==1.8.14
|
| 24 |
+
decorator==5.2.1
|
| 25 |
+
defusedxml==0.7.1
|
| 26 |
+
distro==1.9.0
|
| 27 |
+
executing==2.2.0
|
| 28 |
+
fastjsonschema==2.21.1
|
| 29 |
+
filelock==3.13.1
|
| 30 |
+
fonttools==4.58.1
|
| 31 |
+
fqdn==1.5.1
|
| 32 |
+
fsspec==2024.6.1
|
| 33 |
+
gitdb==4.0.12
|
| 34 |
+
GitPython==3.1.44
|
| 35 |
+
h11==0.16.0
|
| 36 |
+
httpcore==1.0.9
|
| 37 |
+
httpx==0.28.1
|
| 38 |
+
idna==3.10
|
| 39 |
+
ipykernel==6.29.5
|
| 40 |
+
ipython==9.2.0
|
| 41 |
+
ipython_pygments_lexers==1.1.1
|
| 42 |
+
isoduration==20.11.0
|
| 43 |
+
jedi==0.19.2
|
| 44 |
+
Jinja2==3.1.6
|
| 45 |
+
jiter==0.10.0
|
| 46 |
+
joblib==1.5.1
|
| 47 |
+
json5==0.12.0
|
| 48 |
+
jsonpointer==3.0.0
|
| 49 |
+
jsonschema==4.24.0
|
| 50 |
+
jsonschema-specifications==2025.4.1
|
| 51 |
+
jupyter-events==0.12.0
|
| 52 |
+
jupyter-lsp==2.2.5
|
| 53 |
+
jupyter-server-mathjax==0.2.6
|
| 54 |
+
jupyter_client==8.6.3
|
| 55 |
+
jupyter_core==5.8.1
|
| 56 |
+
jupyter_server==2.16.0
|
| 57 |
+
jupyter_server_terminals==0.5.3
|
| 58 |
+
jupyterlab==4.4.3
|
| 59 |
+
jupyterlab_git==0.51.1
|
| 60 |
+
jupyterlab_pygments==0.3.0
|
| 61 |
+
jupyterlab_server==2.27.3
|
| 62 |
+
kiwisolver==1.4.8
|
| 63 |
+
MarkupSafe==3.0.2
|
| 64 |
+
matplotlib==3.10.3
|
| 65 |
+
matplotlib-inline==0.1.7
|
| 66 |
+
mistune==3.1.3
|
| 67 |
+
mpmath==1.3.0
|
| 68 |
+
narwhals==1.41.0
|
| 69 |
+
nbclient==0.10.2
|
| 70 |
+
nbconvert==7.16.6
|
| 71 |
+
nbdime==4.0.2
|
| 72 |
+
nbformat==5.10.4
|
| 73 |
+
nest-asyncio==1.6.0
|
| 74 |
+
networkx==3.3
|
| 75 |
+
nltk==3.9.1
|
| 76 |
+
notebook_shim==0.2.4
|
| 77 |
+
numpy==2.2.6
|
| 78 |
+
openai==1.88.0
|
| 79 |
+
overrides==7.7.0
|
| 80 |
+
packaging==25.0
|
| 81 |
+
pandas==2.2.3
|
| 82 |
+
pandocfilters==1.5.1
|
| 83 |
+
parso==0.8.4
|
| 84 |
+
pexpect==4.9.0
|
| 85 |
+
pillow==11.2.1
|
| 86 |
+
platformdirs==4.3.8
|
| 87 |
+
plotly==6.1.2
|
| 88 |
+
prometheus_client==0.22.0
|
| 89 |
+
prompt_toolkit==3.0.51
|
| 90 |
+
protobuf==6.31.1
|
| 91 |
+
psutil==7.0.0
|
| 92 |
+
ptyprocess==0.7.0
|
| 93 |
+
pure_eval==0.2.3
|
| 94 |
+
pyarrow==20.0.0
|
| 95 |
+
pycparser==2.22
|
| 96 |
+
pydantic==2.11.7
|
| 97 |
+
pydantic_core==2.33.2
|
| 98 |
+
pydeck==0.9.1
|
| 99 |
+
Pygments==2.19.1
|
| 100 |
+
pyparsing==3.2.3
|
| 101 |
+
python-dateutil==2.9.0.post0
|
| 102 |
+
python-json-logger==3.3.0
|
| 103 |
+
pytz==2025.2
|
| 104 |
+
PyYAML==6.0.2
|
| 105 |
+
pyzmq==26.4.0
|
| 106 |
+
referencing==0.36.2
|
| 107 |
+
regex==2024.11.6
|
| 108 |
+
requests==2.32.3
|
| 109 |
+
rfc3339-validator==0.1.4
|
| 110 |
+
rfc3986-validator==0.1.1
|
| 111 |
+
rpds-py==0.25.1
|
| 112 |
+
scikit-learn==1.6.1
|
| 113 |
+
scipy==1.15.3
|
| 114 |
+
seaborn==0.13.2
|
| 115 |
+
Send2Trash==1.8.3
|
| 116 |
+
setuptools==80.9.0
|
| 117 |
+
six==1.17.0
|
| 118 |
+
smmap==5.0.2
|
| 119 |
+
sniffio==1.3.1
|
| 120 |
+
soupsieve==2.7
|
| 121 |
+
stack-data==0.6.3
|
| 122 |
+
streamlit==1.46.0
|
| 123 |
+
sympy==1.13.3
|
| 124 |
+
tenacity==9.1.2
|
| 125 |
+
terminado==0.18.1
|
| 126 |
+
textblob==0.19.0
|
| 127 |
+
threadpoolctl==3.6.0
|
| 128 |
+
tinycss2==1.4.0
|
| 129 |
+
toml==0.10.2
|
| 130 |
+
torch==2.7.0+cpu
|
| 131 |
+
tornado==6.5.1
|
| 132 |
+
tqdm==4.67.1
|
| 133 |
+
traitlets==5.14.3
|
| 134 |
+
types-python-dateutil==2.9.0.20250516
|
| 135 |
+
typing-inspection==0.4.1
|
| 136 |
+
typing_extensions==4.13.2
|
| 137 |
+
tzdata==2025.2
|
| 138 |
+
uri-template==1.3.0
|
| 139 |
+
urllib3==2.4.0
|
| 140 |
+
watchdog==6.0.0
|
| 141 |
+
wcwidth==0.2.13
|
| 142 |
+
webcolors==24.11.1
|
| 143 |
+
webencodings==0.5.1
|
| 144 |
+
websocket-client==1.8.0
|
src/visualizations.py
CHANGED
|
@@ -1,380 +1,177 @@
|
|
|
|
|
|
|
|
| 1 |
import plotly.express as px
|
| 2 |
import plotly.graph_objects as go
|
| 3 |
from plotly.subplots import make_subplots
|
| 4 |
import pandas as pd
|
|
|
|
|
|
|
| 5 |
|
| 6 |
def create_sentiment_pie(df):
|
| 7 |
"""Create sentiment distribution pie chart"""
|
| 8 |
sentiment_counts = df['sentiment'].value_counts()
|
| 9 |
-
|
| 10 |
fig = px.pie(
|
| 11 |
values=sentiment_counts.values,
|
| 12 |
names=sentiment_counts.index,
|
| 13 |
title="Sentiment Distribution",
|
| 14 |
-
color_discrete_map={
|
| 15 |
-
'Positive': '#2ecc71',
|
| 16 |
-
'Negative': '#e74c3c',
|
| 17 |
-
'Neutral': '#95a5a6'
|
| 18 |
-
}
|
| 19 |
)
|
| 20 |
-
|
| 21 |
-
fig.update_traces(
|
| 22 |
-
textposition='inside',
|
| 23 |
-
textinfo='percent+label',
|
| 24 |
-
hovertemplate='<b>%{label}</b><br>Count: %{value}<br>Percentage: %{percent}<extra></extra>'
|
| 25 |
-
)
|
| 26 |
-
|
| 27 |
return fig
|
| 28 |
|
| 29 |
def create_emotion_bar(df):
|
| 30 |
"""Create emotion distribution bar chart"""
|
| 31 |
emotion_counts = df['emotion'].value_counts()
|
| 32 |
-
|
| 33 |
-
# Define colors for emotions
|
| 34 |
-
color_map = {
|
| 35 |
-
'Joy': '#f39c12',
|
| 36 |
-
'Frustration': '#e74c3c',
|
| 37 |
-
'Confusion': '#3498db',
|
| 38 |
-
'Anxiety': '#9b59b6',
|
| 39 |
-
'Neutral': '#95a5a6'
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
colors = [color_map.get(emotion, '#95a5a6') for emotion in emotion_counts.index]
|
| 43 |
-
|
| 44 |
fig = px.bar(
|
| 45 |
-
x=emotion_counts.index,
|
| 46 |
-
y=emotion_counts.
|
| 47 |
-
title="Emotion Detection",
|
| 48 |
-
labels={'x': 'Emotion', 'y': 'Count'},
|
| 49 |
-
color=emotion_counts.index,
|
| 50 |
-
color_discrete_map=color_map
|
| 51 |
-
)
|
| 52 |
-
|
| 53 |
-
fig.update_layout(
|
| 54 |
-
showlegend=False,
|
| 55 |
-
xaxis_tickangle=-45,
|
| 56 |
-
yaxis=dict(gridcolor='rgba(0,0,0,0.1)')
|
| 57 |
)
|
| 58 |
-
|
| 59 |
return fig
|
| 60 |
|
| 61 |
def create_category_donut(df):
|
| 62 |
"""Create post category donut chart"""
|
| 63 |
category_counts = df['category'].value_counts()
|
| 64 |
-
|
| 65 |
-
# Define colors for categories
|
| 66 |
color_sequence = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd']
|
| 67 |
-
|
| 68 |
fig = px.pie(
|
| 69 |
-
values=category_counts.values,
|
| 70 |
-
|
| 71 |
-
title="Post Categories",
|
| 72 |
-
hole=0.4,
|
| 73 |
-
color_discrete_sequence=color_sequence
|
| 74 |
)
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
fig.update_traces(
|
| 78 |
-
textposition='inside',
|
| 79 |
-
textinfo='percent+label',
|
| 80 |
-
hovertemplate='<b>%{label}</b><br>Count: %{value}<br>Percentage: %{percent}<extra></extra>'
|
| 81 |
-
)
|
| 82 |
-
|
| 83 |
-
# Add annotation in center
|
| 84 |
-
fig.add_annotation(
|
| 85 |
-
text=f"Total<br>{len(df)}",
|
| 86 |
-
x=0.5, y=0.5,
|
| 87 |
-
xref="paper", yref="paper",
|
| 88 |
-
showarrow=False,
|
| 89 |
-
font=dict(size=20)
|
| 90 |
-
)
|
| 91 |
-
|
| 92 |
return fig
|
| 93 |
|
| 94 |
def create_mentions_timeline(df):
|
| 95 |
"""Create timeline of Prime Bank mentions if date column exists"""
|
| 96 |
date_columns = ['date', 'created_at', 'timestamp', 'Date', 'post_date']
|
| 97 |
date_col = None
|
| 98 |
-
|
| 99 |
-
# Find date column
|
| 100 |
for col in date_columns:
|
| 101 |
if col in df.columns:
|
| 102 |
date_col = col
|
| 103 |
break
|
| 104 |
-
|
| 105 |
-
if not date_col:
|
| 106 |
-
return None
|
| 107 |
-
|
| 108 |
try:
|
| 109 |
-
# Parse dates
|
| 110 |
df['date_parsed'] = pd.to_datetime(df[date_col], errors='coerce')
|
| 111 |
-
|
| 112 |
-
# Remove invalid dates
|
| 113 |
df_valid = df[df['date_parsed'].notna()]
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
return None
|
| 117 |
-
|
| 118 |
-
# Group by date
|
| 119 |
-
timeline_df = df_valid.groupby(df_valid['date_parsed'].dt.date).agg({
|
| 120 |
-
'prime_mentions': 'sum',
|
| 121 |
-
'sentiment': lambda x: (x == 'Positive').sum()
|
| 122 |
-
}).reset_index()
|
| 123 |
-
|
| 124 |
timeline_df.columns = ['date', 'mentions', 'positive_posts']
|
| 125 |
-
|
| 126 |
-
# Create figure with secondary y-axis
|
| 127 |
fig = make_subplots(specs=[[{"secondary_y": True}]])
|
| 128 |
-
|
| 129 |
-
#
|
| 130 |
-
fig.add_trace(
|
| 131 |
-
go.Scatter(
|
| 132 |
-
x=timeline_df['date'],
|
| 133 |
-
y=timeline_df['mentions'],
|
| 134 |
-
name='Total Mentions',
|
| 135 |
-
line=dict(color='#3498db', width=3),
|
| 136 |
-
mode='lines+markers'
|
| 137 |
-
),
|
| 138 |
-
secondary_y=False,
|
| 139 |
-
)
|
| 140 |
-
|
| 141 |
-
# Add positive posts line
|
| 142 |
-
fig.add_trace(
|
| 143 |
-
go.Scatter(
|
| 144 |
-
x=timeline_df['date'],
|
| 145 |
-
y=timeline_df['positive_posts'],
|
| 146 |
-
name='Positive Posts',
|
| 147 |
-
line=dict(color='#2ecc71', width=2, dash='dot'),
|
| 148 |
-
mode='lines+markers'
|
| 149 |
-
),
|
| 150 |
-
secondary_y=True,
|
| 151 |
-
)
|
| 152 |
-
|
| 153 |
-
# Update layout
|
| 154 |
fig.update_xaxes(title_text="Date")
|
| 155 |
fig.update_yaxes(title_text="Number of Mentions", secondary_y=False)
|
| 156 |
fig.update_yaxes(title_text="Positive Posts", secondary_y=True)
|
| 157 |
-
|
| 158 |
-
fig.update_layout(
|
| 159 |
-
title="Prime Bank Mentions Over Time",
|
| 160 |
-
hovermode='x unified',
|
| 161 |
-
showlegend=True,
|
| 162 |
-
legend=dict(
|
| 163 |
-
yanchor="top",
|
| 164 |
-
y=0.99,
|
| 165 |
-
xanchor="left",
|
| 166 |
-
x=0.01
|
| 167 |
-
)
|
| 168 |
-
)
|
| 169 |
-
|
| 170 |
return fig
|
| 171 |
-
|
| 172 |
except Exception as e:
|
| 173 |
print(f"Error creating timeline: {e}")
|
| 174 |
return None
|
| 175 |
|
| 176 |
-
def create_summary_metrics(df):
|
| 177 |
-
"""Calculate summary metrics for display"""
|
| 178 |
-
total_posts = len(df)
|
| 179 |
-
prime_posts = len(df[df['prime_mentions'] > 0])
|
| 180 |
-
total_mentions = df['prime_mentions'].sum()
|
| 181 |
-
|
| 182 |
-
# Calculate positive sentiment rate
|
| 183 |
-
if prime_posts > 0:
|
| 184 |
-
prime_df = df[df['prime_mentions'] > 0]
|
| 185 |
-
positive_rate = (prime_df['sentiment'] == 'Positive').sum() / prime_posts * 100
|
| 186 |
-
else:
|
| 187 |
-
positive_rate = 0
|
| 188 |
-
|
| 189 |
-
metrics = {
|
| 190 |
-
'Total Posts Analyzed': f"{total_posts:,}",
|
| 191 |
-
'Posts Mentioning Prime Bank': f"{prime_posts:,}",
|
| 192 |
-
'Total Prime Bank Mentions': f"{total_mentions:,}",
|
| 193 |
-
'Positive Sentiment Rate': f"{positive_rate:.1f}%"
|
| 194 |
-
}
|
| 195 |
-
|
| 196 |
-
return metrics
|
| 197 |
-
|
| 198 |
def create_viral_posts_chart(df, top_n=10):
|
| 199 |
"""Create horizontal bar chart of most viral posts"""
|
| 200 |
-
|
| 201 |
top_viral = df.nlargest(top_n, 'viral_score')
|
| 202 |
-
|
| 203 |
-
# Truncate text for display
|
| 204 |
-
top_viral['text_truncated'] = top_viral['text'].apply(
|
| 205 |
-
lambda x: x[:50] + '...' if len(str(x)) > 50 else x
|
| 206 |
-
)
|
| 207 |
-
|
| 208 |
-
# Create horizontal bar chart
|
| 209 |
fig = px.bar(
|
| 210 |
-
top_viral,
|
| 211 |
-
|
| 212 |
-
y='text_truncated',
|
| 213 |
-
orientation='h',
|
| 214 |
-
title=f'Top {top_n} Viral Posts',
|
| 215 |
-
color='sentiment',
|
| 216 |
-
color_discrete_map={
|
| 217 |
-
'Positive': '#2ecc71',
|
| 218 |
-
'Negative': '#e74c3c',
|
| 219 |
-
'Neutral': '#95a5a6'
|
| 220 |
-
},
|
| 221 |
hover_data=['text', 'emotion', 'category']
|
| 222 |
)
|
| 223 |
-
|
| 224 |
-
fig.update_layout(
|
| 225 |
-
yaxis={'categoryorder': 'total ascending'},
|
| 226 |
-
xaxis_title="Viral Score",
|
| 227 |
-
yaxis_title="Post Preview",
|
| 228 |
-
showlegend=True
|
| 229 |
-
)
|
| 230 |
-
|
| 231 |
return fig
|
| 232 |
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
# Combine all text
|
| 245 |
-
all_text = ' '.join(prime_posts.astype(str)).lower()
|
| 246 |
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 254 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 255 |
|
| 256 |
-
|
| 257 |
-
words = re.findall(r'\b[a-z]+\b', all_text)
|
| 258 |
-
words = [word for word in words if word not in stop_words and len(word) > 3]
|
| 259 |
-
|
| 260 |
-
# Count frequency
|
| 261 |
-
word_freq = Counter(words).most_common(top_n)
|
| 262 |
-
|
| 263 |
-
if not word_freq:
|
| 264 |
return None
|
|
|
|
|
|
|
|
|
|
| 265 |
|
| 266 |
-
|
| 267 |
-
freq_df = pd.DataFrame(word_freq, columns=['Word', 'Frequency'])
|
| 268 |
|
| 269 |
-
# Create bar chart
|
| 270 |
fig = px.bar(
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
y='Word',
|
| 274 |
-
orientation='h',
|
| 275 |
-
title=f'Top {top_n} Words in Prime Bank Posts',
|
| 276 |
-
color='Frequency',
|
| 277 |
-
color_continuous_scale='Blues'
|
| 278 |
-
)
|
| 279 |
-
|
| 280 |
-
fig.update_layout(
|
| 281 |
-
yaxis={'categoryorder': 'total ascending'},
|
| 282 |
-
showlegend=False
|
| 283 |
)
|
| 284 |
-
|
|
|
|
| 285 |
return fig
|
| 286 |
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
if len(prime_df) == 0:
|
| 293 |
return None
|
| 294 |
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
sentiments = ['Positive', 'Negative', 'Neutral']
|
| 306 |
-
colors = {'Positive': '#2ecc71', 'Negative': '#e74c3c', 'Neutral': '#95a5a6'}
|
| 307 |
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
name=sentiment,
|
| 312 |
-
x=sentiment_category.index,
|
| 313 |
-
y=sentiment_category[sentiment],
|
| 314 |
-
marker_color=colors.get(sentiment, '#95a5a6'),
|
| 315 |
-
hovertemplate='%{x}<br>%{y:.1f}%<extra></extra>'
|
| 316 |
-
))
|
| 317 |
|
| 318 |
-
|
| 319 |
-
barmode='stack',
|
| 320 |
-
title='Sentiment Distribution by Post Category',
|
| 321 |
-
xaxis_title='Category',
|
| 322 |
-
yaxis_title='Percentage',
|
| 323 |
-
yaxis=dict(tickformat='.0f', ticksuffix='%'),
|
| 324 |
-
showlegend=True,
|
| 325 |
-
legend=dict(
|
| 326 |
-
orientation="h",
|
| 327 |
-
yanchor="bottom",
|
| 328 |
-
y=1.02,
|
| 329 |
-
xanchor="right",
|
| 330 |
-
x=1
|
| 331 |
-
)
|
| 332 |
-
)
|
| 333 |
|
| 334 |
-
|
| 335 |
-
|
| 336 |
-
def create_priority_matrix(df):
|
| 337 |
-
"""Create scatter plot showing priority posts"""
|
| 338 |
-
# Filter for Prime Bank mentions
|
| 339 |
-
prime_df = df[df['prime_mentions'] > 0].copy()
|
| 340 |
-
|
| 341 |
-
if len(prime_df) == 0:
|
| 342 |
return None
|
| 343 |
-
|
| 344 |
-
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
x='viral_score',
|
| 354 |
-
y='urgency',
|
| 355 |
-
size='prime_mentions',
|
| 356 |
-
color='sentiment',
|
| 357 |
-
hover_data=['text', 'emotion', 'category'],
|
| 358 |
-
title='Priority Matrix: Viral Score vs Urgency',
|
| 359 |
-
color_discrete_map={
|
| 360 |
-
'Positive': '#2ecc71',
|
| 361 |
-
'Negative': '#e74c3c',
|
| 362 |
-
'Neutral': '#95a5a6'
|
| 363 |
-
}
|
| 364 |
-
)
|
| 365 |
-
|
| 366 |
-
# Add quadrant lines
|
| 367 |
-
fig.add_hline(y=2.5, line_dash="dash", line_color="gray", opacity=0.5)
|
| 368 |
-
fig.add_vline(x=prime_df['viral_score'].median(), line_dash="dash", line_color="gray", opacity=0.5)
|
| 369 |
-
|
| 370 |
-
# Add quadrant labels
|
| 371 |
-
fig.add_annotation(x=0.95, y=0.95, text="High Priority", xref="paper", yref="paper", showarrow=False)
|
| 372 |
-
fig.add_annotation(x=0.05, y=0.95, text="Monitor", xref="paper", yref="paper", showarrow=False)
|
| 373 |
-
|
| 374 |
-
fig.update_layout(
|
| 375 |
-
xaxis_title="Viral Score (Reach)",
|
| 376 |
-
yaxis_title="Urgency Score",
|
| 377 |
-
showlegend=True
|
| 378 |
)
|
| 379 |
-
|
| 380 |
return fig
|
|
|
|
| 1 |
+
# src/visualizations.py
|
| 2 |
+
|
| 3 |
import plotly.express as px
|
| 4 |
import plotly.graph_objects as go
|
| 5 |
from plotly.subplots import make_subplots
|
| 6 |
import pandas as pd
|
| 7 |
+
from collections import Counter
|
| 8 |
+
import re
|
| 9 |
|
| 10 |
def create_sentiment_pie(df):
|
| 11 |
"""Create sentiment distribution pie chart"""
|
| 12 |
sentiment_counts = df['sentiment'].value_counts()
|
|
|
|
| 13 |
fig = px.pie(
|
| 14 |
values=sentiment_counts.values,
|
| 15 |
names=sentiment_counts.index,
|
| 16 |
title="Sentiment Distribution",
|
| 17 |
+
color_discrete_map={'Positive': '#2ecc71', 'Negative': '#e74c3c', 'Neutral': '#95a5a6'}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
)
|
| 19 |
+
fig.update_traces(textposition='inside', textinfo='percent+label', hovertemplate='<b>%{label}</b><br>Count: %{value}<br>Percentage: %{percent}<extra></extra>')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
return fig
|
| 21 |
|
| 22 |
def create_emotion_bar(df):
|
| 23 |
"""Create emotion distribution bar chart"""
|
| 24 |
emotion_counts = df['emotion'].value_counts()
|
| 25 |
+
color_map = {'Joy': '#f39c12', 'Frustration': '#e74c3c', 'Confusion': '#3498db', 'Anxiety': '#9b59b6', 'Neutral': '#95a5a6'}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
fig = px.bar(
|
| 27 |
+
x=emotion_counts.index, y=emotion_counts.values, title="Emotion Detection",
|
| 28 |
+
labels={'x': 'Emotion', 'y': 'Count'}, color=emotion_counts.index, color_discrete_map=color_map
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
)
|
| 30 |
+
fig.update_layout(showlegend=False, xaxis_tickangle=-45, yaxis=dict(gridcolor='rgba(0,0,0,0.1)'))
|
| 31 |
return fig
|
| 32 |
|
| 33 |
def create_category_donut(df):
|
| 34 |
"""Create post category donut chart"""
|
| 35 |
category_counts = df['category'].value_counts()
|
|
|
|
|
|
|
| 36 |
color_sequence = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd']
|
|
|
|
| 37 |
fig = px.pie(
|
| 38 |
+
values=category_counts.values, names=category_counts.index, title="Post Categories",
|
| 39 |
+
hole=0.4, color_discrete_sequence=color_sequence
|
|
|
|
|
|
|
|
|
|
| 40 |
)
|
| 41 |
+
fig.update_traces(textposition='inside', textinfo='percent+label', hovertemplate='<b>%{label}</b><br>Count: %{value}<br>Percentage: %{percent}<extra></extra>')
|
| 42 |
+
fig.add_annotation(text=f"Total<br>{len(df)}", x=0.5, y=0.5, xref="paper", yref="paper", showarrow=False, font=dict(size=20))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
return fig
|
| 44 |
|
| 45 |
def create_mentions_timeline(df):
|
| 46 |
"""Create timeline of Prime Bank mentions if date column exists"""
|
| 47 |
date_columns = ['date', 'created_at', 'timestamp', 'Date', 'post_date']
|
| 48 |
date_col = None
|
|
|
|
|
|
|
| 49 |
for col in date_columns:
|
| 50 |
if col in df.columns:
|
| 51 |
date_col = col
|
| 52 |
break
|
| 53 |
+
if not date_col: return None
|
|
|
|
|
|
|
|
|
|
| 54 |
try:
|
|
|
|
| 55 |
df['date_parsed'] = pd.to_datetime(df[date_col], errors='coerce')
|
|
|
|
|
|
|
| 56 |
df_valid = df[df['date_parsed'].notna()]
|
| 57 |
+
if len(df_valid) == 0: return None
|
| 58 |
+
timeline_df = df_valid.groupby(df_valid['date_parsed'].dt.date).agg({'prime_mentions': 'sum', 'sentiment': lambda x: (x == 'Positive').sum()}).reset_index()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
timeline_df.columns = ['date', 'mentions', 'positive_posts']
|
|
|
|
|
|
|
| 60 |
fig = make_subplots(specs=[[{"secondary_y": True}]])
|
| 61 |
+
fig.add_trace(go.Scatter(x=timeline_df['date'], y=timeline_df['mentions'], name='Total Mentions', line=dict(color='#3498db', width=3), mode='lines+markers'), secondary_y=False)
|
| 62 |
+
fig.add_trace(go.Scatter(x=timeline_df['date'], y=timeline_df['positive_posts'], name='Positive Posts', line=dict(color='#2ecc71', width=2, dash='dot'), mode='lines+markers'), secondary_y=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
fig.update_xaxes(title_text="Date")
|
| 64 |
fig.update_yaxes(title_text="Number of Mentions", secondary_y=False)
|
| 65 |
fig.update_yaxes(title_text="Positive Posts", secondary_y=True)
|
| 66 |
+
fig.update_layout(title="Prime Bank Mentions Over Time", hovermode='x unified', showlegend=True, legend=dict(yanchor="top", y=0.99, xanchor="left", x=0.01))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
return fig
|
|
|
|
| 68 |
except Exception as e:
|
| 69 |
print(f"Error creating timeline: {e}")
|
| 70 |
return None
|
| 71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
def create_viral_posts_chart(df, top_n=10):
|
| 73 |
"""Create horizontal bar chart of most viral posts"""
|
| 74 |
+
if 'viral_score' not in df.columns or df.empty: return None
|
| 75 |
top_viral = df.nlargest(top_n, 'viral_score')
|
| 76 |
+
top_viral['text_truncated'] = top_viral['text'].apply(lambda x: x[:50] + '...' if len(str(x)) > 50 else x)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
fig = px.bar(
|
| 78 |
+
top_viral, x='viral_score', y='text_truncated', orientation='h', title=f'Top {top_n} Viral Posts',
|
| 79 |
+
color='sentiment', color_discrete_map={'Positive': '#2ecc71', 'Negative': '#e74c3c', 'Neutral': '#95a5a6'},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
hover_data=['text', 'emotion', 'category']
|
| 81 |
)
|
| 82 |
+
fig.update_layout(yaxis={'categoryorder': 'total ascending'}, xaxis_title="Viral Score", yaxis_title="Post Preview", showlegend=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
return fig
|
| 84 |
|
| 85 |
+
# --- MODIFIED FUNCTION ---
|
| 86 |
+
def create_summary_metrics(df):
|
| 87 |
+
"""Calculate summary metrics for display, including new scores."""
|
| 88 |
+
if 'prime_mentions' not in df.columns or df.empty:
|
| 89 |
+
return {
|
| 90 |
+
'Bank Sentiment Score': 0,
|
| 91 |
+
'Engagement-Weighted Sentiment': '0.00'
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
prime_df = df[df['prime_mentions'] > 0]
|
|
|
|
|
|
|
|
|
|
| 95 |
|
| 96 |
+
if not prime_df.empty:
|
| 97 |
+
positive_mentions = (prime_df['sentiment'] == 'Positive').sum()
|
| 98 |
+
negative_mentions = (prime_df['sentiment'] == 'Negative').sum()
|
| 99 |
+
|
| 100 |
+
# New Metric 1: Bank Sentiment Score
|
| 101 |
+
bank_sentiment_score = positive_mentions - negative_mentions
|
| 102 |
+
|
| 103 |
+
# New Metric 2: Engagement-Weighted Sentiment
|
| 104 |
+
ew_sentiment = (prime_df['polarity'] * prime_df['viral_score']).sum()
|
| 105 |
+
else:
|
| 106 |
+
bank_sentiment_score = 0
|
| 107 |
+
ew_sentiment = 0
|
| 108 |
+
|
| 109 |
+
metrics = {
|
| 110 |
+
'Bank Sentiment Score': f"{bank_sentiment_score:+,}", # Add sign
|
| 111 |
+
'Engagement-Weighted Sentiment': f"{ew_sentiment:,.2f}"
|
| 112 |
}
|
| 113 |
+
return metrics
|
| 114 |
+
|
| 115 |
+
# --- NEW FUNCTION 1 ---
|
| 116 |
+
def create_bank_comparison_chart(df):
|
| 117 |
+
"""Create bar chart comparing mentions of Prime Bank vs competitors."""
|
| 118 |
+
if 'all_banks_mentioned' not in df.columns or df.empty:
|
| 119 |
+
return None
|
| 120 |
+
|
| 121 |
+
mentions = df['all_banks_mentioned'].explode().dropna()
|
| 122 |
|
| 123 |
+
if mentions.empty:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
return None
|
| 125 |
+
|
| 126 |
+
bank_counts = mentions.value_counts().reset_index()
|
| 127 |
+
bank_counts.columns = ['Bank', 'Mentions']
|
| 128 |
|
| 129 |
+
bank_counts['Bank'] = bank_counts['Bank'].str.replace('_', ' ').str.title()
|
|
|
|
| 130 |
|
|
|
|
| 131 |
fig = px.bar(
|
| 132 |
+
bank_counts, x='Bank', y='Mentions', title='Bank Mention Comparison',
|
| 133 |
+
color='Bank', text='Mentions'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
)
|
| 135 |
+
fig.update_layout(xaxis_title=None, yaxis_title="Total Mentions", showlegend=False)
|
| 136 |
+
fig.update_traces(textposition='outside')
|
| 137 |
return fig
|
| 138 |
|
| 139 |
+
# --- NEW FUNCTION 2 ---
|
| 140 |
+
def create_geolocation_map(df, mapbox_token=None):
|
| 141 |
+
"""Create a map showing where Prime Bank mentions are coming from."""
|
| 142 |
+
if 'location' not in df.columns or df.empty:
|
| 143 |
+
st.info("No 'location' column found in data to generate map.")
|
|
|
|
| 144 |
return None
|
| 145 |
|
| 146 |
+
geo_mapping = {
|
| 147 |
+
'Dhaka': {'lat': 23.8103, 'lon': 90.4125},
|
| 148 |
+
'Chittagong': {'lat': 22.3569, 'lon': 91.7832},
|
| 149 |
+
'Sylhet': {'lat': 24.8949, 'lon': 91.8687},
|
| 150 |
+
'Rajshahi': {'lat': 24.3745, 'lon': 88.6042},
|
| 151 |
+
'Khulna': {'lat': 22.8456, 'lon': 89.5403},
|
| 152 |
+
'Barisal': {'lat': 22.7010, 'lon': 90.3535},
|
| 153 |
+
'Rangpur': {'lat': 25.7439, 'lon': 89.2752},
|
| 154 |
+
}
|
|
|
|
|
|
|
|
|
|
| 155 |
|
| 156 |
+
df_loc = df.copy()
|
| 157 |
+
df_loc['lat'] = df_loc['location'].map(lambda x: geo_mapping.get(x, {}).get('lat'))
|
| 158 |
+
df_loc['lon'] = df_loc['location'].map(lambda x: geo_mapping.get(x, {}).get('lon'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
|
| 160 |
+
df_loc.dropna(subset=['lat', 'lon'], inplace=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
|
| 162 |
+
if df_loc.empty:
|
| 163 |
+
st.info("No valid locations found in data to plot on map.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 164 |
return None
|
| 165 |
+
|
| 166 |
+
location_counts = df_loc.groupby(['location', 'lat', 'lon']).size().reset_index(name='mentions')
|
| 167 |
+
|
| 168 |
+
fig = px.scatter_mapbox(
|
| 169 |
+
location_counts, lat="lat", lon="lon", size="mentions", color="mentions",
|
| 170 |
+
hover_name="location", hover_data={"lat": False, "lon": False, "mentions": True},
|
| 171 |
+
color_continuous_scale=px.colors.cyclical.IceFire, size_max=30, zoom=5,
|
| 172 |
+
center={"lat": 23.6850, "lon": 90.3563},
|
| 173 |
+
title="Geographic Hotspots for Prime Bank Mentions",
|
| 174 |
+
mapbox_style="carto-positron"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
)
|
| 176 |
+
fig.update_layout(margin={"r":0,"t":40,"l":0,"b":0})
|
| 177 |
return fig
|
test_reviews.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Prime Bank provides exceptional service. Highly recommend!
|
| 2 |
+
Terrible experience with Prime Bank customer support.
|
| 3 |
+
Prime Bank mobile app keeps crashing. Please fix this!
|
| 4 |
+
Love the new features in Prime Bank online banking.
|
| 5 |
+
Why does Prime Bank charge so many fees?
|
test_social_media_data.csv
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
text,date,likes,shares
|
| 2 |
+
Prime Bank has the best customer service! Love their mobile app.,2024-01-01,45,5
|
| 3 |
+
Worst experience at Prime Bank branch today. Waited 2 hours!,2024-01-02,12,2
|
| 4 |
+
How do I apply for a loan at Prime Bank?,2024-01-03,5,1
|
| 5 |
+
Prime Bank ATM is not working again. So frustrated!,2024-01-04,89,15
|
| 6 |
+
Thank you Prime Bank staff for helping with my account.,2024-01-05,34,8
|
| 7 |
+
What are Prime Bank interest rates?,2024-01-06,8,1
|
| 8 |
+
Prime Bank online banking is confusing.,2024-01-07,15,3
|
| 9 |
+
Excellent service at Prime Bank downtown branch!,2024-01-08,67,12
|
| 10 |
+
Prime Bank charged me hidden fees. Very disappointed.,2024-01-09,102,25
|
| 11 |
+
Can someone explain Prime Bank credit card benefits?,2024-01-10,22,4
|