В этой серии я попытаюсь объяснить различные основные функции этого модуля и то, как вы сможете создать своего собственного бота, вводя данные.
Я далеко не эксперт, но я все еще учусь и буду стараться писать статьи на протяжении всего своего пути.
Что такое естественная обработка?
НЛП — это одна из областей искусственного интеллекта, связанная с общением между людьми и компьютерами. Это включает в себя генерацию естественного языка, распознавание речи и понимание естественного языка компьютером.
Установка
Как и любая другая установка стороннего модуля, это довольно просто.
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
Спасибо, что нашли время прочитать эту статью.
Хорошего дня :)