Обработка естественного языка (NLP) — это область информатики и искусственного интеллекта, связанная с взаимодействием между компьютером и человеческим (естественным) языком.
Хотите знать, что такое NLTK? Согласно вики, Инструментарий естественного языка, или чаще NLTK, представляет собой набор библиотек и программ для символической и статистической обработки естественного языка (NLP) для «английского языка, написанный на языке программирования Python. Он был разработан Стивеном Бердом и Эдвардом Лопером на факультете компьютерных и информационных наук Пенсильванского университета».
Требования к этому уроку:
Давайте изучим пакет 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: Выполните все эти коды и тада!!! Вы знаете основы НЛП 😃
Вы также можете попробовать некоторые мини-проекты, такие как:
- Извлечение ключевых слов документов, статей.
- Составление частей речи для фраз.
- Получение самых часто используемых слов среди всех документов.
Кроме того, вот список Проектов НЛП с открытым исходным кодом на Python, которые вы, возможно, захотите попробовать.
Автор: Пема Гурунг
Пема Гурунг — инженер ML/NLP, в настоящее время работает в EKbana.
Вы хотите изучать Python, науку о данных и машинное обучение во время получения сертификата? Вот несколько самых продаваемых курсов Udemy, на которые мы рекомендуем вам записаться:
- 2021 Complete Python Bootcamp From Zero to Hero in Python — уже зачислено более 1 000 000 студентов!
- Python для Data Science and Machine Learning Bootcamp — уже зачислено более 400 000 студентов!
- Полное руководство по TensorFlow для глубокого обучения с помощью Python — уже зачислено более 90 000 студентов!
- Учебный курс по науке о данных и машинному обучению с R — уже зачислено более 70 000 студентов!
- Полный курс SQL Bootcamp 2021: от нуля до героя — уже зачислено более 400 000 студентов!
Отказ от ответственности. Когда вы совершаете покупку по приведенным выше ссылкам, мы можем получать комиссию в качестве партнера.
Первоначально опубликовано на https://www.theclickreader.com.