NLP-анализ текстов песен с Genius API: извлечение сущностей (spaCy), частотный анализ глаголов, тематика событий и сентимент-анализ через Hugging Face Transformers. Визуализация с помощью круговых диаграммах.
  • Python 88.3%
  • Nix 11.7%
Find a file
2026-05-10 02:34:34 +05:00
src Initial commit 2026-04-07 02:22:17 +05:00
.gitignore Initial commit 2026-04-07 02:22:17 +05:00
.python-version Initial commit 2026-04-07 02:22:17 +05:00
flake.lock Initial commit 2026-04-07 02:22:17 +05:00
flake.nix Initial commit 2026-04-07 02:22:17 +05:00
pyproject.toml Initial commit 2026-04-07 02:22:17 +05:00
README.md update: add README 2026-05-10 02:34:34 +05:00
ruff.toml Initial commit 2026-04-07 02:22:17 +05:00
uv.lock Initial commit 2026-04-07 02:22:17 +05:00

Music Analysis

NLP-анализ текстов песен исполнителей через Genius API. Извлекает сущности (NER через spaCy), частоту глаголов, тематику событий и эмоциональную окраску (Hugging Face transformers). Результаты визуализируются в виде круговых диаграмм.

Стек

  • Python 3.13
  • uv
  • Marimo
  • lyricsgenius - клиент Genius API.
  • spaCy (ru_core_news_sm) - Named Entity Recognition & определение частей речи.
  • transformers (seara/rubert-base-cased-ru-go-emotions) - классификация эмоций.
  • matplotlib, pandas

Установка и запуск

1. Токен Genius API

Создайте файл .env в корне проекта:

CLIENT_ACCESS_TOKEN=<ваш_токен>

Получить токен можно на https://genius.com/api-clients

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

uv sync

3. Модель spaCy

uv run python -m spacy download ru_core_news_sm

4. Запуск

uv run marimo run src/main.py

Для редактирования:

uv run marimo edit src/main.py

Конфигурация

Параметры задаются в src/main.py:

  • ARTIST_NAME - имя исполнителя (по умолчанию "Pornofilmy").
  • EMOTIONAL_MODEL - модель Hugging Face для эмоций.
  • SPACY_MODEL - модель spaCy.
  • MAX_SONGS - максимальное количество песен (по умолчанию 75).