Репозиторий содержит набор Jupyter Notebook с практическими примерами обработки естественного языка. Материалы идут от классических методов анализа текста к нейросетевым моделям и transformer-подходам. Каждый ноутбук можно открыть отдельно: внутри уже сохранены результаты выполнения ячеек, графики, таблицы и промежуточные выводы.
| Файл | Что делает | Практическая ценность |
|---|---|---|
01-classic-nlp-pipeline.ipynb |
Показывает базовый NLP-пайплайн: загрузка текста, токенизация, подсчёт частот, стемминг, лемматизация, закон Ципфа, NER и синтаксический разбор через spaCy. | Помогает понять, как из сырого текста получить структуру: слова, леммы, частоты, сущности и грамматические связи. |
02-domain-shift-naive-bayes.ipynb |
Разбирает различия между текстовыми доменами, строит log-odds для сравнения словарей, обучает Naive Bayes и оценивает качество классификации. | Полезен для диагностики датасетов: видно, какие слова отличают темы и как меняется качество модели при смене распределения данных. |
03-embeddings-retrieval.ipynb |
Работает с Word2Vec/эмбеддингами, ищет ближайшие слова, проверяет векторные сдвиги и строит простой поиск документов по смысловой близости. | Даёт основу для semantic search, retrieval-прототипов и понимания, как текст превращается в векторное представление. |
04-rnn-language-model.ipynb |
Строит простую RNN/LSTM-модель для языкового моделирования: готовит словарь, батчи, обучает модель и генерирует текст. | Показывает механику sequence modeling до transformer-архитектур: как модель учится предсказывать следующий токен. |
05-tokenizers-attention.ipynb |
Сравнивает токенизаторы, разбирает формы тензоров в PyTorch и демонстрирует работу attention. | Помогает уверенно читать код transformer-моделей: понимать input ids, batch/sequence dimensions и матричные операции attention. |
06-bert-finetuning.ipynb |
Показывает fine-tuning BERT для нескольких NLP-задач: классификация текста, NER, sentence pair classification и extractive QA. | Даёт шаблоны для адаптации pretrained transformer-моделей под реальные задачи анализа текста. |
Откройте нужный .ipynb в Jupyter, PyCharm Professional, VS Code или Google Colab. Если нужно пересчитать ноутбуки локально, установите зависимости:
pip install notebook jupyterlab nbconvert ipykernel
pip install numpy pandas matplotlib seaborn scikit-learn scipy
pip install spacy nltk gensim torch transformers datasets evaluate seqeval accelerate faiss-cpu
python -m spacy download ru_core_news_smНекоторые ноутбуки используют внешние датасеты и модели, поэтому для полного пересчёта может понадобиться интернет. Для fine-tuning BERT желательно использовать GPU.
Проект можно воспринимать как небольшую рабочую тетрадь по прикладному NLP. Он показывает не только итоговые модели, но и промежуточную аналитику: частоты, графики, таблицы, метрики, примеры токенизации и результаты инференса. Это удобно для повторения базовых концепций, подготовки собственных экспериментов и демонстрации практических навыков анализа текста.