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

Я далеко не эксперт, но я все еще учусь и буду стараться писать статьи на протяжении всего своего пути.

Что такое естественная обработка?

НЛП — это одна из областей искусственного интеллекта, связанная с общением между людьми и компьютерами. Это включает в себя генерацию естественного языка, распознавание речи и понимание естественного языка компьютером.

Установка

Как и любая другая установка стороннего модуля, это довольно просто.

pip install nltk

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

import nltk

Теперь вы можете получить доступ к этому огромному модулю nltk и поиграть с ним!!

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

nltk.download()

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

Загрузите книгу, нажав на нее и нажав "Загрузить".

После того, как вы закончите установку, вы можете просто импортировать этот книжный модуль.

from nltk.book import *

В приведенной выше строке я говорю интерпретатору Python загрузить все элементы из модуля book.

Если вы хотите работать с этими текстами, то просто введите его название

>>> text5
<Text: Chat Corpus>

Searching

согласованность()

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

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

Например, если я хочу найти вхождение слова бог в text3, тогда:

>>> text3.concordance("god")
Displaying 25 of 231 matches:
In the beginning God created the heaven and the earth . An
 face of the deep . And the Spirit of God moved upon the face of the waters . A
ved upon the face of the waters . And God said , Let there be light : and there
 be light : and there was light . And God saw the light , that it was good :...................

Используя эту мощную функцию, мы можем искать появление любого слова в любом тексте.

похожий()

Похожие — это еще одна функция в Nltk, которая помогает нам находить слова, встречающиеся в похожем диапазоне контекста.

>>> text3.similar("god")
he joseph pharaoh jacob they abraham she isaac sarah them him it i me
abram laban thee cain esau judah

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

общие_контексты()

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

>>> text3.common_contexts(["god","he"])
and_said and_saw and_divided and_called and_made and_set and_blessed
for_said and_looked as_had and_spake and_went which_had said_hath
and_heard for_hath and_was that_did which_hath and_came

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

Я настоятельно рекомендую вам поиграть с этими функциями, используя другие тексты.

генерировать()

Это просто случайная функция, которая генерирует случайные слова из указанного текста.

>>> text3.generate()
Building ngram index...
laid by her , and said unto Cain , Where art thou , and said , Go to ,
I will not do it for ten ' s sons ; we dreamed each man according to..............

Подсчет слов

Мы можем легко подсчитать длину слов и количество слов, используя встроенную функцию Python.

>>> len(text3)
44764

Таким образом, общее количество слов вместе со знаками препинания, используемыми в тексте3, соответствует 44764.

Сосчитать конкретное слово тоже просто

>>> text3.count("the")
2411

Поскольку слова будут повторяться в тексте несколько раз, в этом случае мы можем использовать функцию python set.

>>> len(set(text3))
2789

Распределение частоты

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

>>> FreqDist(text3)
FreqDist({',': 3681, 'and': 2428, 'the': 2411, 'of': 1358, '.': 1315, 'And': 1250, 'his': 651, 'he': 648, 'to': 611, ';': 605, ...})

Он возвращает словарь, в котором ключи представляют слова или знаки препинания, а соответствующее значение представляет их частоту.

Чтобы проверить наиболее распространенные слова, мы можем использовать функцию most_common(). Нам просто нужно передать целое число внутри скобок.

>>> fd.most_common(25)
[(',', 3681), ('and', 2428), ('the', 2411), ('of', 1358), ('.', 1315), ('And', 1250), ('his', 651), ('he', 648), ('to', 611), (';', 605), ('unto', 590), ('in', 588), ('that', 509), ('I', 484), ('said', 476), ('him', 387), ('a', 342), ('my', 325), ('was', 317), ('for', 297), ('it', 290), ('with', 289), ('me', 282), ('thou', 272), ("'", 268)]

Биграмма и словосочетание

В лингвистике биграмма — это последовательность двух смежных элементов, встречающихся в тексте.

А словосочетание — это биграмма, которая встречается в тексте более чем часто.

>>> list(bigrams(["oh","yea","you","thank","this","that"]))
[('oh', 'yea'), ('yea', 'you'), ('you', 'thank'), ('thank', 'this'), ('this', 'that')]

Функция bigram позволяет генерировать кортежи из 2 слов из заданного списка.

Мы можем использовать функцию collocation() для создания последовательности часто используемых смежных слов.

text4.collocations()

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

Спасибо, что нашли время прочитать эту статью.

Хорошего дня :)