Какво представлява извличането на ключови думи?
Извличането на ключови думи автоматично извлича най-използваните и най-важните думи и изрази от даден текст, като използва техника за анализ на текст. Той помага за обобщаване на съдържанието на текстове и разпознаване на основните обсъждани теми, което е полезно за пазарни проучвания, анализ на настроенията и други видове анализ на данни. Тази техника използва вграждане на изречения и може да анализира големи набори от данни в реално време.
Машинното обучение на изкуствения интелект (ИИ) с обработката на естествен език (NLP) (област от компютърните науки) разбива човешкия език, така че машините да могат да го разбират и анализират. Извличането на ключови думи автоматизира работните процеси, като например маркиране на входящи отговори на проучвания или отговаряне на спешни запитвания на клиенти. Техниката използва лингвистична и семантична информация за текстовете и съдържащите се в тях думи. Съществуват различни алгоритми и техники за машинно обучение за извличане на най-подходящите ключови думи в даден текст.
Защо е важно извличането на ключови думи?
Извличането на ключови думи и ключови фрази е важно по няколко причини:
- Оптимизация за търсачки (SEO ): Извличането на ключови думи помага да се идентифицират най-важните думи и фрази в даден документ, които могат да се използват за оптимизиране на съдържанието на уебсайта за търсачките.
- Обобщаване на текст: Извличането на ключови думи може да се използва за обобщаване на даден документ чрез идентифициране на най-важните думи и фрази, които представят основната тема на текста.
- Класификация на текста: Извличането на ключови думи може да се използва за класифициране на текстови документи в различни категории въз основа на съдържащите се в тях ключови думи. Това е полезно в приложения като анализ на настроенията.
- Извличане на информация: Извличането на ключови думи може да се използва за подобряване на точността на системите за извличане на информация чрез идентифициране на подходящи ключови думи, които отговарят на заявката за търсене на потребителя.
Как да направим извличане на ключови думи в R?
Ето някои техники за извличане на ключови думи и случаите на тяхното използване:
- Намиране на ключови думи чрез маркиране на частите на речта, за да се идентифицират съществителните имена
- Намиране на ключови думи въз основа на колокации и съвпадения
- Намиране на ключови думи въз основа на алгоритъма Textrank
- Намиране на ключови думи въз основа на RAKE (бързо автоматично извличане на ключови думи)
- Намиране на ключови думи въз основа на резултатите от анализа на зависимостите (получаване на темата на текста)
Извличане на съществителни имена
Лесен начин за намиране на ключови думи е да се разгледат съществителните имена. Тъй като всеки термин има таг Parts of Speech (части на речта), ако сте анотирали текст с помощта на пакета 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 за извличане на ключови думи са софтуерни интерфейси, които позволяват на разработчиците да извличат ключови думи и ключови фрази от текст с помощта на предварително създадени алгоритми и модели за машинно обучение. Тези приложни програмни интерфейси предоставят лесно за използване и мащабируемо решение за автоматизиране на процеса на извличане на ключови думи, без да е необходимо разработчиците да изграждат и обучават свои собствени модели.
R е програмен език с отворен код и софтуерна среда за статистически изчисления, анализ на данни и графики. R се използва широко в академичните среди, научните изследвания и индустрията за задачи като статистическо моделиране, визуализация на данни, машинно обучение и извличане на данни. Той има интерфейси с други езици за програмиране, като Python и C++ . Намерете по-подробна информация с онлайн уроци в GitHub.