File size: 2,515 Bytes
6e3f65c 674e2be 21910df 674e2be 44e06ad 21910df 674e2be 44e06ad 674e2be 44e06ad 674e2be 44e06ad 21910df 674e2be 6e3f65c 895ca00 6e3f65c 895ca00 674e2be 6e3f65c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import gradio as gr
import re
# Функция для обработки входного текста
def process_text(input_text, comment_count):
# Печать входных данных для отладки
print(f"Входные данные: {input_text}")
print(f"Ожидаемое количество комментариев: {comment_count}")
# Шаблон для разделения комментариев по ключевым словам
comment_blocks = re.split(r'Ответить|Действия с комментарием|Скрыть ответы|Показать перевод', input_text)
# Паттерн для извлечения данных из каждого блока
pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\sНравится:\s*(\d+))?\s*$"
results = []
for block in comment_blocks:
match = re.search(pattern, block.strip())
if match:
username = match.group(1)
text = match.group(2).strip()
likes = int(match.group(3)) if match.group(3) else 0
results.append({"Пользователь": username, "Текст": text, "Лайков": likes})
# Проверка количества комментариев
actual_comment_count = len(results)
if actual_comment_count != int(comment_count):
return (f"Предупреждение: найдено {actual_comment_count} комментариев, "
f"хотя указано {comment_count}.\n"
"Пожалуйста, проверьте ввод.")
# Формируем вывод
output = []
for i, result in enumerate(results, 1):
username, text, likes = result['Пользователь'], result['Текст'], result['Лайков']
output.append(f'{i}. Пользователь: "{username}", Текст: "{text}", Лайков: {likes}')
return "\n".join(output)
# Настройка Gradio интерфейса
iface = gr.Interface(
fn=process_text,
inputs=[
gr.Textbox(lines=10, placeholder="Введите текст сюда..."), # Поле для текста комментариев
gr.Number(label="Количество комментариев по данным Instagram") # Поле для количества комментариев
],
outputs=gr.Textbox(lines=10, placeholder="Результат...")
)
# Запуск интерфейса
iface.launch() |