NLP-анализ текстов песен с Genius API: извлечение сущностей (spaCy), частотный анализ глаголов, тематика событий и сентимент-анализ через Hugging Face Transformers. Визуализация с помощью круговых диаграммах.
- Python 88.3%
- Nix 11.7%
| src | ||
| .gitignore | ||
| .python-version | ||
| flake.lock | ||
| flake.nix | ||
| pyproject.toml | ||
| README.md | ||
| ruff.toml | ||
| uv.lock | ||
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).