Обработка естественного языка - это аспект машинного обучения, который позволяет преобразовывать написанные слова в машинно-понятный язык. Затем такие тексты можно настраивать, и вы можете запускать на них вычислительные алгоритмы по своему усмотрению.

Логика этой увлекательной технологии кажется сложной, но на самом деле это не так. И даже сейчас, хорошо разбираясь в основах программирования на Python, вы можете создать новый текстовый процессор своими руками с помощью набора инструментов естественного языка (NLTK).

Вот как начать работу с Python NLTK.

Что такое НЛТК и как он работает?

Написанный на Python, NLTK имеет множество функций управления строками. Это универсальная библиотека естественного языка с обширным репозиторием моделей для различных приложений на естественном языке.

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

instagram viewer

Как настроить NLTK

Сначала создайте корневую папку проекта в любом месте вашего ПК. Чтобы начать использовать библиотеку NLTK, откройте свой терминал в корневой папке, которую вы создали ранее, и создать виртуальную среду.

Затем установите набор инструментов для естественного языка в эту среду, используя пип:

pip install nltk

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

Итак, после успешной установки NLTK откройте файл Python с помощью любого редактора кода.

Затем импортируйте nltk модуль и создайте экземпляр загрузчика данных, используя следующий код:

pip install nltk
nltk.download ()

Запуск вышеуказанного кода через терминал вызывает графический пользовательский интерфейс для выбора и загрузки пакетов данных. Здесь вам нужно выбрать пакет и нажать кнопку Скачать кнопку, чтобы получить это.

Любой загружаемый вами пакет данных попадает в указанный каталог, записанный в Каталог загрузок поле. Вы можете изменить это, если хотите. Но постарайтесь сохранить местоположение по умолчанию на этом уровне.

Связанный: Лучшие бесплатные редакторы кода для написания вашего первого приложения

Примечание: Пакеты данных по умолчанию добавляются к системным переменным. Таким образом, вы можете продолжать использовать их для последующих проектов независимо от того, какую среду Python вы используете.

Как использовать токенизаторы NLTK

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

Вот пример того, как использовать NLTK word_tokenizer:

импортировать nltk
из nltk.tokenize import word_tokenize
word = "Это пример текста"
tokenWord = word_tokenizer (слово)
печать (tokenWord)
Выход:
['This', 'is', 'an', 'example', 'text']

NLTK также использует предварительно обученный токенизатор предложений под названием PunktSentenceTokenizer. Он работает, разбивая абзац на список предложений.

Давайте посмотрим, как это работает с абзацем из двух предложений:

импортировать nltk
из nltk.tokenize import word_tokenize, PunktSentenceTokenizer
предложение = "Это пример текста. Это учебник для NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (предложение)
печать (tokenized_sentence)
Выход:
['Это пример текста.', 'Это учебное пособие по NLTK']

Вы можете дополнительно токенизировать каждое предложение в массиве, созданном из приведенного выше кода, используя word_tokenizer а также Python для цикла.

Примеры использования NLTK

Итак, хотя мы не можем продемонстрировать все возможные варианты использования NLTK, вот несколько примеров того, как вы можете начать использовать его для решения реальных проблем.

Получите определения слов и их части речи

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

Вы можете использовать Wordnet модель для генерации переменных для текста. Затем определите его значение и часть речи.

Например, давайте проверим возможные переменные для "Monkey:"

импортировать nltk
из nltk.corpus импортировать wordnet как wn
печать (wn.synsets ('обезьяна'))
Выход:
[Synset ('monkey.n.01'), Synset ('imp.n.02'), Synset ('tamper.v.01'), Synset ('putter.v.02')]

Приведенный выше код выводит возможные варианты слов или синтаксис и части речи для "Monkey".

Теперь проверьте значение слова «Обезьяна», используя определение метод:

Обезьяна = wn.synset ('обезьяна.n.01'). Определение ()
Выход:
любой из различных длиннохвостых приматов (кроме просимианов)

Вы можете заменить строку в скобках другими сгенерированными альтернативами, чтобы увидеть, что выводит NLTK.

В pos_tag модель, однако, определяет части речи слова. Вы можете использовать это с word_tokenizer или PunktSentenceTokenizer () если вы имеете дело с более длинными абзацами.

Вот как это работает:

импортировать nltk
из nltk.tokenize import word_tokenize, PunktSentenceTokenizer
word = "Это пример текста. Это учебник по NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (слово)
для i в tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
печать (partsOfSpeech)
Выход:
[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('text', 'NN'), ('.', '.')]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]

Приведенный выше код объединяет каждое токенизированное слово с его речевым тегом в кортеж. Вы можете проверить значение этих тегов на Penn Treebank.

Для более чистого результата вы можете удалить точки в выводе, используя заменять() метод:

для i в tokenized_sentence:
tokenWordArray = word_tokenize (i.replace ('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
печать (partsOfSpeech)
Более чистый вывод:
[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('text', 'NN') ]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]

Визуализация тенденций в функциях с использованием графика NLTK

Извлечение функций из необработанных текстов часто утомительно и требует много времени. Но вы можете просмотреть наиболее сильные детерминаторы признаков в тексте, используя график тренда частотного распределения NLTK.

NLTK, однако, синхронизируется с matplotlib. Вы можете использовать это для просмотра определенной тенденции в ваших данных.

Например, приведенный ниже код сравнивает набор положительных и отрицательных слов на графике распределения, используя их последние два алфавита:

импортировать nltk
из nltk import ConditionalFreqDist
Списки отрицательных и положительных слов:
негативы = [
«ненормальный», «отменить», «отвратительный»,
"мерзко", "мерзко", "мерзость"
]
положительные = [
'изобиловать', 'изобилует', 'изобилие',
"изобильный", "доступный", "доступный"
]
# Разделите элементы в каждом массиве на помеченные пары кортежей
# и объединяем оба массива:
pos_negData = ([(«негативный», neg) для отрицательного в отрицательном] + [(«положительный», pos) для положительного в положительном])
# Извлечь последние два алфавита из полученного массива:
f = ((pos, i [-2:],) для (pos, i) в pos_negData)
# Создайте график распределения этих алфавитов
cfd = ConditionalFreqDist (f)
cfd.plot ()

График распределения алфавита выглядит так:

Если внимательно присмотреться к графику, слова, оканчивающиеся на ce, ds, ле, nd, а также нт имеют более высокую вероятность быть положительными текстами. Но те, которые заканчиваются на аль, лы, на, а также te скорее отрицательные слова.

Примечание: Хотя здесь мы использовали самогенерируемые данные, вы можете получить доступ к некоторым встроенным наборам данных NLTK, используя его считыватель Corpus, вызвав их из корпус класс nltk. Вы можете посмотреть на документация по корпусу пакета чтобы увидеть, как вы можете его использовать.

С появлением таких технологий, как Alexa, обнаружение спама, чат-боты, анализ настроений и т. Д., Обработка естественного языка, похоже, переходит в неочеловеческую фазу. Хотя в этой статье мы рассмотрели только несколько примеров того, что предлагает NLTK, у этого инструмента есть более сложные приложения, которые выходят за рамки этого руководства.

Прочитав эту статью, вы должны иметь хорошее представление о том, как использовать NLTK на базовом уровне. Все, что вам осталось сделать, это самому применить эти знания на практике!

ДелитьсяТвитнутьЭл. адрес
7 библиотек машинного обучения для начинающих экспертов

Заинтересованы в области машинного обучения? Начните с этих библиотек.

Читать далее

Похожие темы
  • Программирование
  • Python
  • Языки программирования
  • Программирование
Об авторе
Идову Омисола (96 опубликованных статей)

Идову увлечен интеллектуальными технологиями и производительностью. В свободное время он играет с кодированием и переключается на шахматную доску, когда ему скучно, но он также любит время от времени отвлекаться от рутины. Его страсть показывать людям современные технологии побуждает его писать больше.

Ещё от Idowu Omisola

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться