Laboratory for Social and Cognitive
Informatics,
St. Petersburg School of Physics,
Mathematics, and Computer
Science, Department of Informatics
ВВЕДЕНИЕ В
DEEP LEARNING
Koltcov S.
Saint Petersburg, 2025
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Deep learning time line
1940-1960-е: Ранние годы и искусственные нейронные сети
1943 - Уоррен МакКаллок и Уолтер Питтс: Опубликовали работу о математической модели нейронов, что
стало основой для развития искусственных нейронных сетей.
1958 - Фрэнк Розенблатт: Создал перцептрон, первую модель нейронной сети, которая могла обучаться.
Перцептрон мог выполнять простые задачи классификации, такие как распознавание символов.
1970-1980-е: Затишье и возрождение.
1969 - Марвин Мински и Сеймур Паперт: В своей книге "Perceptrons" показали ограничения перцептронов,
особенно в решении задач, которые не могут быть решены линейными моделями, например, исключающее
ИЛИ (XOR). Это привело к периоду затишья в исследованиях нейронных сетей.
1986 - Джеффри Хинтон, Дэвид Румелхарт и Рональд Уильямс: Ввели алгоритм обратного распространения
ошибки (backpropagation), который позволил эффективно обучать многослойные нейронные сети и решать
задачи, не поддающиеся линейной классификации.
1990-е: Развитие архитектур и методов
Начало 1990-х - Ян Лекун: Разработал сверточные нейронные сети (convolutional neural networks, CNN) и
применил их для распознавания рукописного текста (например, база данных MNIST).
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Deep learning time line
1997 - Сепп Хохрайтер и Юрген Шмидхубер: Предложили долгосрочные краткосрочные памяти (long short-
term memory, LSTM), которые улучшили обучение рекуррентных нейронных сетей (RNN) и сделали их более
устойчивыми к проблеме исчезающих градиентов.
2000-е: Ускорение и новые техники (бурное развитие видеокарт)
2006 - Джеффри Хинтон: Вновь обратил внимание на нейронные сети с многими слоями (глубокие сети) и
предложил метод pre-training для инициализации весов, что позволило успешно обучать глубокие нейронные
сети.
2009 - Файн Тюринг и Ларс Хельвег: Ввели автоэнкодеры и ограниченные Болцмановские машины (RBM)
для предварительного обучения глубоких сетей.
2010-е: Эра глубокого обучения
2012 - Алекс Крисевский, Илья Суслов и Джеффри Хинтон: Создали модель AlexNet, которая выиграла
конкурс ImageNet с большим отрывом, показав мощь глубоких сверточных нейронных сетей.
2014 - Ян Гудфеллоу и другие: Ввели генеративные состязательные сети (GANs), которые позволяют
генерировать новые данные на основе обученных моделей.
2015 - Резидуальные сети (ResNet): Представленные в работе Microsoft Research, показали, что очень
глубокие сети могут быть эффективно обучены за счет введения "shortcuts" или прямых путей через слои.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Deep learning time line
2017 - Внимание и трансформеры: Google Research предложил архитектуру "transformer" и
механизм внимания (attention), что революционировало обработку естественного языка и дало
начало моделям, таким как BERT и GPT.
Attention Is All You Need – революция в глубоком обучении
2020-е: Современные достижения
2020 - GPT-3 от OpenAI: Представляла собой одну из самых больших на тот момент моделей
обработки естественного языка с 175 миллиардов параметров, демонстрируя способность к
генерации контента, переводу и выполнению других сложных задач.
2021 - AlphaFold от DeepMind: Свершила прорыв в области биоинформатики, предсказывая
трехмерные структуры белков с высокой точностью, что имеет огромное значение для медицины
и биологических наук.
Дальше начинается гонка моделей
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Deep learning time line
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Large language model – 2023
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Large language model – 2024
Модель Mistral NeMo 12B была Компания OpenAI
разработана французской OpenAI: GPT-4o
компанией Mistral AI совместно с - OpenAI: GPT-4o-latest
NVIDIA. - OpenAI: GPT-4o-64k-output
- Mistral Nemo 12B Starcannon - OpenAI: GPT-4o 2024–08–06
- - Mistral Large 2 - OpenAI: GPT-4o mini
- - Mistral: Mixtral 8x22B Instruct
- - Mistral: Mixtral 8x22B
- - Mistral: Mixtral 8x7B Instruct Компания Google
- - Mistral: Mixtral 8x7B Chat - Google Gemma 2 27B LLaMA (Large Language
- - Mistral Medium - Google Gemma 2 9B Model Meta AI)
- - Mistral Large - Google Gemma 7B - Llama 3.1 405B Instruct
- Llama3 8B/70B –
Стартап Anthropic AI, новейшие опенсорс модели
который в 2021 году основали серии Llama.
выходцы из OpenAI
- Anthropic: Claude 3.5 Sonnet Компания Microsoft
- Anthropic: Claude 3 Haiku - Microsoft: Phi 3 Medium
- Anthropic: Claude 3 - MicrosoftAI: WizardLM-2 7B
- Anthropic: Claude 2 - MicrosoftAI: WizardLM-2 8x22B
- Anthropic: Claude Instant
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Large language model : 2023 – 2024
не трансформерные модели
Трансформеры произвели настоящий фурор в области Deep Learning и демонстрируют
выдающуюся эффективность. Однако у них существует серьезное ограничение по длине
входной последовательности (контекста) из-за квадратичной вычислительной сложности.
Большинство моделей работают с контекстом длиной менее 10 000, что делает их очень
дорогими в задачах с большими объемами входных данных.
Модель xLSTM (7 мая 2024 года) Mamba (1 Dec 2023, обновление май 2024) - это
была разработана Сеппом архитектура глубокого обучения, ориентированная
Хохрейтером в сотрудничестве с на моделирование последовательностей. Она была
NXAI и Университетом Йоханнеса разработана исследователями из Университета
Кеплера в Линце. Это реинкарнация Карнеги-Меллона и Принстонского университета
рекуррентных моделей для устранения некоторых ограничений
трансформаторных моделей, особенно при
обработке длинных последовательностей.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Large language model : 2024
rissoning model O1, Qween
Самое важное обновление среди моделей 2024 QwQ-32B-Preview
года осуществила OpenAI. Компания выпустила (https://huggingface.co/spaces/Qwen/QwQ-
модель o1. 32B-preview)
Предварительно обученные модели выполняют Её также можно скачать на свой ПК и
предсказание следующего токена на основе запустить. Одной из ключевых
огромного объема данных. Они опираются на особенностей QwQ-32B-Preview является
вычисления во время обучения («training-time её способность решать сложные
compute»). Масштаб моделей приводит к логические и математические задачи
возникновению базовых способностей (Chain-of-Thought
«мышления», но эти способности сильно
(https://t.me/abstractDL/169) (CoT)). Модель
ограничены. Но что если научить модель самому
показала превосходные результаты в
процессу рассуждения? Именно это и реализовано
тестах AIME и MATH, существенно
в о1. Когда мы говорим о мышлении в процессе
опередив аналогичные модели от OpenAI,
генерации ответа (“inference-time compute”), мы
имеем в виду, что модель «берет паузу и такие как o1-preview и o1-mini.
обдумывает» свой ответ, прежде чем его дать. Это
требует большего объема вычислений на этапе
генерации ответа. Эта фаза «паузы и
обдумывания» и есть аналог процесса мышления.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Transformers from Hugging Face
Платформа Hugging Face это коллекция готовых современных предварительно обученных Deep
Learning моделей. Библиотека Transformers предоставляет инструменты и интерфейсы для их
простой загрузки и использования. Это позволяет вам экономить время и ресурсы, необходимые для
обучения моделей с нуля.
Модели решают весьма разнообразный спектр задач:
1. NLP: classification, NER, question answering, language modeling, summarization, translation, multiple
choice, text generation.
2. Image: classification, object detection,segmentation.
3. Audio: classification, automatic speech recognition.
4. Multimodal: table question answering, optical character recognition, information extraction from scanned
documents, video classification, visual question answering.
5. Reinforcement Learning
6. Time Series
Одна и та же задача может решаться различными архитектурами и их список впечатляет - более 150
на текущий момент. Из наиболее известных: Vision Transformer (ViT), T5, ResNet, BERT, GPT2.
Модели Transformers поддерживают три фреймворках: PyTorch, TensorFlow и JAX. Для На PyTorch’а
доступны почти все архитектуры. А вот для остальных надо смотреть совместимость:
https://huggingface.co/docs/transformers/main/en/index#supported-frameworks
Также модели можно экспортировать в форматы ONNX и TorchScript.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
NLP задачи Hugging Face https://huggingface.co/
• feature-extraction (get the vector representation of a text) – Трансформация
текста в набор признаков, например в эмбединги
• fill-mask – модель для заполнения пропущенных слов в заданном тексте:
• ner (named entity recognition) - Распознавание именных сущностей (NER)
- это задача, в которой модель должна найти, какие части входного текста
соответствуют сущностям, таким как люди, места или организации.
• question-answering – модель которая отвечает на вопросы, используя
информацию из заданного контекста
• sentiment-analysis – определение тональности текста
• summarization – получение абстракта по заданному тексту
• text-generation – генерация текста по заданному набору слов (по промпту)
• translation – перевод с одного языка на другой
• zero-shot-classification - Классификация текстов с дополнительными
гипотезами, которые задаются пользователям.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Задачи на Hugging Face
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Квантизация нейронных сетей
Квантизация нейронной сети ("Neural Network Quantization") — это техника, которая позволяет
уменьшить размер модели и ускорить её выполнение за счёт представления числовых значений
(например, весов и активаций) с меньшей точностью. Вместо использования стандартного 32-битного
или 64-битного представления с плавающей точкой, квантизация преобразует эти значения в более
компактные форматы, такие как 8-битные целочисленные значения.
1. Квантизация весов (Weight Quantization): Веса нейронной сети преобразуются из 32-битного
формата с плавающей точкой в 8-битный целочисленный формат. Это позволяет значительно
уменьшить размеры модели и ускоряет вычисления, особенно при использовании специфического
аппаратного обеспечения, поддерживающего такие операции.
2. Квантизация активаций (Activation Quantization): Активации (выходы слоев) также могут быть
преобразованы в менее точный формат. Это особенно полезно, когда модель разворачивается на
аппаратуре с ограниченными ресурсами, такой как специализированные нейронные процессоры
или мобильные устройства.
Преимущества квантизации нейронных сетей:
- Уменьшение размера модели: За счёт сокращения битности весов и активаций, объём памяти,
необходимый для хранения модели, существенно уменьшается.
- Ускорение вычислений: Модели, скомпилированные для чисел с меньшей точностью, выполняются
быстрее.
- Снижение энергопотребления: Уменьшение сложности вычислений может привести к снижению
энергопотребления, что особенно важно для мобильных и встроенных систем.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Дистилляция нейронных сетей
Дистилляция нейронной сети (англ. "Neural Network Distillation") — это процесс передачи знаний от
одной, более крупной и сложной модели (называемой "учителем") к другой, более компактной
модели (называемой "учеником"). Цель этого процесса — уменьшить размер модели и ускорить её
работу, при этом сохраняя её производительность на приемлемом уровне. Основные этапы процесса
дистилляции включают:
1. Обучение учителя: Сначала обучается крупная и мощная нейронная сеть на предоставленных
данных. Эта модель учителя обычно имеет высокую точность, но может быть слишком большой.
2. Генерация "мягких" меток: Модель-учитель предсказывает вероятности для каждого класса, а
не просто метки класса. Эти вероятности, называемые "мягкими метками" (soft labels).
3. Обучение ученика: Компактная модель-ученик обучается как на "жестких" метках истинных
данных, так и на "мягких" метках, сгенерированных моделью-учителем. При этом обычно
используется некоторая комбинация функции потерь (например, кросс-энтропии), чтобы учитывать
обе группы меток.
Преимущества дистилляции нейронных сетей включают:
- Уменьшение ресурсов: Ученик может иметь меньшее количество параметров и, следовательно,
потреблять меньше памяти и вычислительных ресурсов.
- Более высокая производительность: Более компактная модель обычно обучается и выполняет
предсказания быстрее.
-
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Adapters для нейронных сетей
Модели адаптеров нейронных сетей (Adapter Modules) представляют собой небольшие и
легковесные дополнительны компоненты, которые вставляются в основную архитектуру модели для
адаптации к новой задаче без полной переобучения. Вот несколько примеров таких моделей:
1. Adapter-BERT — это расширение модели BERT, которое использует адаптерные модули для
эффективной адаптации к новым задачам. Идея заключается в том, чтобы вставлять небольшие и
легковесные адаптерные слои в предварительно обученную архитектуру BERT, что позволяет
модели эффективно справляться с новыми задачами без необходимости полного переобучения
всей модели.
2. Low-Rank Adaptation (LoRA): LoRA добавляет низкоранговые матрицы адаптеров в слои модели,
что позволяет изменять поведение модели без значительного увеличения числа параметров. Этот
подход помогает сохранять основные предобученные знания модели, добавляя только минимальное
количество новых параметров для новой задачи.
Библиотеки адаптеров. AdapterHub: — это универсальная платформа и библиотека для
использования адаптеров в предварительно обученных моделях трансформеров. MAD-X (Multilingual
Adapter eXchange): это расширяемая система адаптеров, предназначенная для многоязычного
переноса знаний и адаптации больших языковых моделей к задачам на различных языках. MAD-X
представляет собой модульный подход, который позволяет моделям легко адаптироваться к новым
языкам и задачам благодаря использованию адаптерных модулей.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Фреймворки для разработки нейронных сетей
1. TensorFlow, Разработчик: Google Brain Team
- Дата выпуска: Первая версия была выпущена в ноябре 2015 года. Активно поддерживается.
2. PyTorch. Разработчик: Facebook's AI Research Lab (FAIR)
- Дата выпуска: Первая версия была выпущена в январе 2017 года. Активно поддерживается.
3. Keras, Разработчик: François Chollet, в данный момент часть Tensorflow
- Дата выпуска: Первая версия была выпущена в марте 2015 года.
- Примечание: Keras изначально был автономным проектом, а позже стал высокоуровневым API,
совместимым с TensorFlow.
4. Caffe (данный пакет практически перестал поддерживаться), Разработчик: Berkeley Vision and
Learning Center (BVLC), Дата выпуска: Первая версия была выпущена в апреле 2014 года.
5. MXNet (данный пакет не поддерживаться), Разработчик: DMLC (Distributed (Deep) Machine Learning
Community), Дата выпуска: Первая версия была выпущена в сентябре 2015 года.
6. Theano (Поддержка Theano была официально прекращена в 2017 году), Разработчик: Université de
Montréal, LISA (Laboratory for Information and Signal Processing), Дата выпуска: 2007 году.
7. CNTK (Microsoft Cognitive Toolkit, пакет не поддерживается), Разработчик: Microsoft, Дата выпуска:
2016 год.
8. Deeplearning4j (пакет поддерживается, но небольшая ниша пользователей), Разработчик: Skymind
Дата выпуска**: Первая версия была выпущена в октябре 2014 года.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Tensor flow
TensorFlow и Keras — это мощные инструменты для разработки и обучения моделей машинного
обучения и глубокого обучения. TensorFlow был разработан командой Google Brain и выпущен как
проект с открытым исходным кодом в 2015 году. Keras изначально разрабатывался как отдельная
библиотека, но позже был интегрирован в TensorFlow, начиная с версии TensorFlow 2.0.
TensorFlow — это платформа для построения и обучения моделей машинного обучения. Она
включает в себя расширяемую экосистему инструментов, библиотек и сообществ, которые
позволяют исследователям и разработчикам создавать и развертывать модели машинного обучения.
TensorFlow поддерживает как обучение на CPU, так и на GPU, что делает его подходящим для задач
различного масштаба.
Особенности
1. Граф вычислений: TensorFlow использует статические вычислительные графы, что позволяет
проводить оптимизацию и развертывание моделей на различных платформах, включая мобильные
устройства.
2. Тензоры: Основной единицей данных в TensorFlow являются тензоры — многомерные массивы,
которые служат для представления данных.
3. Масштабируемость: TensorFlow поддерживает распределенные вычисления, что позволяет
обучать крупные модели на кластерах.
4.Система автоматического дифференцирования: TensorFlow включает мощные инструменты для
автоматического вычисления градиентов, что упрощает обучение моделей.
Преимущества: Масштабируемость и производительность. Богатая экосистема инструментов и
библиотек
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Keras
Keras — это высокоуровневый API для создания и тренировки моделей нейронных сетей,
который сильно упрощает процесс разработки. Его ключевая идея — сделать глубокое обучение
доступным и удобным в использовании. Keras был разработан Франсуа Шолле и изначально
работал поверх нескольких библиотек, включая Theano и TensorFlow. С выпуском TensorFlow 2.0,
Keras стал частью TensorFlow как его высокоуровневый API.
Особенности
1. Удобство использования: Keras предоставляет простой и интуитивно понятный интерфейс, что
делает его доступным для новичков.
2. Модульность: Легко комбинировать различные слои и компоненты для построения сложных
моделей.
3. Поддержка нескольких бэкэндов: В ранних версиях можно было использовать Theano, CNTK,
TensorFlow; в современных версиях интегрирован с TensorFlow.
4. Ориентирован на разработку прототипов: Быстрое создание и отладка моделей.
Преимущества
- Простота и лаконичность.
- Интуитивно понятный API.
- Совместимость с TensorFlow и его инструментами.
- Быстрое прототипирование моделей.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Pytorch
PyTorch — это библиотека машинного обучения с открытым исходным кодом, разработанная и
поддерживаемая компанией Facebook's AI Research lab (FAIR). Она предназначена для разработки и обучения
нейронных сетей и имеет поддержку для Python и C++. PyTorch стал популярным благодаря своей гибкости,
динамическим вычислительным графам и удобному интерфейсу.
1. Динамические вычислительные графы. Одной из ключевых особенностей PyTorch является использование
динамических вычислительных графов (Dynamic Computational Graphs). Это означает, что граф вычислений
строится на лету, что обеспечивает гибкость и упрощает отладку моделей. Такая архитектура позволяет
изменять структуру графа в процессе выполнения, что делает PyTorch идеальным выбором для исследований и
прототипирования.
2. Интерфейс и простота использования. его доступным для новичков в машинном обучении. Библиотека
тесно интегрирована с NumPy, что позволяет легко конвертировать данные между этими двумя форматами и
использовать привычные методы обработки данных.
3. Поддержка GPU. PyTorch поддерживает вычисления на GPU с помощью CUDA, что значительно ускоряет
процесс обучения моделей. Большинство операций в PyTorch могут быть автоматически перенесены на GPU,
если данные и модель находятся в правильном формате.
4. TorchScript. TorchScript позволяет сохранять модели PyTorch и использовать их вне Python-окружения. Это
особенно полезно для развертывания на сервере или в мобильных приложениях. TorchScript позволяет
выполнять статическую компиляцию и оптимизацию моделей.
5. Богатая экосистема и поддержка. Благодаря активному сообществу и поддержке со стороны Facebook,
PyTorch предлагает множество инструментов и библиотек для расширения функциональности. Среди них
можно отметить: A. torchvision для работы с изображениями. B. torchaudio для аудиоданных. C. torchtext** для
текстовых данных. D. fastai и многие другие библиотеки.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Pytorch
4. TorchScript. TorchScript позволяет сохранять модели PyTorch и использовать их вне Python-окружения.
Это особенно полезно для развертывания на сервере или в мобильных приложениях. TorchScript позволяет
выполнять статическую компиляцию и оптимизацию моделей.
5. Богатая экосистема и поддержка. Благодаря активному сообществу и поддержке со стороны Facebook,
PyTorch предлагает множество инструментов и библиотек для расширения функциональности. Среди них
можно отметить: A. torchvision для работы с изображениями. B. torchaudio для аудиоданных. C. torchtext**
для текстовых данных. D. fastai и многие другие библиотеки.
5. Преимущества.
- Гибкость: динамические графы позволяют легко изменять модели.
- Интуитивный синтаксис: простота и удобство использования, особенно для пользователей Python.
- Активное сообщество: большое количество примеров, документации и поддержка на форумах.
6. Недостатки
- Производительность: в некоторых задачах TensorFlow может демонстрировать лучшую
производительность.
- Инструменты развертывания: TensorFlow предлагает более зрелые инструменты для развертывания
моделей в продакшн, хотя PyTorch активно развивается в этом направлении.
Pytorch развивается существенно быстрей.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
JAX для машинного обучения
JAX — это библиотека Python, предназначенная для высокопроизводительных численных
вычислений, особенно для исследований в области машинного обучения. Его API для
числовых функций основан на NumPy, наборе функций, используемых в научных
вычислениях. JAX фокусируется на ускорении процесса машинного обучения за счет
использования XLA для компиляции функций NumPy на графических процессорах и
использует автоградацию для дифференциации функций Python и NumPy, а также
оптимизацию на основе градиента. JAX может различать циклы, ветвления, рекурсию и
замыкания, а также легко получать производные производных от производных, используя
ускорение графического процессора. JAX также поддерживает обратное распространение и
дифференциацию прямого режима.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
Machine Learning Workflow
1. Загрузка данных из источника
2. Очистка и форматирование данных (удаление аномальных данных и заполнение
недостающих данных)
3. Исследовательский анализ данных (цель - найти закономерности, тенденции или
взаимосвязи).
4. Разработка и выбор признаков (выбор подходящих признаков )
5. Установление базовой модели и сравнение нескольких моделей машинного обучения по
метрике качества
6. Настройка гиперпараметров моделей.
7. Выбор лучшей модели на тестовом множестве
8. Интерпретировать результаты модели, насколько это возможно.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
MACHINE LEARNING FOR NATURAL LANGUAGE
PROCESSING
Набор данных может состоять из набора документов. Этими документами может быть
практически все, что содержит текст: комментарии в социальных сетях, отзывы в Интернете,
ответы на опросы, даже финансовые, медицинские, юридические и нормативные
документы. Но когда мы говорим о "модели", мы имеем в виду математическое
представление. Ввод данным в модель является ключевым фактором.
Поэтому нам приходится заниматься преобразованием неструктурированных документов в
таблицу, которая содержит признаки текста.
Чтобы автоматически анализировать тексты, необходимо научить компьютер
понимать их, т.е. видеть элементы текста:
1. слова
2. N-граммы, фразы
3. предложения, абзацы (если надо)
* Некоторые термины:
dataset / collection: text selection, Unique words (types): “types” of words in the collection
Instances, tokens: all words, including duplicate
Laboratory for Social and Cognitive Informatics,
Department of Informatics
TEXT DATA: PRE-PROCESSING
Токенизация (синтаксический разбор) - это процедура разбиения входного текста на составляющие
его элементы (слова, знаки препинания, цифры и так далее).
Очистка (от нетекстовых элементов, знаков препинания, заглавных букв и некоторых других) - это
процедура удаления элементов текста, которые не важны для анализа.
Лемматизация - это более сложный подход, поскольку он использует
конкретную часть речи для определения корневой формы слова. Лематизация очень важна для
русского языка.
Стемминг - это процесс объединения родственных слов с одним и тем же корнем. Например,
некоторые алгоритмы просто отрезают концы слов.
POS (part of speech tagging) - это процедура частичной маркировки текста. В ходе процедуры каждому
элементу присваивается метка (тег) соответствующей части речи. Теги могут быть использованны в
виде дополнительных фич.
Удаление стоп-слов - это процедура удаления слов, которые не рассматриваются как признаки.
Матрица "слово-документ" - результат процедуры создания матрицы признаков, в которой строка -
документ, столбцы - слова в этом документе.
Прикладная и компьютерная лингвистика. Коллективная монография. Под редакцией Николаевой И.С.,
Митрениной О.В., Ландо Т.М., URSS, Москва, 2017.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
VECTOR SPACE MODEL OF TEXT
Коллекция документов может быть представлена в виде
матрицы, в которой каждая строка представляет
документ, колонки это уникальные слова в датасете,
соответственно содержимое такой матрицы частоты слов в
документах. Нули в матрице означают отсутствие слова в
документе.
Laboratory for Social and Cognitive Informatics,
Department of Informatics
TF-IDF
TF-IDF (от TF - term frequency, IDF - inverse document frequency) - статистическая мера,
используемая для оценки важности слова в контексте документа, являющегося частью
коллекции документов или корпуса. Вес слова пропорционален количеству слов, используемых в
документе, и обратно пропорционален частоте слов в других документах коллекции.
TF (term frequency) - это отношение количества вхождений слова к общему количеству слов в
документе. Таким образом, оценивается важность слова ti в пределах одного документа.
где nt - количество вхождений слова t в документе, а в
знаменателе - общее количество слов в данном документе.
IDF (inverse document frequency) — обратная частота документа) - это обратная величина частоты,
с которой определенное слово встречается в документах коллекции.
|D| — число документов в коллекции;
di — число документов в коллекции D где встречается
термин t
Большое значение веса в TF-IDF позволит получить слова с
высокой частотой употребления в конкретном документе и
с низкой частотой употребления в других документах
Laboratory for Social and Cognitive Informatics,
Department of Informatics
DISTRIBUTION OF WORDS IN TEXTS AND LANGUAGE
• Zipf low
• Pareto distribution
• Power distribution
They all look alike; about them you can read here :
1. Lada Adamic. Zipf, Power-laws and Pareto –
2. a ranking tutorial: http://www.hpl.hp.com/research/idl/papers/ranking/ranking.html
2. M. E. J. Newman, Power laws, Pareto distributions and Zipf’s law, 2006
3. Large-Scale Analysis of Zipf’s Law in English Texts
Isabel Moreno-Sánchez, Francesc Font-Clos, Álvaro Corral
https://journals.plos.org/plosone/article/file?id=10.1371/journal.pone.0147073&type=printable
Laboratory for Social and Cognitive Informatics,
Department of Informatics
STEMMING AND LEMMATIZATION IN PYTHON
Natural Language Tool Kit package предоставляемый Python для задач
обработки естественного языка. Он поддерживает около 15 языков.
NLTK Links: https://www.nltk.org/
How to install: pip install --user -U nltk
An example: https://www.nltk.org/book/ch01.html
Python wrapper for the Yandex MyStem 3.1 морфологический
анализатор русского языка.
pymystem Links: https://pypi.org/project/pymystem3/
How to install: pip install pymystem3
An example: https://yandex.ru/dev/mystem/
pymorphy2 - это морфологический анализатор. Выполняет лемматизацию и
анализ слов, способен осуществлять склонение в соответствии с заданными
pymorphy грамматическими характеристиками слов. Поддерживаются русский и
украинский языки.
How to install: pip install pymorphy
Links: https://pymorphy2.readthedocs.io/en/latest/
https://webdevblog.ru/podhody-lemmatizacii-s-primerami-v-python/
Laboratory for Social and Cognitive Informatics,
Department of Informatics
STEMMING AND LEMMATIZATION IN PYTHON
spaCy - это бесплатная библиотека с открытым исходным кодом для
Spacy продвинутой обработки естественного языка (NLP) на языке Python.
Поддерживает порядка 70 языков.
## установка библиотеки spacy
# pip install spacy
# далее нужно скачать языковую модель
# python -m spacy download en - для английского языка
# python -m spacy download ru_core_news_sm - для русского языка
# вот тут можно посмотреть языки
# https://spacy.io/usage/models
https://course.spacy.io/en/
WordNet® - это большая лексическая база данных
английского языка. Существительные, глаголы,
Wordnet прилагательные и наречия сгруппированы в наборы
когнитивных синонимов (synsets), каждый из
которых выражает отдельное понятие. synsets
связаны между собой концептуально-
семантическими и лексическими отношениями.
https://linis.hse.ru/ Phone: +7 (911) 981 9165 Email:
[email protected]