Собирайте информацию и обогащайте текстовые данные с помощью этой простой техники.
Обзор N-грамм
N-граммы — это фундаментальная концепция обработки естественного языка (NLP), которая фиксирует последовательные шаблоны в тексте. Они содержат широкий спектр информации и дают ценную информацию об использовании языка и текстовых данных. «N» в n-граммах относится к количеству токенов в последовательности. Токены — это выбранное количество символов. Маркером может быть целое слово, фраза или подмножество символов. 2-грамма (также называемая биграммой) состоит из пар последовательных токенов, 3-грамма (триграмма) состоит из троек последовательных токенов и так далее. Выбор n зависит от задачи и анализируемого текста.
Пример биграмм для предложения «быстрая коричневая лиса»:
["the", "quick"], ["quick", "brown"], ["brown", "fox"]
Как используются N-граммы?
N-граммы фиксируют локальные закономерности в тексте и предоставляют полезную статистическую информацию о сочетаниях слов или символов в тексте. Анализируя частоты n-грамм, модели могут изучать закономерности, предсказывать вероятность определенных слов или фраз и генерировать текст, похожий на входные данные.
Одним из распространенных применений n-грамм является моделирование языка, где цель состоит в том, чтобы предсказать следующее слово в последовательности с учетом предыдущего контекста.
N-граммы также используются в задачах классификации текста, таких как анализ тональности или обнаружение спама.
Пример N-грамм в Python
Мы создадим пример использования n-грамм с помощью Python, чтобы лучше понять, как работают n-граммы и их потенциальное использование.
Биграммы
Как упоминалось ранее, Bigrams рассматривает 2 последовательных токена (или слова в нашем случае) в тексте.
# Create a function to generate bigrams from text def generate_bigrams(text): # Split the text for each word words = text.split() bigrams = [] # Iterate through the words for i in range(len(words) - 1): # Append each bigram or 2 consecutive words as a tuple bigrams.append((words[i], words[i + 1])) return bigrams # Example text text = "This is an example bigram use case in Python." result = generate_bigrams(text) # Print each bigram for bigram in result: print(bigram)
('Это', 'есть')
('есть', 'пример')
('пример', 'пример')
('пример', 'биграмма')
('bigram', 'use')
('use', 'case')
('case', 'in')
('in', 'Python.' )
Теперь мы сгенерировали биграммы для любого входного текста на чистом Python!
N-грамм
В этом примере мы будем использовать NLTK.
О НЛТК
NLTK (Natural Language Toolkit) — популярная библиотека Python для обработки естественного языка (NLP). Он предоставляет различные функции, классы и инструменты для задач НЛП, таких как токенизация, выделение корней, тегирование частей речи и т. д.
# Library Imports from nltk import ngrams # Example usage text = "An example n-gram use case in Python. This time using nltk." # Generate trigrams this time using the NLTK ngrams function ngram_result = list(ngrams(text.split(), 3)) # Print each ngram for ngram in ngram_result: print(ngram)
('An', 'example', 'n-gram')
('example', 'n-gram', 'use')
('n-gram', 'use', ' case')
('use', 'case', 'in')
('case', 'in', 'Python.')
('in', 'Python. ', 'Это')
('Python.', 'Это', 'время')
('Это', 'время', 'использование')
('время', 'использование', 'нлтк.')
На этот раз мы сгенерировали триграммы, но обратите внимание, насколько меньше кода нам нужно при использовании NLTK!
Как использовать N-граммы
Сила N-грамм заключается в том, что они используются как форма правдоподобия или контекста. Как только N-граммы сгенерированы, мы можем определить, какие последовательности являются наиболее популярными, и идентифицировать слова до и после. Это преобразует ваш текст в более богатую форму информации, которую можно использовать в моделях или других задачах НЛП.
Например, мы можем определить, что слово «Python» присутствует в 33% случаев из нашего предыдущего примера. Использование информации о ваших n-граммах добавляет информацию к широкому набору задач NLP, включая моделирование языка, генерацию текста, поиск информации, машинный перевод, классификацию текста и многое другое.
Узнайте, какую информацию могут дать ваши N-граммы!
Что вы можете сделать дальше?
- Поиграйте с NLTK! Как упоминалось ранее, NLTK — это мощная и популярная библиотека НЛП на Python. Я настоятельно рекомендую изучить ее подробнее и выяснить, какие задачи НЛП можно выполнять с помощью библиотеки.
- Начните изучать тематическое моделирование, классификацию текста и другие темы НЛП. Поскольку модели больших языков становятся все более и более популярными, это помогает понять, как работает НЛП, и как развивается эта область.
Краткое резюме
N-граммы в обработке естественного языка (NLP) представляют собой непрерывные последовательности из N элементов (обычно слов), которые отражают локальные лингвистические идеи и используются для различных последующих задач, таких как моделирование языка, генерация текста и поиск информации.
Ссылки
Дополнительные материалы на PlainEnglish.io.
Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .