boompack commited on
Commit
6e3f65c
1 Parent(s): df63d2c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -6
app.py CHANGED
@@ -1,14 +1,17 @@
1
  import re
 
2
 
3
  def parse_comments(raw_text):
4
- # Разбиваем текст на отдельные комментарии по слову "Ответить"
5
  comment_blocks = raw_text.split("Ответить")
6
 
7
  results = []
8
  for block in comment_blocks:
9
- # Извлекаем никнейм до времени (например, до "1 нед.") и текст после него
10
- user_match = re.search(r'([a-zA-Z0-9_]+)', block)
11
- text_match = re.search(r'([^\d]+?)\d+\sнед.', block)
 
 
12
  likes_match = re.search(r'Нравится:\s*(\d+)', block)
13
 
14
  if user_match and text_match:
@@ -16,7 +19,7 @@ def parse_comments(raw_text):
16
  text = text_match.group(1).strip()
17
  likes = int(likes_match.group(1)) if likes_match else 0
18
 
19
- # Добавляем только, если текст не пустой
20
  if text:
21
  results.append({"Пользователь": user, "Текст": text, "Лайков": likes})
22
 
@@ -28,4 +31,14 @@ raw_text = """alormusicgroupKeep going‼️‼️1 нед.Нравится: 1О
28
  # Вывод
29
  parsed_comments = parse_comments(raw_text)
30
  for comment in parsed_comments:
31
- print(comment)
 
 
 
 
 
 
 
 
 
 
 
1
  import re
2
+ import gradio as gr
3
 
4
  def parse_comments(raw_text):
5
+ # Разбиваем текст на отдельные комментарии по "Ответить", что указывает на конец каждого блока комментария
6
  comment_blocks = raw_text.split("Ответить")
7
 
8
  results = []
9
  for block in comment_blocks:
10
+ # Находим никнейм пользователя, начиная с начала строки до первого не-буквенного символа или цифры
11
+ user_match = re.search(r'^([a-zA-Z0-9_]+)', block.strip())
12
+ # Находим текст комментария, который начинается после никнейма и перед временем ("1 нед." или "1 дн.")
13
+ text_match = re.search(r'@\w+\s+(.+?)(?:\d+\s(?:нед|дн)\.)', block)
14
+ # Находим количество лайков, если оно указано
15
  likes_match = re.search(r'Нравится:\s*(\d+)', block)
16
 
17
  if user_match and text_match:
 
19
  text = text_match.group(1).strip()
20
  likes = int(likes_match.group(1)) if likes_match else 0
21
 
22
+ # Добавляем результат в список только если текст не пустой
23
  if text:
24
  results.append({"Пользователь": user, "Текст": text, "Лайков": likes})
25
 
 
31
  # Вывод
32
  parsed_comments = parse_comments(raw_text)
33
  for comment in parsed_comments:
34
+ print(comment)
35
+
36
+ # Настройка Gradio интерфейса
37
+ iface = gr.Interface(
38
+ fn=process_text,
39
+ inputs=gr.Textbox(lines=10, placeholder="Введите текст сюда..."),
40
+ outputs=gr.Textbox(lines=10, placeholder="Результат...")
41
+ )
42
+
43
+ # Запуск интерфейса
44
+ iface.launch()