Собирайте информацию и обогащайте текстовые данные с помощью этой простой техники.

Обзор 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 .