music_text / app.py
mechtnet's picture
Update app.py
f81d1c9 verified
# app.py
import gradio as gr
from transformers import pipeline
import json
import os
def analyze_lyrics():
try:
# Инициализируем пайплайн анализа тональности
classifier = pipeline("sentiment-analysis", model="blanchefort/rubert-base-cased-sentiment")
# Путь к текстовому файлу с текстом песни
# Убедитесь, что файл 'test.txt' находится в том же каталоге, что и этот скрипт
file_path = os.path.join(os.getcwd(), "test.txt")
# Отладочная информация
print(f"Текущая рабочая директория: {os.getcwd()}")
print(f"Содержимое директории: {os.listdir()}")
print(f"Пытаемся прочитать файл: {file_path}")
print(f"Файл существует: {os.path.exists(file_path)}")
if not os.path.exists(file_path):
return "Ошибка: Файл 'test.txt' не найден в текущей директории."
# Читаем содержимое файла
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()
print(f"Количество прочитанных символов: {len(text)}")
# Разбиваем текст на строки и анализируем каждую строку
results = []
lines = [line.strip() for line in text.split('\n') if line.strip()]
for line in lines:
prediction = classifier(line)
results.append({
'text': line,
'emotion': prediction[0]['label'],
'score': round(float(prediction[0]['score']), 3)
})
# Форматируем результаты в JSON
formatted_results = json.dumps(results, ensure_ascii=False, indent=2)
return formatted_results
except Exception as e:
# Возвращаем сообщение об ошибке
return f"Произошла ошибка: {str(e)}"
# Создаем интерфейс Gradio
demo = gr.Interface(
fn=analyze_lyrics,
inputs=None, # Нет входных данных, так как мы читаем из файла
outputs="text",
title="Анализ эмоциональной окраски текста песни",
description="Нажмите кнопку для анализа эмоций в файле 'test.txt'"
)
# Запускаем Gradio приложение
demo.launch()