Введение в NLTK для NLP с Python

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


NLTK (Natural Language Toolkit) - это стандартный API для NLP (обработки естественного языка) с Python. Это действительно мощный инструмент для предварительной обработки текстовых данных для дальнейшего анализа, например, с моделями машинного обучения. Это помогает преобразовать текст в числа, с которыми модель может легко работать. Это первая часть базового введения в NLTK, которая поможет вам получить некоторые базовые знания Python.

Введение в NLTK для NLP с Python

Во-первых, вы хотите установить NLTK с помощью pip (или conda). Команда для этого довольно проста как для Mac, так и для Windows: pip install nltk Если это не сработает, попробуйте взглянуть на эту страницу из документации. Обратите внимание: у вас должна быть как минимум версия - 3.5 Python для NLTK.

Чтобы проверить, правильно ли установлен NLTK, просто введите import nltk в своей среде IDE. Если он работает без ошибок, поздравляю! Но подождите, есть еще куча вещей, которые нужно загрузить и установить. В вашей среде IDE после импорта перейдите к следующей строке, введите nltk.download () и запустите этот сценарий. Появится окно установки. Выберите все и нажмите «Загрузить», чтобы загрузить и установить дополнительные пакеты. Это загрузит все необходимые словари и другие языковые и грамматические фреймы данных, необходимые для полной функциональности NLTK. NLTK полностью поддерживает английский язык, но другие языки, такие как испанский или французский, не поддерживаются так широко. Теперь мы готовы обрабатывать наш первый естественный язык.

Токенизация

Одна из самых простых вещей, которую мы хотим сделать, - это разделить текст на слова или предложения. Это называется токенизацией.

Введение в NLTK для NLP с Python

Мы получаем текст, элегантно преобразованный в форматы списков. Вышеупомянутая токенизация без NLTK займет часы и часы кодирования с регулярными выражениями! Вы можете задаться вопросом о знаках препинания. Об этом нам придется позаботиться отдельно. Мы также могли бы использовать другие токенизаторы, такие как PunktSentenceTokenizer, который представляет собой предварительно обученную неконтролируемую модель машинного обучения. Мы даже можем обучить его сами, если захотим.

Стоп-слова

Стоп-слова - это в основном слова, которые не имеют сильных значимых коннотаций, например, «и», «а», «это», «они» и т. Д. Они оказывают значимое влияние, когда мы используем их для общения друг с другом, но для компьютерного анализа они на самом деле не так полезны (ну, возможно, они могли бы быть, но компьютерные алгоритмы еще не настолько умны, чтобы точно расшифровать их контекстное влияние, если честно). Давайте посмотрим на пример:

Введение в NLTK для NLP с Python

Как видите, многие слова, такие как «будет», «и», удалены. Это сэкономит огромное количество вычислений и, следовательно, время, если мы запихнем тела текстов с большим количеством «пустых» слов в модель машинного обучения.

Стемминг

Это когда «пустые» буквы (не слова) удаляются из слова и группируются вместе с его «основной формой». Например, слова «играть», «играю» или «играет» передают то же значение (хотя, опять же, не совсем, но для анализа с помощью компьютера такие детали все еще не подходят). Поэтому вместо того, чтобы использовать их как разные слова, мы можем объединить их под одним общим термином «игра».

Введение в NLTK для NLP с Python

Мы использовали PorterStemmer, предварительно написанный класс стеммера. Существуют и другие стеммеры, такие как SnowballStemmer и LancasterStemmer, но PorterStemmer - своего рода самый простой. «Играть» и «Игривый» следует понимать как два разных слова. Обратите внимание, как последнее «игривое» распознается как «игра», а не «игривое». Вот где простота PorterStemmer нежелательна. Вы также можете обучить свои собственные, используя модели машинного обучения неконтролируемой кластеризации или контролируемой классификации.

Введение в NLTK для NLP с Python

Теперь его можно эффективно токенизировать для дальнейшей обработки или анализа. Довольно аккуратно, правда ?!

Пометка частей речи (pos)

Следующая важная вещь, которую мы хотим сделать, - это пометить каждое слово в корпусе (корпус, или просто «мешок слов»), который мы создали после преобразования предложений путем токенизации.

Введение в NLTK для NLP с Python

Метод pos_tag () принимает список токенизированных слов и помечает каждое из них соответствующим идентификатором частей речи в кортежи. Например, VB относится к «глаголу», NNS относится к «существительным множественного числа», DT относится к «определителю». Эти теги почти всегда довольно точны, но мы должны знать, что иногда они могут быть неточными. Однако предварительно обученные модели обычно предполагают, что используемый английский язык написан правильно с соблюдением грамматических правил.

Это может быть проблемой при анализе неформальных текстов, например, из Интернета. Помните фреймы данных, которые мы загрузили после установки NLTK? Они содержат наборы данных, которые изначально использовались для обучения этих моделей. Чтобы применить эти модели в контексте наших собственных интересов, нам нужно сначала обучить эти модели на новых наборах данных, содержащих неформальные языки.

В своих будущих статьях я расскажу больше об основах NLTK и о том, как мы можем использовать встроенные методы NLTK для легкого обучения наших собственных моделей машинного обучения. Дополнительные ресурсы вы можете найти в документации и книге NLTK :

https://www.nltk.org/book/

Эта статья https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf 2001 года под названием «Необоснованная эффективность данных» проиллюстрировала, насколько неэффективными могут быть данные, когда дело доходит до расшифровки значимых закономерностей и тенденций, независимо от того, какой алгоритм машинного обучения мы используем. Но с текстовыми данными это не проблема. Самая обширная форма данных, доступная в Интернете, - это текстовые данные. Представьте себе потенциал и возможности применения машинного обучения в этой огромной базе данных. Но первым препятствием для преобразования этих слов в удобные для вычислений форматы для алгоритмов машинного обучения для их анализа, является этап предварительной обработки, ключ к которому имеет NLTK. Удачного обучения!


Источник: zen.yandex.ru

Комментарии: