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

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

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

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

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

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

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

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

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

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

Простым способом поиска ключевых слов является изучение существительных. Поскольку каждый термин имеет тег части речи, если вы аннотировали текст с помощью пакета 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 для извлечения ключевых слов — это программные интерфейсы, которые позволяют разработчикам извлекать ключевые слова и ключевые фразы из текста с помощью заранее созданных алгоритмов и моделей машинного обучения. Эти API обеспечивают простое в использовании и масштабируемое решение для автоматизации процесса извлечения ключевых слов, без необходимости для разработчиков создавать и обучать собственные модели.

Что такое R?

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

Часто задаваемые вопросы

Что такое CSV?

CSV означает «Значения, разделенные запятыми». Это формат файла, который хранит и обменивается данными в формате обычного текста, где каждая строка представляет собой запись, а каждый столбец — поле или атрибут записи. В первой строке файла CSV обычно хранятся заголовки столбцов, которые содержат метки для каждого поля в наборе данных.

Что такое TF-IDF?

TF-IDF расшифровывается как «Term Frequency-Inverse Document Frequency». Это числовая статистика, отражающая важность термина в корпусе документов. TF-IDF широко используется в приложениях по поиску текстов, информационному поиску и обработке естественного языка.

Что такое стоп-слова?

Стоп-слова — это обычные слова, которые в задачах обработки естественного языка (NLP) исключаются, поскольку они не несут особого смысла или значения для анализа текста. Примеры стоп-слов включают «the», «and», «of», «to», «in», «a», «an», «is» и «for».