Обработка естественного языка (NLP) — это область информатики и искусственного интеллекта, связанная с взаимодействием между компьютером и человеческим (естественным) языком.

Хотите знать, что такое NLTK? Согласно вики, Инструментарий естественного языка, или чаще NLTK, представляет собой набор библиотек и программ для символической и статистической обработки естественного языка (NLP) для «английского языка, написанный на языке программирования Python. Он был разработан Стивеном Бердом и Эдвардом Лопером на факультете компьютерных и информационных наук Пенсильванского университета».

Требования к этому уроку:

  • Обязательно установите Python.
  • Обязательно установите nltk и его корпус.

Давайте изучим пакет NLTK!

1. Импортировать нлтк

Импортируйте nltk, чтобы использовать его функции.

import nltk

2. Преобразование текста в нижний регистр:

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

text = "This is a Demo Text for NLP using NLTK. Full form of NLTK is Natural Language Toolkit"
lower_text = text.lower()
print(lower_text)
[OUTPUT]: this is a demo text for nlp using nltk. full form of nltk is natural language toolkit

3. Токенизация Word

Токенизировать предложения, чтобы получить токены текста, т.е. разбить предложения на слова.

text = "This is a Demo Text for NLP using NLTK. Full form of NLTK is Natural Language Toolkit"
word_tokens = nltk.word_tokenize(text)
print (word_tokens)
[OUTPUT]: ['This', 'is', 'a', 'Demo', 'Text', 'for', 'NLP', 'using', 'NLTK', '.', 'Full', 'form', 'of', 'NLTK', 'is', 'Natural', 'Language', 'Toolkit']

4. Маркировать предложение

Токенизировать предложения, если их более 1 предложения, т.е. разбить предложения на список предложений.

text = "This is a Demo Text for NLP using NLTK. Full form of NLTK is Natural Language Toolkit"
sent_token = nltk.sent_tokenize(text)
print (sent_token)
[OUTPUT]: ['This is a Demo Text for NLP using NLTK.', 'Full form of NLTK is Natural Language Toolkit']

5. Удаление стоп-слов

Удалите нерелевантные слова, используя стоп-слова nltk, такие как is, the, a и т. д., из предложений, поскольку они не несут никакой информации.

import nltk
from nltk.corpus import stopwords

stopword = stopwords.words('english')
text = "This is a Demo Text for NLP using NLTK. Full form of NLTK is Natural Language Toolkit"
word_tokens = nltk.word_tokenize(text)
removing_stopwords = [word for word in word_tokens if word not in stopword]
print (removing_stopwords)
[OUTPUT]: ['This', 'Demo', 'Text', 'NLP', 'using', 'NLTK', '.', 'Full', 'form', 'NLTK', 'Natural', 'Language', 'Toolkit']

6. Лемматизировать

Лемматизируйте текст, чтобы получить его корневую форму, например: функции, функциональность как функция.

import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer

#is based on The Porter Stemming Algorithm
stopword = stopwords.words('english')
wordnet_lemmatizer = WordNetLemmatizer()
text = "the dogs are barking outside. Are the cats in the garden?"
word_tokens = nltk.word_tokenize(text)
lemmatized_word = [wordnet_lemmatizer.lemmatize(word) for word in word_tokens]
print (lemmatized_word)
[OUTPUT]: ['the', 'dog', 'are', 'barking', 'outside', '.', 'Are', 'the', 'cat', 'in', 'the', 'garden', '?']

7. Вывод

Stemming — это процесс приведения флективных (или иногда производных) слов к их основе, основе или корневой форме.

import nltk
from nltk.corpus import stopwords
from nltk.stem import SnowballStemmer

#is based on The Porter Stemming Algorithm
stopword = stopwords.words('english')
snowball_stemmer = SnowballStemmer('english')
text = "This is a Demo Text for NLP using NLTK. Full form of NLTK is Natural Language Toolkit"
word_tokens = nltk.word_tokenize(text)
stemmed_word = [snowball_stemmer.stem(word) for word in word_tokens]
print (stemmed_word)
[OUTPUT]: ['this', 'is', 'a', 'demo', 'text', 'for', 'nlp', 'use', 'nltk', '.', 'full', 'form', 'of', 'nltk', 'is', 'natur', 'languag', 'toolkit']

8. Получить частоту слов

Подсчитайте вхождение слова, используя библиотеку FreqDist.

import nltk
from nltk import FreqDist

text = "This is a Demo Text for NLP using NLTK. Full form of NLTK is Natural Language Toolkit"
word = nltk.word_tokenize(text.lower())
freq = FreqDist(word)
print (freq.most_common(5))
[OUTPUT]: [('is', 2), ('nltk', 2), ('this', 1), ('a', 1), ('demo', 1)]

9. Маркировка POS (часть речи)

Тег POS помогает нам узнать теги каждого слова, например, является ли слово существительным, прилагательным и т. д.

import nltk
text = "the dogs are barking outside."
word = nltk.word_tokenize(text)
pos_tag = nltk.pos_tag(word)
print (pos_tag)
[OUTPUT]: [('the', 'DT'), ('dogs', 'NNS'), ('are', 'VBP'), ('barking', 'VBG'), ('outside', 'IN'), ('.', '.')]

10. Распознавание именованных объектов

NER (Распознавание именованных объектов) — это процесс получения имен объектов.

import nltk
text = "who is Barrack Obama"
word = nltk.word_tokenize(text)
pos_tag = nltk.pos_tag(word)
chunk = nltk.ne_chunk(pos_tag)
NE = [ " ".join(w for w, t in ele) for ele in chunk if isinstance(ele, nltk.Tree)]
print(NE)
[OUTPUT]: ['Barrack Obama']

PS: Выполните все эти коды и тада!!! Вы знаете основы НЛП 😃

Вы также можете попробовать некоторые мини-проекты, такие как:

  1. Извлечение ключевых слов документов, статей.
  2. Составление частей речи для фраз.
  3. Получение самых часто используемых слов среди всех документов.

Кроме того, вот список Проектов НЛП с открытым исходным кодом на Python, которые вы, возможно, захотите попробовать.

Автор: Пема Гурунг

Пема Гурунг — инженер ML/NLP, в настоящее время работает в EKbana.

Вы хотите изучать Python, науку о данных и машинное обучение во время получения сертификата? Вот несколько самых продаваемых курсов Udemy, на которые мы рекомендуем вам записаться:

  1. 2021 Complete Python Bootcamp From Zero to Hero in Python — уже зачислено более 1 000 000 студентов!
  2. Python для Data Science and Machine Learning Bootcamp — уже зачислено более 400 000 студентов!
  3. Полное руководство по TensorFlow для глубокого обучения с помощью Python — уже зачислено более 90 000 студентов!
  4. Учебный курс по науке о данных и машинному обучению с R — уже зачислено более 70 000 студентов!
  5. Полный курс SQL Bootcamp 2021: от нуля до героя — уже зачислено более 400 000 студентов!

Отказ от ответственности. Когда вы совершаете покупку по приведенным выше ссылкам, мы можем получать комиссию в качестве партнера.

Первоначально опубликовано на https://www.theclickreader.com.