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].

Примечания

  1. Natural Language Toolkit. Devopedia. Дата обращения: 6 июля 2025.
  2. NLTK Package details. Cloudsmith. Дата обращения: 6 июля 2025.
  3. NLTK News. NLTK. Дата обращения: 6 июля 2025.
  4. nltk. PyPI. Дата обращения: 18 февраля 2026.
  5. nltk - Debian Package Tracker. tracker.debian.org. Дата обращения: 18 февраля 2026.
  6. NLTK — Natural Language Toolkit. NLTK. Дата обращения: 6 июля 2025.
  7. 1 2 NLTK (Natural Language Toolkit) for Data Science. Technaureus. Дата обращения: 6 июля 2025.
  8. NLTK Book. NLTK. Дата обращения: 6 июля 2025.
  9. Implementing Named Entity Recognition (NER) with NLTK in Python. Medium. Дата обращения: 6 июля 2025.
  10. Sentiment Analysis With the Natural Language Toolkit (NLTK). Real Python. Дата обращения: 6 июля 2025.
  11. Stemming and Lemmatization With NLTK. Distinctive Analytics. Дата обращения: 6 июля 2025.
  12. NLTK Book — Chapter 6: Learning to Classify Text. NLTK. Дата обращения: 6 июля 2025.