NLTK
NLTK (англ. Natural Language Toolkit) — свободная библиотека для языка программирования Python, предназначенная для решения широкого спектра задач обработки естественного языка (NLP). Платформа была создана в Университете Пенсильвании Стивеном Бердом, Эдвардом Лопером и Эваном Кляйном и впервые выпущена в 2001 году[1]. Исходный код распространяется по лицензии Apache 2.0[2], а последняя стабильная версия 3.9.1 опубликована 19 августа 2024 года[3]. Актуальная версия 3.9.2 выпущена 1 октября 2025 года[4][5].
Общие сведения
| NLTK | |
|---|---|
| Тип | Платформа обработки естественного языка |
| Авторы | Стивен Берд; Эдвард Лопер; Эван Кляйн |
| Разработчик | Сообщество NLTK |
| Написана на | Python |
| Операционная система | Кроссплатформенный |
| Языки интерфейса | Английский |
| Первый выпуск | 2001 |
| Последняя версия | 3.9.2 (2025) |
| Состояние | Активно разрабатывается |
| Лицензия | Apache 2.0 |
| Сайт | nltk.org |
Функции
NLTK предоставляет более пятидесяти модулей и корпусов, охватывающих основные направления обработки текста[6][7]. Ключевые возможности включают:
- Токенизация — разбиение текста на предложения и слова.
- Удаление стоп-слов — фильтрация часто употребляемых, но малозначимых слов.
- Стемминг и лемматизация — приведение слов к корневой и словарной форме.
- Разметка частей речи (POS-tagging) — автоматическое присвоение тегов грамматических категорий.
- Распознавание именованных сущностей (NER) — выделение и классификация имён, организаций, топонимов и других сущностей.
- Синтаксический разбор — построение деревьев зависимостей и constituency-структур.
- Семантический анализ — инструменты для работы с семантическими ролями и логическими формами.
- Классификация текста — обучение моделей (например, Naive Bayes) для тематической или тоновой категоризации.
- Анализ тональности — встроенный лексикон VADER для определения эмоциональной окраски высказываний.
- Моделирование языка — построение n-граммных моделей и оценка вероятностей последовательностей.
- Извлечение информации — выявление фактов, отношений и событий из неструктурированных данных.
- Работа с корпусами — доступ к более чем 50 открытым наборам текстов (Brown, Gutenberg, movie_reviews и др.) и лексическому ресурсу WordNet.
Каждый инструмент реализован в виде самостоятельного модуля, что позволяет комбинировать их в сложные конвейеры обработки[8].
Примеры использования
NLTK широко применяется в образовании, исследовательских проектах и промышленной разработке. Ниже приведены типичные сценарии работы с библиотекой.
- Токенизация и POS-тегирование
Простейшая обработка текста начинается с вызоваword_tokenize()иpos_tag(), которые разбивают предложение на токены и назначают им грамматические категории. Такой конвейер используется как подготовительный этап для синтаксического анализа или извлечения сущностей[7].
- Распознавание именованных сущностей
Команда ne_chunk() строит древовидную структуру, в которой группируются распознанные сущности (PERSON, ORGANIZATION, GPE и т. д.), — полезно, например, при выделении компаний и сумм сделок в финансовых новостях[9].
- Анализ тональности
Встроенный класс SentimentIntensityAnalyzer (алгоритм VADER) возвращает четыре метрики («neg», «neu», «pos», «compound»), позволяя без обучения моделей оценивать эмоциональную окраску пользовательских отзывов[10].
Для снижения размерности словарей применяютсяPorterStemmerиWordNetLemmatizer. Второй учитывает часть речи, что обеспечивает более точное приведение слов к нормальной форме[11].
- Классификация текстов
Корпус movie_reviews часто используется как учебный пример бинарной классификации: после извлечения признаков присутствия слов обучается NaiveBayesClassifier, который демонстрирует точность свыше 80 % на тестовой выборке[12].
Примечания
- ↑ Natural Language Toolkit. Devopedia. Дата обращения: 6 июля 2025.
- ↑ NLTK Package details. Cloudsmith. Дата обращения: 6 июля 2025.
- ↑ NLTK News. NLTK. Дата обращения: 6 июля 2025.
- ↑ nltk. PyPI. Дата обращения: 18 февраля 2026.
- ↑ nltk - Debian Package Tracker. tracker.debian.org. Дата обращения: 18 февраля 2026.
- ↑ NLTK — Natural Language Toolkit. NLTK. Дата обращения: 6 июля 2025.
- ↑ 1 2 NLTK (Natural Language Toolkit) for Data Science. Technaureus. Дата обращения: 6 июля 2025.
- ↑ NLTK Book. NLTK. Дата обращения: 6 июля 2025.
- ↑ Implementing Named Entity Recognition (NER) with NLTK in Python. Medium. Дата обращения: 6 июля 2025.
- ↑ Sentiment Analysis With the Natural Language Toolkit (NLTK). Real Python. Дата обращения: 6 июля 2025.
- ↑ Stemming and Lemmatization With NLTK. Distinctive Analytics. Дата обращения: 6 июля 2025.
- ↑ NLTK Book — Chapter 6: Learning to Classify Text. NLTK. Дата обращения: 6 июля 2025.