Что такое извлечение ключевых слов?
Извлечение ключевых слов автоматически извлекает из текста наиболее употребительные и важные слова и выражения, используя технику анализа текста. Он помогает обобщать содержание текстов и распознавать основные обсуждаемые темы, что полезно для маркетинговых исследований, анализа настроений и других видов анализа данных. Эта техника использует вкрапления предложений и может анализировать большие массивы данных в режиме реального времени.
Машинное обучение искусственный интеллект (ИИ) с обработкой естественного языка (NLP) (область компьютерных наук) разрушает человеческий язык, чтобы машины могли понимать и анализировать его. Извлечение ключевых слов автоматизирует такие рабочие процессы, как маркировка входящих ответов на опросы или ответы на срочные запросы клиентов. Этот метод использует лингвистическую и семантическую информацию о текстах и содержащихся в них словах. Существуют различные алгоритмы и методы машинного обучения для извлечения наиболее релевантных ключевых слов в тексте.
Почему извлечение ключевых слов важно?
Извлечение ключевых слов и ключевых фраз важно по нескольким причинам:
- Оптимизация поисковых систем (SEO) : Извлечение ключевых слов помогает определить наиболее важные слова и фразы в документе, которые могут быть использованы для оптимизации содержания сайта для поисковых систем.
- Резюме текста: Извлечение ключевых слов может быть использовано для резюмирования документа путем определения наиболее важных слов и фраз, которые представляют основную тему текста.
- Классификация текста: Извлечение ключевых слов может использоваться для классификации текстовых документов по различным категориям на основе содержащихся в них ключевых слов. Это полезно в таких приложениях, как анализ настроений.
- Информационный поиск: Извлечение ключевых слов может быть использовано для повышения точности информационно-поисковых систем путем определения релевантных ключевых слов, соответствующих поисковому запросу пользователя.
Как сделать извлечение ключевых слов в R?
Ниже приведены некоторые методы извлечения ключевых слов и их применение:
- Поиск ключевых слов с помощью маркировки частей речи для определения существительных
- Поиск ключевых слов на основе коллокаций и совпадений
- Поиск ключевых слов на основе алгоритма Textrank
- Поиск ключевых слов на основе RAKE (быстрое автоматическое извлечение ключевых слов)
- Поиск ключевых слов на основе результатов разбора зависимостей (получение темы текста)
![извлечение ключевых слов из текста](/img/inline-images/campaign-creators-pypeCEaJeZY-unsplash-edited.avif)
Извлечение существительных
Простым способом поиска ключевых слов является изучение существительных. Поскольку каждый термин имеет тег части речи, если вы аннотировали текст с помощью пакета 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 — это независимый от домена алгоритм извлечения ключевых слов в обработке естественного языка.
-
Подсчет баллов для каждого слова, которое является частью любого ключевого слова-кандидата, производится следующим образом
- среди слов ключевых слов-кандидатов алгоритм смотрит на то, сколько раз встречается каждое слово и сколько раз оно встречается совместно с другими словами
- каждое слово получает оценку, которая представляет собой отношение степени слова (сколько раз оно встречается с другими словами) к частоте слова
- Оценка 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.