KIMOSSINO commited on
Commit
c72d7d4
·
verified ·
1 Parent(s): f9d9aab

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -22
app.py CHANGED
@@ -3,36 +3,49 @@ from collections import Counter
3
  import re
4
 
5
  # دالة استخراج الكلمات والهاشتاغات من ملف .txt
6
- def extract_from_txt(file, min_frequency=1):
7
- if not file:
8
- return "❌ لم يتم رفع ملف", "❌ لم يتم رفع ملف"
9
-
10
  try:
11
  # قراءة محتوى الملف
12
- content = file.read().decode("utf-8")
 
 
13
 
14
- # استخراج النصوص المحتوية على هاشتاغات
15
- hashtags = re.findall(r"#\w+", content)
16
 
17
- # حساب تكرار الهاشتاغات
18
- hashtags_counter = Counter(hashtags)
19
- filtered_hashtags = [
20
- f"{tag}: {count}" for tag, count in hashtags_counter.items() if count >= min_frequency
21
- ]
22
- hashtags_output = "\n".join(filtered_hashtags) if filtered_hashtags else "❌ لا توجد هاشتاغات متكررة"
 
 
23
 
24
- # تحليل الكلمات المتكررة في النص
25
- words = re.findall(r"\b\w+\b", content.lower())
26
- words_counter = Counter(words)
27
- filtered_words = [
28
- f"{word}: {count}" for word, count in words_counter.items() if count >= min_frequency
 
 
 
 
29
  ]
30
- words_output = "\n".join(filtered_words) if filtered_words else "❌ لا توجد كلمات متكررة"
31
 
32
- return words_output, hashtags_output
 
33
 
34
- except Exception as e:
35
- return f"❌ خطأ أثناء معالجة الملف: {str(e)}", "❌ خطأ أثناء معالجة الملف"
 
 
 
 
 
 
 
36
 
37
 
38
  # إنشاء واجهة Gradio
 
3
  import re
4
 
5
  # دالة استخراج الكلمات والهاشتاغات من ملف .txt
6
+ def extract_titles_and_hashtags(file):
 
 
 
7
  try:
8
  # قراءة محتوى الملف
9
+ content = file.read() if hasattr(file, 'read') else open(file.name, 'r', encoding='utf-8').read()
10
+ except Exception as e:
11
+ return f"خطأ أثناء قراءة الملف: {str(e)}", None
12
 
13
+ # تحليل HTML باستخدام BeautifulSoup
14
+ soup = BeautifulSoup(content, 'html.parser')
15
 
16
+ # استخراج البيانات
17
+ data = []
18
+ hashtags_counter = Counter()
19
+
20
+ # العثور على الحاويات التي تحتوي على البيانات
21
+ desc_containers = soup.find_all('div', class_="css-vi46v1-DivDesContainer")
22
+ if not desc_containers:
23
+ return "لم يتم العثور على أي بيانات مطابقة.", ""
24
 
25
+ for container in desc_containers:
26
+ # استخراج العنوان من الخاصية aria-label
27
+ title = container.get('aria-label', 'بدون عنوان')
28
+
29
+ # استخراج الهاشتاغات
30
+ hashtags = [
31
+ tag.get_text(strip=True)
32
+ for tag in container.find_all('a')
33
+ if tag.get_text(strip=True).startswith('#')
34
  ]
35
+ hashtags_counter.update(hashtags)
36
 
37
+ # إضافة البيانات إلى القائمة
38
+ data.append({"Title": title, "Hashtags": ", ".join(hashtags)})
39
 
40
+ # تحويل البيانات إلى DataFrame
41
+ df_titles = pd.DataFrame(data)
42
+ df_hashtags = pd.DataFrame(hashtags_counter.items(), columns=["Hashtag", "Count"]).sort_values(by="Count", ascending=False)
43
+
44
+ # تحويل النتائج إلى HTML للعرض
45
+ titles_html = df_titles.to_html(index=False) if not df_titles.empty else "لا توجد عناوين مستخرجة."
46
+ hashtags_html = df_hashtags.to_html(index=False) if not df_hashtags.empty else "لا توجد هاشتاغات مستخرجة."
47
+
48
+ return titles_html, hashtags_html
49
 
50
 
51
  # إنشاء واجهة Gradio