Medon90ae commited on
Commit
44058b6
·
verified ·
1 Parent(s): d6d13a2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +92 -1
app.py CHANGED
@@ -8,6 +8,7 @@ from content_creation import generate_tourism_article, extract_keywords
8
  from content_analysis import analyze_content_readability, analyze_sentiment, improve_content
9
  from media_generation import generate_chalet_image, create_image_prompt
10
  from performance_analysis import analyze_content_performance, create_performance_charts, generate_sample_data
 
11
 
12
 
13
  # إعداد الصفحة
@@ -233,7 +234,97 @@ elif choice == "تحليل الأداء":
233
 
234
  elif choice == "إدارة البيانات":
235
  st.subheader("إدارة مجموعات البيانات")
236
- st.info("هذه الصفحة قيد التطوير")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
 
238
  elif choice == "استهداف الجمهور":
239
  st.subheader("استهداف الجمهور المناسب")
 
8
  from content_analysis import analyze_content_readability, analyze_sentiment, improve_content
9
  from media_generation import generate_chalet_image, create_image_prompt
10
  from performance_analysis import analyze_content_performance, create_performance_charts, generate_sample_data
11
+ from data_management import load_tourism_datasets, create_chalet_dataset, filter_dataset_by_criteria, analyze_dataset
12
 
13
 
14
  # إعداد الصفحة
 
234
 
235
  elif choice == "إدارة البيانات":
236
  st.subheader("إدارة مجموعات البيانات")
237
+
238
+ tab1, tab2, tab3 = st.tabs(["استكشاف البيانات", "تصفية البيانات", "تحليل البيانات"])
239
+
240
+ # تحميل مجموعة البيانات إذا لم تكن محملة بالفعل
241
+ if 'tourism_dataset' not in st.session_state:
242
+ with st.spinner("جاري تحميل البيانات..."):
243
+ st.session_state.tourism_dataset = load_tourism_datasets()
244
+
245
+ with tab1:
246
+ st.write("### استكشاف بيانات الشاليهات")
247
+
248
+ # عرض البيانات
249
+ df = st.session_state.tourism_dataset.to_pandas()
250
+ st.dataframe(df)
251
+
252
+ # معلومات إحصائية
253
+ st.write("### معلومات إحصائية")
254
+ st.write(f"عدد الشاليهات: {len(df)}")
255
+ st.write(f"متوسط السعر: {df['price'].mean():.2f} جنيه")
256
+ st.write(f"متوسط التقييم: {df['rating'].mean():.2f} من 5")
257
+
258
+ with tab2:
259
+ st.write("### تصفية البيانات حسب المعايير")
260
+
261
+ # معايير التصفية
262
+ col1, col2 = st.columns(2)
263
+ with col1:
264
+ location_filter = st.selectbox("الموقع:", ["", *df['location'].unique()])
265
+ audience_filter = st.selectbox("الجمهور المستهدف:", ["", *df['target_audience'].unique()])
266
+
267
+ with col2:
268
+ season_filter = st.selectbox("الموسم:", ["", *df['season'].unique()])
269
+ min_rating = st.slider("الحد الأدنى للتقييم:", 0.0, 5.0, 0.0, 0.1)
270
+
271
+ # تطبيق التصفية
272
+ if st.button("تصفية البيانات"):
273
+ criteria = {
274
+ 'location': location_filter,
275
+ 'target_audience': audience_filter,
276
+ 'season': season_filter
277
+ }
278
+
279
+ # إزالة المعايير الفارغة
280
+ criteria = {k: v for k, v in criteria.items() if v}
281
+
282
+ # تصفية البيانات
283
+ filtered_dataset = filter_dataset_by_criteria(st.session_state.tourism_dataset, criteria)
284
+
285
+ # تصفية حسب التقييم (لا يمكن استخدامها مباشرة في filter_dataset_by_criteria)
286
+ filtered_df = filtered_dataset.to_pandas()
287
+ if min_rating > 0:
288
+ filtered_df = filtered_df[filtered_df['rating'] >= min_rating]
289
+
290
+ # عرض النتائج
291
+ st.write(f"تم العثور على {len(filtered_df)} شاليه مطابق للمعايير:")
292
+ st.dataframe(filtered_df)
293
+
294
+ with tab3:
295
+ st.write("### تحليل بيانات الشاليهات")
296
+
297
+ if st.button("تحليل البيانات"):
298
+ with st.spinner("جاري تحليل البيانات..."):
299
+ analysis = analyze_dataset(st.session_state.tourism_dataset)
300
+
301
+ # عرض التحليل
302
+ st.write(f"عدد الشاليهات: {analysis['count']}")
303
+
304
+ # توزيع المواقع
305
+ st.write("### توزيع المواقع")
306
+ location_df = pd.DataFrame({
307
+ 'الموقع': list(analysis['locations'].keys()),
308
+ 'العدد': list(analysis['locations'].values())
309
+ })
310
+ st.bar_chart(location_df.set_index('الموقع'))
311
+
312
+ # توزيع الجمهور المستهدف
313
+ st.write("### توزيع الجمهور المستهدف")
314
+ audience_df = pd.DataFrame({
315
+ 'الجمهور': list(analysis['audience_distribution'].keys()),
316
+ 'العدد': list(analysis['audience_distribution'].values())
317
+ })
318
+ st.bar_chart(audience_df.set_index('الجمهور'))
319
+
320
+ # توزيع المواسم
321
+ st.write("### توزيع المواسم")
322
+ season_df = pd.DataFrame({
323
+ 'الموسم': list(analysis['season_distribution'].keys()),
324
+ 'العدد': list(analysis['season_distribution'].values())
325
+ })
326
+ st.bar_chart(season_df.set_index('الموسم'))
327
+
328
 
329
  elif choice == "استهداف الجمهور":
330
  st.subheader("استهداف الجمهور المناسب")