Що таке вилучення ключових слів?
Видобування ключових слів автоматично витягує з тексту найуживаніші та найважливіші слова і вирази, використовуючи техніку аналізу тексту. Він допомагає узагальнити зміст текстів і розпізнати основні обговорювані теми, що корисно для маркетингових досліджень, аналізу настроїв та інших видів аналізу даних. Цей метод використовує вбудовування речень і може аналізувати великі масиви даних у реальному часі.
Машинне навчання штучного інтелекту (ШІ) з обробкою природної мови (NLP) (галузь комп’ютерних наук) розбиває людську мову на частини так, щоб машини могли її розуміти і аналізувати. Видобування ключових слів автоматизує такі робочі процеси, як позначення вхідних відповідей на опитування або відповіді на термінові запити клієнтів. Метод використовує лінгвістичну та семантичну інформацію про тексти та слова, які вони містять. Існують різні алгоритми та методи машинного навчання для вилучення найбільш релевантних ключових слів у тексті.
Чому важливий витяг ключових слів?
Виділення ключових слів і ключових фраз важливе з кількох причин:
- Пошукова оптимізація (SEO) : Виділення ключових слів допомагає визначити найважливіші слова і фрази в документі, які можна використовувати для оптимізації вмісту веб-сайту для пошукових систем.
- Підсумовування тексту: Виділення ключових слів можна використовувати для узагальнення документа, визначаючи найважливіші слова і фрази, які представляють основну тему тексту.
- Класифікація тексту: Видобування ключових слів можна використовувати для класифікації текстових документів за різними категоріями на основі ключових слів, які вони містять. Це корисно в таких додатках, як аналіз настроїв.
- Пошук інформації: Видобування ключових слів можна використовувати для підвищення точності інформаційно-пошукових систем, визначаючи релевантні ключові слова, які відповідають пошуковому запиту користувача.
Як зробити вилучення ключових слів в 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 – це незалежний від домену алгоритм вилучення ключових слів в обробці природної мови.
-
Підрахунок балів для кожного слова, що входить до складу будь-якого ключового слова-кандидата, здійснюється за допомогою
- серед слів-кандидатів на ключові слова алгоритм дивиться, скільки разів зустрічається кожне слово і скільки разів воно зустрічається разом з іншими словами
- кожне слово отримує оцінку, яка є відношенням ступеня слова (скільки разів воно зустрічається з іншими словами) до частоти слова
- Оцінка 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"))
Що таке Text-Mining?
Інтелектуальний аналіз тексту в R – це процес аналізу та вилучення інформації з текстових даних за допомогою мови програмування R та пов’язаних з нею бібліотек і пакетів. Інтелектуальний аналіз тексту складається з кількох етапів, включаючи очищення та попередню обробку даних, вилучення ознак, статистичне моделювання та візуалізацію.
Пакет
tm
надає функції для читання текстових даних, очищення та попередньої обробки даних, а також створення матриць термінів документів, які зазвичай використовуються для аналізу текстових даних. Пакет
tidytext
надає інструменти для перетворення текстових даних в охайні фрейми даних.
Деякі з поширених завдань у текстовому аналізі включають аналіз настроїв, моделювання тем, кластеризацію документів і класифікацію текстів. Ці завдання передбачають застосування методів статистики та машинного навчання для виявлення закономірностей і взаємозв’язків у текстових даних.
API для вилучення ключових слів – це програмні інтерфейси, які дозволяють розробникам вилучати ключові слова та фрази з тексту за допомогою попередньо створених алгоритмів і моделей машинного навчання. Ці API надають просте у використанні і масштабоване рішення для автоматизації процесу вилучення ключових слів, без необхідності для розробників створювати і навчати власні моделі.
R – це мова програмування з відкритим вихідним кодом і програмне середовище для статистичних обчислень, аналізу даних і графіки. Люди широко використовують R в науці, дослідженнях та промисловості для таких завдань, як статистичне моделювання, візуалізація даних, машинне навчання та інтелектуальний аналіз даних. Він має інтерфейси з іншими мовами програмування, такими як Python та C++ . Знайдіть більш детальну інформацію в онлайн-уроках на GitHub.