O que é Extracção de Palavras-Chave?
A extracção de palavras-chave extrai automaticamente as palavras e expressões mais usadas e mais importantes de um texto, utilizando uma técnica de análise de texto. Ajuda a resumir o conteúdo dos textos e a reconhecer os principais tópicos discutidos, o que é útil para estudos de mercado , análise de sentimentos e outros tipos de análise de dados. Esta técnica alavanca a incorporação de frases e pode analisar grandes conjuntos de dados em tempo real.
A inteligência artificial (IA) com processamento de linguagem natural (PNL) (um campo das ciências informáticas) decompõe a linguagem humana para que as máquinas a possam compreender e analisar. A extracção de palavras-chave automatiza os fluxos de trabalho como etiquetar as respostas aos inquéritos recebidos ou responder a pedidos urgentes de clientes. A técnica utiliza informação linguística e semântica sobre os textos e as palavras que estes contêm. Existem diferentes algoritmos e técnicas de aprendizagem mecânica para extrair as palavras-chave mais relevantes de um texto.
Porque é que a extracção de palavras-chave é importante?
A extracção de palavras-chave e a extracção de frases-chave são importantes por várias razões:
- Optimização de motores de busca (SEO) : A extracção de palavras-chave ajuda a identificar as palavras e frases mais importantes de um documento, que podem ser utilizadas para optimizar o conteúdo do sítio web para motores de busca.
- Sumário de texto: A extracção de palavras-chave pode ser utilizada para resumir um documento identificando as palavras e frases mais importantes que representam o tema principal do texto.
- Classificação do texto: A extracção de palavras-chave pode ser utilizada para classificar documentos de texto em diferentes categorias, com base nas palavras-chave que contêm. Isto é útil em aplicações tais como a análise dos sentimentos.
- Recuperação de informação: A extracção de palavras-chave pode ser utilizada para melhorar a precisão dos sistemas de recuperação de informação através da identificação de palavras-chave relevantes que correspondam a uma consulta de pesquisa do utilizador.
Como Fazer Extracção de Palavras-Chave em R?
Aqui estão algumas técnicas de extracção de palavras-chave e os seus casos de utilização:
- Encontrar palavras-chave fazendo partes da etiquetagem da fala a fim de identificar substantivos
- Encontrar palavras-chave baseadas em Colocações e Co-ocorrências
- Encontrar palavras-chave com base no algoritmo do Textrank
- Encontrar palavras-chave baseadas em RAKE (extracção automática rápida de palavras-chave)
- Encontrar palavras-chave com base nos resultados da análise de dependência (obter o assunto do texto)
Extracção de Substantivos
Uma forma fácil de encontrar palavras-chave é através da procura de substantivos. Como cada termo tem uma etiqueta de Partes da Fala se anotou o texto usando o pacote udpipe:
Código:
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")
Colocações e co-ocorrências
Obter a expressão de várias palavras olhando quer para as colocações (palavras que se seguem umas às outras), para as co-ocorrências de palavras dentro de cada frase, quer para as co-ocorrências de palavras que estão próximas umas das outras.
Código:
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 (rede de palavras encomendada pelo Google Pagerank)
O Textrank é outro método de extracção de palavras-chave. O pacote textrank R implementa o algoritmo do Textrank. O algoritmo do Textrank permite a sumarização de texto e extracção de palavras-chave. Para construir uma rede de palavras, o algoritmo verifica se as palavras se seguem umas às outras. O algoritmo ‘Google Pagerank’ está a extrair palavras relevantes. Palavras relevantes que se seguem umas às outras combinam-se para obter palavras-chave. TextRank não deriva do texto original, uma vez que é uma abordagem baseada em gráficos.
Código:
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)
Extracção rápida e automática de palavras-chave: RAKE
RAKE é o próximo algoritmo básico que é um acrónimo de Rapid Automatic Keyword Extraction. RAKE é um algoritmo de extracção de palavras-chave independente de domínio em Processamento de Linguagem Natural.
-
O cálculo de uma pontuação para cada palavra que faz parte de qualquer palavra-chave do candidato, é feito por
- entre as palavras-chave do candidato, o algoritmo analisa quantas vezes cada palavra está a ocorrer e quantas vezes co-ocorre com outras palavras
- cada palavra recebe uma pontuação que é a relação entre o grau da palavra (quantas vezes co-ocorre com outras palavras) e a frequência da palavra
- Uma pontuação RAKE para a palavra-chave candidata completa é calculada através da soma das pontuações de cada uma das palavras que definem a palavra-chave candidata
Código:
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))
Utilizar a saída de análise de dependência para obter o sujeito nominal e o adjectivo do mesmo
Quando executou a anotação usando udpipe, o campo dep_rel indica como as palavras estão relacionadas umas com as outras. Um token está relacionado com o pai que utiliza o token_id e o head_token_id . O campo dep_rel indica como as palavras se ligam umas às outras. O tipo de relações está em http://universaldependencies.org/u/dep/index.html.
Código:
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"))
O que é a mineração de texto?
A mineração de texto em R refere-se ao processo de análise e extracção de conhecimentos de dados de texto utilizando a linguagem de programação R e bibliotecas e pacotes associados. A mineração de texto envolve várias etapas, incluindo limpeza e pré-processamento de dados, extracção de características, modelação estatística e visualização.
O pacote
tm
fornece funções para a leitura de dados de texto, limpeza e pré-processamento dos dados, e criação de matrizes documentais, que são normalmente utilizadas para a análise de dados de texto. O pacote
tidytext
fornece ferramentas para a conversão de dados de texto em quadros de dados arrumados.
Algumas tarefas comuns na mineração de textos incluem análise de sentimentos, modelação de tópicos, agrupamento de documentos e classificação de textos. Estas tarefas envolvem a aplicação de técnicas estatísticas e de aprendizagem por máquina para identificar padrões e relações dentro de dados de texto.
APIs de extracção de palavras-chave são interfaces de software que permitem aos programadores extrair palavras-chave e frases-chave de texto usando algoritmos pré-construídos e modelos de aprendizagem de máquinas. Estes APIs fornecem uma solução fácil de usar e escalável para automatizar o processo de extracção de palavras-chave, sem a necessidade de os programadores construírem e treinarem os seus próprios modelos.
R é uma linguagem de programação de código aberto e um ambiente de software para computação estatística, análise de dados, e gráficos. As pessoas utilizam amplamente a I no meio académico, na investigação e na indústria para tarefas como a modelação estatística, visualização de dados, aprendizagem de máquinas, e mineração de dados. Tem interfaces com outras linguagens de programação, tais como Python e C++ . Encontre informações mais detalhadas com tutoriais online sobre GitHub.