Как извлечь ключевые слова из текста в R?

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

Eskritor 2023-07-06

Что такое извлечение ключевых слов?

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

Машинное обучение искусственный интеллект (ИИ) с обработкой естественного языка (NLP) (область компьютерных наук) разрушает человеческий язык, чтобы машины могли понимать и анализировать его. Извлечение ключевых слов автоматизирует такие рабочие процессы, как маркировка входящих ответов на опросы или ответы на срочные запросы клиентов. Этот метод использует лингвистическую и семантическую информацию о текстах и содержащихся в них словах. Существуют различные алгоритмы и методы машинного обучения для извлечения наиболее релевантных ключевых слов в тексте.

Почему извлечение ключевых слов важно?

Извлечение ключевых слов и ключевых фраз важно по нескольким причинам:

  1. Оптимизация поисковых систем (SEO) : Извлечение ключевых слов помогает определить наиболее важные слова и фразы в документе, которые могут быть использованы для оптимизации содержания сайта для поисковых систем.
  2. Резюме текста: Извлечение ключевых слов может быть использовано для резюмирования документа путем определения наиболее важных слов и фраз, которые представляют основную тему текста.
  3. Классификация текста: Извлечение ключевых слов может использоваться для классификации текстовых документов по различным категориям на основе содержащихся в них ключевых слов. Это полезно в таких приложениях, как анализ настроений.
  4. Информационный поиск: Извлечение ключевых слов может быть использовано для повышения точности информационно-поисковых систем путем определения релевантных ключевых слов, соответствующих поисковому запросу пользователя.

Как сделать извлечение ключевых слов в R?

Ниже приведены некоторые методы извлечения ключевых слов и их применение:

  • Поиск ключевых слов с помощью маркировки частей речи для определения существительных
  • Поиск ключевых слов на основе коллокаций и совпадений
  • Поиск ключевых слов на основе алгоритма Textrank
  • Поиск ключевых слов на основе RAKE (быстрое автоматическое извлечение ключевых слов)
  • Поиск ключевых слов на основе результатов разбора зависимостей (получение темы текста)
извлечение ключевых слов из текста

Извлечение существительных

Простым способом поиска ключевых слов является изучение существительных. Поскольку каждый термин имеет тег части речи, если вы аннотировали текст с помощью пакета udpipe:

Код:

stats <- subset(x, upos %in% "NOUN") 
stats <- txt_freq(x = stats$lemma) 
library(lattice) 
stats$key <- factor(stats$key, levels = rev(stats$key)) 
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")

Коллокация и кооккурренции

Получите многословные выражения, просматривая либо коллокации (слова, следующие друг за другом), либо совпадения слов в каждом предложении, либо совпадения слов, которые находятся по соседству друг с другом.

Код:

Collocation (words following one another)

stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)

Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives

stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))

## Co-occurrences: How frequent do words follow one another

stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))

## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between

stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)

Textrank (сеть слов, упорядоченная по Google Pagerank)

Textrank — еще один метод извлечения ключевых слов. Пакет textrank R реализует алгоритм Textrank. Алгоритм Textrank позволяет резюмировать текст и извлекать ключевые слова. Чтобы построить сеть слов, алгоритм проверяет, следуют ли слова друг за другом. Алгоритм ‘Google Pagerank’ извлекает релевантные слова. Релевантные слова, которые следуют друг за другом, объединяются в ключевые слова. TextRank не исходит из оригинального текста, поскольку это подход, основанный на графе.

Код:

stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ") 
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)

Быстрое автоматическое извлечение ключевых слов: RAKE

RAKE — это следующий базовый алгоритм, который является аббревиатурой от Rapid Automatic Keyword Extraction. RAKE — это независимый от домена алгоритм извлечения ключевых слов в обработке естественного языка.

  1. Подсчет баллов для каждого слова, которое является частью любого ключевого слова-кандидата, производится следующим образом
    • среди слов ключевых слов-кандидатов алгоритм смотрит на то, сколько раз встречается каждое слово и сколько раз оно встречается совместно с другими словами
    • каждое слово получает оценку, которая представляет собой отношение степени слова (сколько раз оно встречается с другими словами) к частоте слова
  2. Оценка RAKE для полного ключевого слова-кандидата рассчитывается путем суммирования оценок каждого из слов, определяющих ключевое слово-кандидат

Код:

stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4) 
head(subset(stats, freq > 3)) 

Используйте вывод синтаксического анализа зависимостей, чтобы получить номинальное подлежащее и прилагательное от него

Когда вы выполнили аннотацию с помощью udpipe, поле dep_rel указывает, как слова связаны друг с другом. Токен связан с родителем с помощью token_id и head_token_id . Поле dep_rel указывает, как слова связаны друг с другом. Тип отношений находится на сайте http://universaldependencies.org/u/dep/index.html.

Код:

stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE) 
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ")) 
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ") 
stats <- txt_freq(stats$term) 
library(wordcloud) 
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))

Что такое текстовый майнинг?

Текстовый майнинг в R — это процесс анализа и извлечения информации из текстовых данных с помощью языка программирования R и связанных с ним библиотек и пакетов. Анализ текста включает в себя несколько этапов, в том числе очистку и предварительную обработку данных, извлечение признаков, статистическое моделирование и визуализацию.
Пакет tm предоставляет функции для чтения текстовых данных, очистки и предварительной обработки данных, а также создания матриц документ-термин, которые обычно используются для анализа текстовых данных. Пакет tidytext предоставляет инструменты для преобразования текстовых данных в аккуратные рамки данных.
Некоторые общие задачи текстового анализа включают анализ настроений, моделирование тем, кластеризацию документов и классификацию текстов. Эти задачи предполагают применение статистических методов и методов машинного обучения для выявления закономерностей и взаимосвязей в текстовых данных.

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

R — это язык программирования с открытым исходным кодом и программная среда для статистических вычислений, анализа данных и графики. Люди широко используют R в академических, научных и промышленных кругах для решения таких задач, как статистическое моделирование, визуализация данных, машинное обучение и добыча данных. Он имеет интерфейсы с другими языками программирования, такими как Python и C++ . Более подробную информацию можно найти в онлайн-учебниках на GitHub.

Поделиться публикацией

Писатель AI

img

Eskritor

Создание контента, созданного AI