Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

FuzzyRuGPT: нечётко-логическое управление русскоязычной языковой моделью

Покупка
Новинка
Основная коллекция
Артикул: 881630.01.01
Доступ онлайн
от 568 ₽
В корзину
Частному лицу
Бумажная книга
3 457 ₽
Купить
Купить в составе основной коллекции от 1 490 ₽
Монография посвящена математическим основам и программной реализации архитектуры больших языковых моделей класса GPT с нечётко-логическим управлением генерацией текста. Рассмотрены токенизация BPE, механизм многоголового самовнимания, архитектура трансформер-блока, предобучение и тонкая настройка. Разработана трилогия нечётко-логических регуляторов и контроллер FuzzyLLM с замкнутой обратной связью. Экспериментально подтверждено снижение энтропии декодирования в 3,1 раза. Точность классификатора спама составляет 95,67%. Код из 219 ячеек воспроизводим без GPU. Работа выполнена при поддержке Государственного задания № 075-03-2026-489.

FuzzyRuGPT: Инновационный подход к нечётко-логическому управлению большими языковыми моделями

В монографии М.В. Бобыря "FuzzyRuGPT: нечётко-логическое управление русскоязычной языковой моделью" представлен глубокий анализ и практическая реализация архитектуры GPT-подобных моделей с акцентом на интеграцию нечёткой логики для адаптивного управления процессом генерации текста. Работа, основанная на принципах построения больших языковых моделей с нуля, уделяет особое внимание математическому обоснованию каждого алгоритма, подкрепляя теорию подробными числовыми примерами и трассировкой тензоров.

От основ GPT к нечёткой адаптации

Книга последовательно раскрывает ключевые компоненты GPT-архитектуры, начиная с обработки текстовых данных и токенизации BPE, переходя к механизмам самовнимания (включая многоголовое внимание и причинно-следственное маскирование), нормализации слоёв (LayerNorm), функциям активации (GELU), слоям прямого распространения (FeedForward) и коротким соединениям. Особое внимание уделено созданию векторных представлений токенов и позиционному кодированию, что является фундаментом для понимания работы трансформеров.

Интеграция нечёткой логики: трилогия регуляторов

Оригинальный вклад автора заключается в разработке "трилогии" нечётко-логических регуляторов, направленных на адаптацию ключевых параметров языковой модели в реальном времени без изменения её весов.

  • Регулятор параметров скользящего окна (Раздел 1.8): Адаптирует параметры stride и max_length скользящего окна, используемого при подготовке данных для обучения. Регулятор учитывает лексическое разнообразие текста (TTR) и среднюю длину BPE-токена (avg_len), динамически подстраивая параметры для оптимизации количества и качества обучающих примеров.

  • Регулятор коэффициента масштабирования внимания τ* (Раздел 2.6): Модифицирует коэффициент масштабирования в механизме многоголового самовнимания, основываясь на лексическом разнообразии (D) и энтропии весов внимания (H). Это позволяет регулировать "остроту" распределения весов внимания, концентрируя его на релевантных токенах в насыщенных текстах и сглаживая в монотонных.

  • Регулятор коэффициента избирательности декодирования β* (Раздел 3.8): Адаптирует коэффициент температуры в функции Softmax при авторегрессионной генерации текста. Используя те же признаки D и H, этот регулятор управляет "резкостью" вероятностного распределения, балансируя между точностью и разнообразием генерируемого текста.

FuzzyLLM: единый нечётко-логический контроллер

Глава 5 посвящена объединению регуляторов τ* и β* в единый контроллер FuzzyLLM. Ключевым решением является совместный блок фаззификации, который вычисляет степени принадлежности входных признаков D и H один раз за шаг и передает их обоим регуляторам параллельно. Это обеспечивает 2-кратную экономию вычислений. Замкнутая обратная связь через энтропию H позволяет системе динамически адаптировать поведение модели, поддерживая высокую концентрацию внимания и избирательность декодирования в разнообразных контекстах. Финальная версия FuzzyLLM включает механизм защиты от зацикливания, что значительно улучшает качество генерации.

Тонкая настройка для классификации

Глава 6 демонстрирует практическое применение предобученной GPT-2 модели для задачи классификации текста, в частности, обнаружения спама в SMS-сообщениях. Работа фокусируется на стратегии частичной заморозки весов, где обучается лишь небольшой классификационный слой и финальные компоненты архитектуры. За короткое время тонкой настройки на CPU достигается высокая точность классификации (до 97.2% на обучающей и 95.7% на тестовой выборках), что подтверждает эффективность предобученных знаний и гибкость модели для решения прикладных задач.

Монография "FuzzyRuGPT" представляет собой ценный ресурс для специалистов в области искусственного интеллекта, обработки естественного языка и теории нечётких множеств, а также для аспирантов и студентов, интересующихся современными архитектурами языковых моделей и гибридными интеллектуальными системами.

Текст подготовлен языковой моделью и может содержать неточности.

6
59
126
205
262
302
Бобырь, М. В. FuzzyRuGPT: нечётко-логическое управление русскоязычной языковой моделью : монография / М.В. Бобырь. — Москва : ИНФРА-М, 2027. — 352 с. : ил. — (Научная мысль). — DOI 10.12737/2263353. - ISBN 978-5-16-022361-2. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2263353 (дата обращения: 07.09.2026). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Москва
ИНФРА-М
2027
FUZZYRUGPT 
НЕЧЁТКО-ЛОГИЧЕСКОЕ УПРАВЛЕНИЕ 
РУССКОЯЗЫЧНОЙ ЯЗЫКОВОЙ 
МОДЕЛЬЮ
М.В. БОБЫРЬ
МОНОГРАФИЯ


УДК 004.89:510.644.4(075.4)
ББК 32.813
 
Б72
Бобырь М.В.
Б72  
FuzzyRuGPT: нечётко-логическое управление русскоязычной языковой моделью : монография / М.В. Бобырь. — Москва : ИНФРА-М, 2027. — 
352 с. : ил. — (Научная мысль). — DOI 10.12737/2263353.
ISBN 978-5-16-022361-2 (print)
ISBN 978-5-16-115083-2 (online)
Монография посвящена математическим основам и программной реализации архитектуры больших языковых моделей класса GPT с нечётко-логическим 
управлением генерацией текста. Рассмотрены токенизация BPE, механизм многоголового самовнимания, архитектура трансформер-блока, предобучение и тонкая настройка. Разработана трилогия нечётко-логических регуляторов и контроллер FuzzyLLM с замкнутой обратной связью. Экспериментально подтверждено 
снижение энтропии декодирования в 3,1 раза. Точность классификатора спама 
составляет 95,67%. Код из 219 ячеек воспроизводим без GPU. Работа выполнена 
при поддержке Государственного задания № 075-03-2026-489.
Предназначена для научных сотрудников, специалистов в области искусственного интеллекта, обработки естественного языка (NLP) и теории нечетких 
множеств. Будет полезна аспирантам и студентам старших курсов компьютерных 
и математических специальностей, интересующихся архитектурой трансформеров, созданием больших языковых моделей (LLM) и гибридными интеллектуальными системами.
УДК 004.89:510.644.4(075.4)
ББК 32.813
Р е ц е н з е н т ы:
Ронжин А.Л., доктор технических наук, профессор, директор Санкт-Петербургского Федерального исследовательского центра Российской академии 
наук;
Мещеряков Р.В., доктор технических наук, профессор, главный научный 
сотрудник Института проблем управления имени В.А. Трапезникова Российской академии наук
ISBN 978-5-16-022361-2 (print)
ISBN 978-5-16-115083-2 (online)
© Бобырь М.В., 2026
ООО «Научно-издательский центр ИНФРА-М»
127214, Москва, ул. Полярная, д. 31В, стр. 1
Тел.: (495) 859-48-60
E-mail: books@infra-m.ru        http://www.infra-m.ru
Подписано в печать 24.07.2026. 
Формат 70100/16. Бумага офсетная. Гарнитура Petersburg. 
Печать цифровая. Усл. печ. л. 28,38. Тираж 500 экз. Заказ № 00000
ТК 881630-2263353-240726
Отпечатано в типографии ООО «Научно-издательский центр ИНФРА-М»
127214, Москва, ул. Полярная, д. 31В, стр. 1
Тел.: (495) 859-48-60
ФЗ 
№ 436-ФЗ
Издание не подлежит маркировке 
в соответствии с п. 1 ч. 2 ст. 1


Предисловие
Идея настоящей монографии возникла под влиянием книги Себастьяна Рашки 
"Build a Large Language Model (From Scratch)" (Manning Publications, 2024) одного из 
лучших современных учебных пособий по практической реализации больших языковых 
моделей. Книга Рашки впечатляет ясностью изложения и воспроизводимостью кода, 
однако в ней акцент сделан на программной стороне и математическая основа 
алгоритмов описывается кратко, что в некоторых случаях затрудняет восприятие 
программного кода. 
Настоящая монография развивает подход Рашки в трёх направлениях. Первое 
указывает на математический акцент. Каждый алгоритм сопровождается строгим 
математическим обоснованием, ручными числовыми расчётами и таблицами 
трассировки тензоров, что позволяет читателю проследить вычисления от входных 
данных до итогового результата. Второе направление связанно с разработкой нечёткологических методов адаптации. В частности, разработана трилогия оригинальных 
регуляторов (разделы 1.8, 2.6 и 3.8), адаптирующих ключевые параметры языковой 
модели на основе лингвистических переменных D и H. Третье направление интеграция 
методов нечетко-логической адаптации в единую архитектуру. Глава 5 объединяет три 
регулятора в нечётко-логический контроллер FuzzyLLM, который адаптирует стратегию 
генерации текста в реальном времени без изменения весов модели. 
Практическая реализация архитектуры GPT-2 в главах 1y4 и 6 основана на 
учебном коде из книги Себастьяна Рашки. Все фрагменты кода воспроизводятся с 
адаптацией и расширенными математическими пояснениями. Автор выражают 
признательность С. Рашке за создание открытого образовательного ресурса, 
вдохновившего на написание настоящей монографии. Оригинальным вкладом 
настоящей работы, не имеющим аналогов в книге Рашки, являются разделы 1.8, 2.6, 3.8 
и вся глава 5. 
Монография предназначена для аспирантов и исследователей в области 
машинного обучения, обработки естественного языка и теории нечётких множеств, а 
также для практиков, желающих глубоко понять архитектуру трансформерных 
языковых моделей. Для работы с монографией необходимы базовые знания линейной 
алгебры, теории вероятностей и языка программирования Python. 
Все эксперименты воспроизводимы: код доступен в репозитории GitHub. Для 
воспроизведения основных результатов достаточно CPU; использование GPU ускоряет 
обучение, но не является обязательным. 
Автор: Бобырь М.В. 
 
 


Введение 
Большие языковые модели стали одним из наиболее значимых достижений в 
области искусственного интеллекта за последнее десятилетие. Модели семейства GPT, 
BERT, LLaMA и их производные демонстрируют хорошие результаты в задачах 
генерации текста, машинного перевода, ответов на вопросы и классификации. Вместе с 
тем внутреннее устройство этих систем остаётся непрозрачным для большинства 
специалистов, работающих с готовыми API без понимания математических принципов, 
лежащих в их основе. 
Настоящая монография посвящена методологии построения языковой модели 
GPT-2 с нуля от первичной обработки текста до полноценного предобучения, тонкой 
настройки и разработки нечётко-логического контроллера генерации текста. Каждый 
алгоритм сопровождается математическим обоснованием, числовыми примерами с 
ручным расчётом и таблицами трассировки тензоров, что позволяет читателю 
проследить 
вычисления 
от 
входных 
данных 
до 
итогового 
результата. 
Последовательность из 219 ячеек программного кода на Python даёт возможность 
воспроизвести все результаты без использования GPU. 
Стремительное распространение языковых моделей в прикладных системах 
порождает потребность в методах адаптации их поведения без дорогостоящего 
переобучения. Существующие стратегии декодирования такие как температурное 
масштабирование, выборка из k наиболее вероятных токенов, выборка по ядру 
вероятности 
используют 
фиксированные 
гиперпараметры, 
не 
учитывающие 
лингвистические 
характеристики 
конкретного 
генерируемого 
контекста. 
Это 
ограничение преодолевается в настоящей монографии посредством разработки нечёткологических методов адаптации различных функций, например, Softmax, в процессе 
генерации текста. 
В монографии разработана трилогия оригинальных нечётко-логических 
регуляторов. Регулятор параметров скользящего окна (раздел 1.8) адаптирует параметры 
подготовки данных. Регулятор коэффициента масштабирования внимания τ* (раздел 2.6) 
управляет механизмом многоголового самовнимания. Регулятор коэффициента 
избирательности декодирования β* (раздел 3.8) адаптирует стратегию выбора, 
следующего токена. Каждый регулятор построен на алгоритме Мамдани с 
дефаззификацией методом центра тяжести и использует два лингвистических признака: 
лексическое разнообразие контекста D и нормированную энтропию Шеннона H. 
Глава 5 объединяет регуляторы τ* и β* в единый нечётко-логический контроллер 
FuzzyLLM с совместным блоком фаззификации и замкнутой обратной связью через 
признак энтропии H. Совместная фаззификация сокращает вычислительную стоимость 
вдвое. Экспериментально подтверждено снижение средней энтропии декодирования в 
3.1 раза без изменения весов модели. Глава 6 демонстрирует тонкую настройку GPT-2 
для задачи обнаружения спам-сообщений: за пять эпох на CPU достигается точность 
классификации 95.67%. 


Монография состоит из шести глав, предисловия, введения и заключения. Глава 
1 посвящена работе с текстовыми данными и токенизации BPE. Глава 2 описывает 
механизм самовнимания от простейшего скалярного произведения до многоголового с 
причинно-следственной маскировкой будущих токенов. Глава 3 описывает полную 
архитектуру GPT-подобной модели. Глава 4 показывает реализацию процессов 
обучения, стратегии декодирования и загрузку предобученных весов OpenAI. Глава 5 
представляет нечётко-логический контроллер FuzzyLLM. Глава 6 посвящена тонкой 
настройке для классификации текста. 
Весь программный код монографии размещён в открытом репозитории: 
github.com/MaxBobyr1978/fuzzy-llm-controller. 
Монография предназначена для аспирантов и исследователей в области 
машинного обучения, обработки естественного языка и теории нечётких множеств. 
Работа выполнена при поддержке Министерства науки и высшего образования 
Российской Федерации в рамках Государственного задания № 075-03-2026-489. 
 
 


Глава 1. Работа с текстовыми данными 
Прежде чем языковая модель сможет обработать текст, его необходимо 
преобразовать в числовое представление. Модели глубоких нейронных сетей, в том 
числе большие языковые модели (LLM), не могут напрямую обрабатывать текст, 
поскольку его формат несовместим с математическими операциями, лежащими в основе 
нейронных сетей. Поэтому весь конвейер подготовки текстовых данных делится на три 
ключевых этапа: токенизация исходного текста, преобразование токенов в числовые 
идентификаторы и создание векторных представлений (эмбеддингов) для обучения 
модели. 
В данном разделе последовательно описан каждый из этих этапов, а программный 
код сопровождается математическим обоснованием. В качестве обучающего текста 
используется рассказ «The Verdict» Эдита Уортона. Это небольшой текст объёмом около 
20 000 символов, достаточный для демонстрации ключевых идей создания LLM модели. 
Загрузить данный текст можно по ссылкам https://github.com/rasbt/LLMs-fromscratch/tree/main/ch02/01_main-chapter-code 
или 
https://www.kaggle.com/datasets/rakibulhasanshaon69/the-verdict-txt. 
В данной монографии описан процесс построения большой языковой модели 
(Large Language Model, LLM) поэтапно, от первичной обработки текста до полноценного 
обучения GPT-подобной архитектуры. Прежде чем перейти к техническим деталям, 
важно понять главный принцип работы LLM, что именно она делает и почему это 
работает. Большая языковая модель (Large Language Model, LLM) – это компьютерная 
программа, обученная на огромных массивах текста. 
Главная задача LLM: предсказание следующего слова 
Задача большой языковой модели сводится к одному простому действию –
предсказать следующее слово (или токен) в предложении. Именно это и только это умеет 
делать LLM в своей основе. Всё остальное действия, такие как переводы, ответы на 
вопросы, написание кода являются следствием того, что эта задача решается хорошо и 
на огромных объёмах текста. 
Например, вы набираете фразу «Сегодня на улице прекрасная...» и модель должна 
предсказать, какое слово наиболее вероятно следует дальше. Для этого LLM перебирает 
в своей «памяти» миллиарды похожих фраз из обучающего текста и вычисляет 
вероятность каждого слова-кандидата. 
 
Погода 
Девушка 
Картина 
Вероятность 
91 % 
7 % 
2 % 
Выбор модели 
ض «Погода» 
(наибольшая 
вероятность) 
— 
— 
Пример предсказания следующего слова: фраза «Сегодня на улице прекрасная...» 
Модель выбирает слово «Погода», поскольку в обучающем тексте слово 
«прекрасная» в 91% случаев встречается перед словом «погода». Именно статистический 
вес, накопленный из миллиардов примеров, определяет ответ модели. 


Математически выбор следующего слова записывается как задача максимизации 
условной вероятности. Модель ищет токен w*, который максимизирует вероятность P(w 
| нтекст): 
™ȗ  ൌ  ƒ”‰ƒš  ሺ ™ ȁ …Όǡ …΍ǡ ǥǡ …ᴺ ሻ 
где c₁, c₂, …, cₙ – предшествующие токены (контекст); w – кандидат на следующий токен; 
argmax – операция выбора аргумента, то есть номера ячейки массива в которой результат 
вычисления функции принимает максимальное значение. 
Аналогия: LLM как функция ВПР в Excel, но для слов 
Тем, кто знаком с программой Microsoft Excel, полезно представить работу LLM 
по аналогии с функцией ВПР (вертикальный просмотр, VLOOKUP). Функция ВПР 
принимает ключ, просматривает таблицу и возвращает значение из нужного столбца: 
например, по номеру кода товара (ключ), ищет в первой ячейки искомой таблицы этот 
ключ и возвращает цену, находящуюся в указанном столбце. LLM делает то же самое, 
но вместо жёсткой таблицы использует гигантскую матрицу числовых весов. На входе 
o слова-ключи (текст), на выходе o наиболее вероятно подходящие следующее слово: 
Excel: функция ВПР 
LLM: предсказание слова 
Таблица с данными (товар → цена) 
Обучающий текст (текст → слово) 
Ключ поиска: код товара «А-101» 
Ключ поиска: фраза «прекрасная ...» 
Результат: цена = 1 500 руб. 
Результат: слово = «погода» (91 %) 
Аналогия между функцией ВПР в Excel и предсказанием слова в LLM 
Ключевое отличие от Эксель таблиц заключается в том, что LLM не хранит пары 
«слово → ответ» явно. Вместо этого в процессе обучения она «сжимает» статистику из 
терабайтов обучаемого текста в миллиарды числовых параметров (весов нейронной 
сети). Именно в этих весах закодированы все закономерности языка. 
Переход от одного слова к связному тексту 
Вся «гениальность» LLM состоит в том, что она предсказывает не одно слово, а 
применяет 
этот 
механизм 
многократно 
и 
последовательно. 
Каждый 
новый 
предсказанный токен добавляется к ответу, и процесс повторяется снова. Так рождается 
связный абзац, статья или программный код: 
«прекрасная» 
→ 
«погода» 
→ 
«и» 
→ 
«...» 
Схема последовательного предсказания токенов: каждый предсказанный токен становится 
частью текста для следующего предсказания 
Таким образом, LLM угадывает следующее слово, чтобы получился связный и 
осмысленный с человеческой точки зрения ответ. За этой простой идеей стоит сложная 
математика включающая механизм внимания, матричные операции, оптимизацию 
миллиардов параметров и гигантский объём прочитанных данных. 
Упрощённо процесс работы LLM можно представить в виде последовательности 
из пяти шагов: 
1.  Входной текст разбивается на токены (токенизация). 
2.  Каждый токен преобразуется в числовой вектор o эмбеддинг. 
3.  Механизм внимания (Attention) анализирует связи между всеми токенами. 


4.  Нейронная сеть вычисляет вероятности для каждого возможного следующего 
токена. 
5.  Токен с наибольшей вероятностью выбирается и добавляется к тексту. 
Именно эти пять шагов будут реализованы в данной монографии от первого и до 
последнего, с полным математическим обоснованием и подробным разбором 
программного кода на Python. 
Далее рассмотрим что может и что не может LLM. Понимание возможностей и 
ограничений LLM важно для корректного использования таких систем и для правильной 
интерпретации их ответов (см. табл. 1.1). 
 
ض  Что умеет LLM 
غ  Чего LLM не может 
Отвечать на вопросы, формулируя ответ 
своими словами 
По-настоящему думать, чувствовать или 
понимать. LLM это сверхсложный 
калькулятор для слов, но не разум 
Писать тексты: сочинения, письма, 
программный код, стихи 
Знать правду. LLM знает только то, что 
прочитала, а в данных есть и правда, и 
ложь, и вымысел 
Переводить тексты между различными 
языками 
Иметь подлинные личные мнения, так как 
её «мнение» усреднены из текстов 
обучающей выборки 
Обобщать большие объёмы информации 
 
Поддерживать связный многоходовый 
диалог 
 
Таблица 1.1. Возможности и ограничения больших языковых моделей 
Понимание этих ограничений критически важно ведь, LLM это мощный 
инструмент для работы с текстом, но не универсальный разум. Вся её мощь вытекает из 
одной нескольких математических операций (взвешенной суммы, soft-max и др.), 
позволяющих предсказывать следующий токен. 
1.1. Токенизация текста 
Токенизация это процесс разбиения текста на элементарные единицы, 
называемые токенами. Токен (от англ. token — «жетон», «единица») является 
наименьшей единицей, которую языковая модель рассматривает самостоятельно. 
Токеном может быть, как отдельное слово, знак препинания, часть слова так и 
специальные символы. 
Токенизация необходима в связи с тем, что непрерывный текст нельзя 
непосредственно передать в нейронную сеть. Нейронная сеть работает с числами, 
поэтому текст необходимо разбить на раздельные части и присвоить каждой из них 
уникальной числовой код. Поэтому токенизация является первым и обязательным шагом 
этого процесса. 


1.1.1. Математическое определение токенизации 
Формально, входной текст T представляет собой последовательность символов: 
 ൌ ሺ…Όǡ …΍ǡ ǥǡ …ᴺሻǡ   …᤺ א ȭǡ 
где Σ – алфавит (множество допустимых символов в кодировке UTF-8), N = |T| – общее 
число символов в тексте. 
Операция токенизации определяет функцию f, разбивающую последовательность 
символов на последовательность токенов: 
ˆ ǣ   ՜  ሺ–Όǡ –΍ǡ ǥǡ –ᴹሻǡ   –᤺ א ȭΆǡ 
где каждый токен tᵢ является непустой подстрокой текста T, а M ≤ N – число токенов. 
Важно, обеспечить выполнение условия M < N, поскольку пробелы и служебные 
символы объединяются с соседними токенами или удаляются. Поэтому разбиение 
должно выполняется таким образом, чтобы токены не перекрывали смысловое 
содержание текста. 
1.1.2. Числовой пример перехода от фразы к токенам 
Рассмотрим пример перехода от введённой фразы до получения токена в LLM. 
Дана фраза: "Hello, world! This is a test." Процесс токенизации разбивает её по пробелам 
и знакам препинания, сохраняя каждый знак как отдельный токен (см. рис. 1.2). 
 
Исходная фраза:  "Hello, world! This is a test." 
↓  применяем re.split()  ↓ 
«Hello» 
токен 0 
«,» 
токен 1 
«world» 
токен 2 
«!» 
токен 3 
«This» 
токен 4 
«is» 
токен 5 
«a» 
токен 6 
«test» 
токен 7 
«.» 
токен 8 
 
Рисунок 1.2. Результат токенизации фразы "Hello, world! This is a test." в 9 токенов (7 слов + 
2 знака препинания) 
Обратите внимание: исходная фраза содержит 29 символа (N = 29), а после 
токенизации получаем M = 9 токенов. Знаки препинания (запятая, восклицательный 
знак, точка) выделены в отдельные токены это важно, так как они несут смысловую 
нагрузку. При этом пробелы удаляются так как они служат лишь разделителями. 
Применим тот же принцип к полному тексту рассказа «The Verdict»: N = 20 479 
символов → M = 4 690 токенов. Коэффициент сжатия M/N ≈ 0.23, то есть в среднем одно 
слово занимает около 4y5 символов. 
Пошаговый пример токенизации фразы «Hello, world! This is a test.» представлен 
в таблице 1.5, и наглядно показывает, как строковый текст превращается в список 
токенов. 
 
 


Шаг 
Содержимое 
Пояснение 
0 
Исходная 
строка 
"Hello, world! This is a test." 
Строка из 
29 
символов 
(N=29) 
1 
re.split() 
"Hello"|","|" "|"world"|"!"|" "|"This"|" "|"is"|" 
"|"a"|" "|"test"|"." 
Разделили 
по \s 
2 
Фильтрация 
item.strip() → убрали пробелы 
Удалены 
пустые 
строки 
3 
Результат 
['Hello',',','world','!','This','is','a','test','.'] M = 9 
токенов 
Таблица 1.5. Пошаговая схема токенизации фразы «Hello, world! This is a test.» 
Функция open() открывает файл the-verdict.txt в режиме чтения ("r") с 
кодировкой UTF-8. Метод f.read() считывает весь файл в одну строку Python. 
Функция len(raw_text) возвращает N = 20 479 количество символов в исследуемом 
тексте. Метод raw_text[:200] выводит первые 200 символов для визуальной 
проверки. 
Результат выполнения 1 ячейки: 
Total number of character: 20479 
I HAD always thought Jack Gisburn rather a cheap genius--though a good 
fellow enough--so it was no great surprise to me to hear that, in the 
height of his glory, he had dropped his painting, married a 
1.1.4. Принцип разбиения текста 
Для разбиения текста на токены используется библиотека регулярных выражений 
«re». Регулярное выражение (regular expression, RegEx) являются формальным языком 
описания шаблонов строк. С их помощью реализуется логическое правило: «разбить 
текст по пробелам И по знакам препинания, оставив и те, и другие как отдельные 
токены». 
ʮ˚ˈˌˍ˃ ʹǤ ʟ˃ˊ˄ˋˈːˋˈ ˕ˈˍ˔˕˃ 
import re 
text = "Hello, world: This, is a -- test." 
result = re.split(r'([.,;:?_!"()\'\']|--|\s)', text) 
result = [item.strip() for item in result if item.strip()] 
print(result) 
Разберем функции использующиеся в этом коде: 
re.split(pattern, text) функция разбивает строку по паттерну. Благодаря этой 
операции, разделители (запятые, точки и т.д.) сохраняются как отдельные элементы. 
item.strip() удаляет пробелы по краям каждого элемента. 
if item.strip() фильтрует пустые строки, возникающие между соседними 
разделителями. 
Результат выполнения 2 ячейки: 
['Hello', ',', 'world', ':', 'This', ',', 'is', 'a', '--', 'test', '.'] 


Доступ онлайн
от 568 ₽
В корзину
Частному лицу
Бумажная книга
3 457 ₽
Купить
Купить в составе основной коллекции от 1 490 ₽