Update app.py
Browse files
app.py
CHANGED
@@ -2,12 +2,35 @@ import gradio as gr
|
|
2 |
import re
|
3 |
|
4 |
# Функция для обработки входного текста
|
5 |
-
def process_text(input_text):
|
6 |
# Печать входных данных для отладки
|
7 |
print(f"Входные данные: {input_text}")
|
8 |
|
9 |
# Регулярное выражение для извлечения данных
|
10 |
-
pattern
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
# Проверка пустого ввода
|
13 |
if not input_text.strip():
|
@@ -23,6 +46,11 @@ def process_text(input_text):
|
|
23 |
if not matches:
|
24 |
return "Совпадения не найдены. Пожалуйста, проверьте ввод."
|
25 |
|
|
|
|
|
|
|
|
|
|
|
26 |
# Формируем вывод
|
27 |
output = []
|
28 |
for i, match in enumerate(matches, 1):
|
@@ -33,8 +61,10 @@ def process_text(input_text):
|
|
33 |
|
34 |
# Настройка Gradio интерфейса
|
35 |
iface = gr.Interface(
|
36 |
-
fn=process_text,
|
37 |
-
inputs=gr.Textbox(lines=10, placeholder="Введите текст сюда..."),
|
|
|
|
|
38 |
outputs=gr.Textbox(lines=10, placeholder="Результат...")
|
39 |
)
|
40 |
|
|
|
2 |
import re
|
3 |
|
4 |
# Функция для обработки входного текста
|
5 |
+
def process_text(input_text, comment_count, pattern):
|
6 |
# Печать входных данных для отладки
|
7 |
print(f"Входные данные: {input_text}")
|
8 |
|
9 |
# Регулярное выражение для извлечения данных
|
10 |
+
if pattern == "Нравится":
|
11 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\sНравится:\s*(\d+))?\s*$"
|
12 |
+
elif pattern == "Лайков":
|
13 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\sЛайков:\s*(\d+))?\s*$"
|
14 |
+
elif pattern == "Like":
|
15 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\sLike:\s*(\d+))?\s*$"
|
16 |
+
elif pattern == "likes":
|
17 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*likes)?\s*$"
|
18 |
+
elif pattern == "like":
|
19 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*like)?\s*$"
|
20 |
+
elif pattern == "like +":
|
21 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*like)?\s*\+\s*$"
|
22 |
+
elif pattern == "Плюс":
|
23 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*)\s*\+\s*$"
|
24 |
+
elif pattern == "Минус":
|
25 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*)\s*-\s*$"
|
26 |
+
elif pattern == "Равно":
|
27 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*)\s*=\s*$"
|
28 |
+
elif pattern == "Точка":
|
29 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*)\s*\.\s*$"
|
30 |
+
elif pattern == "Запятая":
|
31 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*)\s*\,\s*$"
|
32 |
+
elif pattern == "Точка с запятой":
|
33 |
+
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\s(\d+)\s*)\s*\;\s*$"
|
34 |
|
35 |
# Проверка пустого ввода
|
36 |
if not input_text.strip():
|
|
|
46 |
if not matches:
|
47 |
return "Совпадения не найдены. Пожалуйста, проверьте ввод."
|
48 |
|
49 |
+
# Проверка количества комментариев
|
50 |
+
actual_comment_count = len(matches)
|
51 |
+
if actual_comment_count != int(comment_count):
|
52 |
+
return f"Предупреждение: найдено {actual_comment_count} комментариев, но указано {comment_count}."
|
53 |
+
|
54 |
# Формируем вывод
|
55 |
output = []
|
56 |
for i, match in enumerate(matches, 1):
|
|
|
61 |
|
62 |
# Настройка Gradio интерфейса
|
63 |
iface = gr.Interface(
|
64 |
+
fn=lambda input_text, comment_count, pattern: process_text(input_text, comment_count, pattern),
|
65 |
+
inputs=[gr.Textbox(lines=10, placeholder="Введите текст сюда..."),
|
66 |
+
gr.Number(label="Количество комментариев", value=0),
|
67 |
+
gr.Dropdown(label="Шаблон", choices=["Нравится", "Лайков", "Like", "likes", "like", "like +", "Плюс", "Минус", "Равно", "Точка", "Запятая", "Точка с запятой"])],
|
68 |
outputs=gr.Textbox(lines=10, placeholder="Результат...")
|
69 |
)
|
70 |
|