Skip to content

findatalab/translator

Repository files navigation

Система анализа эмоционального окраса перевода

Автоматизированная система для оценки сохранения эмоционального фона при переводе художественных текстов с учётом культурной адаптации.

О проекте

Система анализирует оригинальный английский текст и его перевод на русский язык, вычисляет эмоциональные профили (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 — интерактивные графики

Установка

1. Клонирование репозитория

2. Установка Python и создание виртуального окружения

python -m venv venv

Активация (Mac/Linux):

source venv/bin/activate

Активация (Windows):

venv\Scripts\activate

3. Установка зависимостей

pip install --upgrade pip

pip install -r requirements.txt

4. Установка Ollama (для LLM-рекомендаций)

Mac:

brew install ollama

Linux:

curl -fsSL https://ollama.com/install.sh | sh

Windows: скачайте установщик с ollama.com

5. Запуск Ollama и загрузка модели

Запуск сервера Ollama (в отдельном терминале):

ollama serve

В другом терминале загрузите модель (4.7 ГБ):

ollama pull qwen2.5:7b

Если мало памяти, используйте лёгкую версию (0.5 ГБ):

ollama pull qwen2.5:0.5b

Дополнительно можно загрузить модель в помощь предыдущей для более точного выявления культурных маркеров (4.4 ГБ):

ollama pull mistral:7b

6. Подготовка данных

Вы можете использовать уже существующий датасет культурных маркеров, либо в дополнение к уже существующему дополнительно извлечь из оригинала с помощью моделей Ollama возможные аллюзии.

Для этого:

  1. Добавьте файл с оригинальным текстом в формате .txt, в папку /data/books
  2. Выберите модель qwen2.5:7b (файл: cultural_markers_ds.py) или mistral:7b (файл: cultural_markers_ds2.py)
  3. Впишите название файла в начале файлов в переменной my_books как дополнение к существующим книгам.
  4. Запустите программный код (займет некоторое время)
  5. Запустите программный код файла cultural_markers_uni.py
  6. Из полученного файла data/cultural_markers_merged.csv перекопируйте полученные аллюзии в датасет data/cultural_markers.csv

Запуск

python app.py

Откройте в браузере: http://127.0.0.1:5000

Использование

  1. Вставьте оригинальный текст (английский) в левое поле
  2. Вставьте перевод (русский) в правое поле
  3. Нажмите кнопку "Провести анализ"
  4. Ознакомьтесь с результатами:
    • 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" Джорджа Оруэлла
  • "Гарри Поттер и философский камень" Дж.К. Роулинг

Культурные маркеры в системе частично собирались на основе этих произведений.

Автор

Анастасия Яцечко

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors