sadeghsam commited on
Commit
08b2ff1
·
verified ·
1 Parent(s): 166a074

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -19
app.py CHANGED
@@ -2,44 +2,40 @@ import gradio as gr
2
  from transformers import pipeline
3
  import pandas as pd
4
 
5
- # تعریف pipeline‌های خلاصه‌سازی و برچسب‌گذاری
6
- summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
7
- classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
8
-
9
- # لیست برچسب‌های پیشنهادی (می‌توانید برچسب‌های دلخواه خودتان را تعریف کنید)
10
- candidate_labels = ["فنی", "مالی", "پشتیبانی", "سایر"]
11
 
12
  def process_chats(file_obj):
13
- # خواندن فایل CSV (فایل ورودی باید ستونی به نام 'chat' داشته باشد)
14
  df = pd.read_csv(file_obj)
15
  summaries = []
16
  tags = []
17
 
18
  for chat in df['chat']:
19
- # تولید خلاصه از متن چت
20
- summary_text = summarizer(chat, max_length=130, min_length=30, do_sample=False)[0]['summary_text']
 
21
 
22
- # برچسب‌گذاری چت با استفاده از zero-shot classification
23
- classification = classifier(chat, candidate_labels)
24
- top_label = classification['labels'][0]
25
 
26
  summaries.append(summary_text)
27
- tags.append(top_label)
28
 
29
- # اضافه کردن خلاصه و برچسب به DataFrame
30
  df['خلاصه'] = summaries
31
  df['برچسب'] = tags
32
-
33
- # خروجی نهایی به صورت یک فایل CSV
34
  return df.to_csv(index=False)
35
 
36
- # ایجاد رابط کاربری Gradio
37
  iface = gr.Interface(
38
  fn=process_chats,
39
  inputs=gr.File(label="آپلود فایل چت (CSV با ستون 'chat')"),
40
  outputs="file",
41
- title="خلاصه‌سازی و برچسب‌گذاری چت‌های پشتیبانی",
42
- description="فایل چت‌های پشتیبانی را آپلود کنید تا برای هر چت یک خلاصه و برچسب استخراج شود."
43
  )
44
 
45
  iface.launch()
 
2
  from transformers import pipeline
3
  import pandas as pd
4
 
5
+ # استفاده از مدل ParsT5 برای تولید خلاصه متون فارسی
6
+ summarizer = pipeline("text2text-generation", model="HooshvareLab/parsT5-base")
7
+ # استفاده از مدل ParsBERT برای دسته‌بندی (برچسب‌گذاری) متن فارسی
8
+ classifier = pipeline("text-classification", model="HooshvareLab/bert-base-parsbert-uncased")
 
 
9
 
10
  def process_chats(file_obj):
11
+ # خواندن فایل CSV؛ فرض شده ستون 'chat' شامل متن هر چت است.
12
  df = pd.read_csv(file_obj)
13
  summaries = []
14
  tags = []
15
 
16
  for chat in df['chat']:
17
+ # افزودن پیشوند برای روشن کردن وظیفه خلاصه‌سازی به مدل
18
+ sum_input = "خلاصه کن: " + chat
19
+ summary_text = summarizer(sum_input, max_length=130, min_length=30, do_sample=False)[0]['generated_text']
20
 
21
+ # دسته‌بندی متن برای اختصاص برچسب
22
+ classification = classifier(chat)
23
+ tag = classification[0]['label']
24
 
25
  summaries.append(summary_text)
26
+ tags.append(tag)
27
 
 
28
  df['خلاصه'] = summaries
29
  df['برچسب'] = tags
30
+ # برگرداندن خروجی به صورت فایل CSV
 
31
  return df.to_csv(index=False)
32
 
 
33
  iface = gr.Interface(
34
  fn=process_chats,
35
  inputs=gr.File(label="آپلود فایل چت (CSV با ستون 'chat')"),
36
  outputs="file",
37
+ title="خلاصه‌سازی و برچسب‌گذاری چت‌های پشتیبانی به زبان فارسی",
38
+ description="با آپلود فایل چت (CSV) که شامل ستون 'chat' است، یک نسخه خلاصه‌شده و برچسب‌خورده از چت‌ها دریافت کنید."
39
  )
40
 
41
  iface.launch()