Автоматизированная система для оценки сохранения эмоционального фона при переводе художественных текстов с учётом культурной адаптации.
Система анализирует оригинальный английский текст и его перевод на русский язык, вычисляет эмоциональные профили (8 эмоций по Плутчику и VAD-модель), выявляет культурные маркеры, требующие адаптации, и генерирует рекомендации по улучшению перевода с использованием методов машинного обучения и LLM.
- Анализ 8 эмоций Плутчика (радость, печаль, гнев, страх, удивновление, отвращение, ожидание, доверие)
- VAD-профиль (валентность, активация, доминантность)
- Интегральная метрика EQA (Emotional Quality Assessment) с весами ED, PDE, K
- ML-анализ эмоционального фона (50% лексиконный метод + 50% ML-эмбеддинги)
- Выявление культурных маркеров и оценка качества их передачи
- Профиль культурной плотности (интерактивный график распределения маркеров)
- LLM-рекомендации по улучшению перевода (через Ollama с моделью qwen2.5:7b)
- Веб-интерфейс с визуализацией всех результатов
- Python 3.9+
- Flask — веб-фреймворк
- NRC Emotion Lexicon и NRC VAD Lexicon — лексиконный анализ
- RuBERT, BERT, Sentence-Transformers — ML-модели для эмбеддингов
- Qwen2.5:7b (Ollama) — генерация рекомендаций и сбора аллюзий в тексте + Mistral:7b (Ollama) - дополнительная модель для сбора аллюзий
- Plotly — интерактивные графики
python -m venv venv
Активация (Mac/Linux):
source venv/bin/activate
Активация (Windows):
venv\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt
Mac:
brew install ollama
Linux:
curl -fsSL https://ollama.com/install.sh | sh
Windows: скачайте установщик с ollama.com
Запуск сервера Ollama (в отдельном терминале):
ollama serve
В другом терминале загрузите модель (4.7 ГБ):
ollama pull qwen2.5:7b
Если мало памяти, используйте лёгкую версию (0.5 ГБ):
ollama pull qwen2.5:0.5b
Дополнительно можно загрузить модель в помощь предыдущей для более точного выявления культурных маркеров (4.4 ГБ):
ollama pull mistral:7b
Вы можете использовать уже существующий датасет культурных маркеров, либо в дополнение к уже существующему дополнительно извлечь из оригинала с помощью моделей Ollama возможные аллюзии.
Для этого:
- Добавьте файл с оригинальным текстом в формате .txt, в папку /data/books
- Выберите модель qwen2.5:7b (файл: cultural_markers_ds.py) или mistral:7b (файл: cultural_markers_ds2.py)
- Впишите название файла в начале файлов в переменной my_books как дополнение к существующим книгам.
- Запустите программный код (займет некоторое время)
- Запустите программный код файла cultural_markers_uni.py
- Из полученного файла data/cultural_markers_merged.csv перекопируйте полученные аллюзии в датасет data/cultural_markers.csv
python app.py
Откройте в браузере: http://127.0.0.1:5000
- Вставьте оригинальный текст (английский) в левое поле
- Вставьте перевод (русский) в правое поле
- Нажмите кнопку "Провести анализ"
- Ознакомьтесь с результатами:
- EQA — общая оценка качества перевода
- Эмоциональный профиль (8 эмоций) для оригинала и перевода
- VAD-профиль с интерпретациями
- ML-анализ эмоционального фона (тоновой сдвиг, ML-сходство)
- Компоненты EQA (ED, PDE, K)
- Рекомендации от AI (если Ollama запущен)
- Профиль культурной плотности (график)
- Список культурных маркеров с контекстом
- Проблемные маркеры с рекомендациями
translator_emotions/
│
├── app.py # Главное приложение Flask
├── requirements.txt # Зависимости Python
├── README.md # Документация
│
├── lexicon_loader.py # Загрузка словарей
├── preprocessor.py # Предобработка и выравнивание
├── emotion_analyzer.py # Анализ 8 эмоций Плутчика
├── vad_analyzer.py # VAD-анализ
├── cultural_analyzer.py # Культурные маркеры
├── eqa_calculator.py # Расчёт метрик EQA
├── ml_emotion_analyzer.py # ML-анализ эмоций
├── llm_advisor.py # Генерация рекомендаций (Ollama)
│
├── cultural_markers_ds.py # Извлечение аллюзий из книг
├── cultural_markers_uni.py # Объединение маркеров
│
├── templates/
│ └── index.html # Веб-интерфейс
│
└── data/ # Данные
├── *.txt # Словари NRC
├── cultural_markers.csv # Датасет маркеров
└── books/ # Книги для извлечения аллюзий
При первом запуске "python app.py" автоматически загружаются ML-модели:
| Модель | Размер | Назначение |
|---|---|---|
| sentence-transformers | ~500 МБ | Эмбеддинги предложений |
| rubert-base-cased | ~400 МБ | Русские тексты |
| bert-base-uncased | ~400 МБ | Английские тексты |
| модели тональности | ~300 МБ | Анализ настроений |
В дальнейшем при использовании приложения, модели повторно не загружаются.
Для тестирования можно использовать отрывки из книг:
- "1984" Джорджа Оруэлла
- "Гарри Поттер и философский камень" Дж.К. Роулинг
Культурные маркеры в системе частично собирались на основе этих произведений.
Анастасия Яцечко