mechtnet commited on
Commit
533b5f4
·
verified ·
1 Parent(s): dcdbcb9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline
3
+ import json
4
+ import os
5
+
6
+ def analyze_lyrics():
7
+ try:
8
+ # Инициализируем пайплайн анализа тональности
9
+ classifier = pipeline("sentiment-analysis", model="blanchefort/rubert-base-cased-sentiment")
10
+
11
+ # Путь к текстовому файлу
12
+ file_path = os.path.join(os.getcwd(), "test.txt")
13
+
14
+ # Отладочная информация
15
+ print(f"Текущая рабочая директория: {os.getcwd()}")
16
+ print(f"Содержимое директории: {os.listdir()}")
17
+ print(f"Пытаемся прочитать файл: {file_path}")
18
+ print(f"Файл существует: {os.path.exists(file_path)}")
19
+
20
+ if not os.path.exists(file_path):
21
+ return "Ошибка: файл 'test.txt' не найден в текущей директории."
22
+
23
+ # Читаем содержимое файла
24
+ with open(file_path, 'r', encoding='utf-8') as file:
25
+ text = file.read()
26
+ print(f"Количество прочитанных символов: {len(text)}")
27
+
28
+ # Разбиваем текст на строки и анализируем каждую строку
29
+ results = []
30
+ lines = [line.strip() for line in text.split('\n') if line.strip()]
31
+
32
+ for line in lines:
33
+ prediction = classifier(line)
34
+ results.append({
35
+ 'text': line,
36
+ 'emotion': prediction[0]['label'],
37
+ 'score': round(float(prediction[0]['score']), 3)
38
+ })
39
+
40
+ # Форматируем результаты в JSON
41
+ formatted_results = json.dumps(results, ensure_ascii=False, indent=2)
42
+ return formatted_results
43
+
44
+ except Exception as e:
45
+ # Возвращаем сообщение об ошибке
46
+ return f"Произошла ошибка: {str(e)}"
47
+
48
+ # Создаем интерфейс Gradio
49
+ demo = gr.Interface(
50
+ fn=analyze_lyrics,
51
+ inputs=None, # Без входных данных, так как мы читаем из файла
52
+ outputs="text",
53
+ title="Анализ эмоциональной окраски текста песни",
54
+ description="Нажмите кнопку для анализа эмоций в файле 'test.txt'"
55
+ )
56
+
57
+ # Запускаем Gradio приложение
58
+ demo.launch()