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. 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.
O que são APIs de extracção de palavras-chave?
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.
O que é R?
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.
Perguntas Mais Frequentes
CSV significa “Comma-Separated Values” (Valores Separados por Vírgulas). É um formato de ficheiro que armazena e troca dados num formato de texto simples, onde cada linha representa um registo, e cada coluna representa um campo ou atributo do registo. A primeira linha de um ficheiro CSV armazena normalmente os cabeçalhos das colunas, que fornecem uma etiqueta para cada campo no conjunto de dados.
TF-IDF significa “Term Frequency Frequency-Inverse Document Frequency”. É uma estatística numérica que reflecte a importância de um termo num corpus de documentos. A TF-IDF é normalmente útil em mineração de texto, recuperação de informação, e aplicações de processamento de linguagem natural.
Stopwords são palavras comuns que as tarefas de processamento de linguagem natural (PNL) excluem porque têm pouco significado ou significado na análise de texto. Exemplos de stopwords incluem “the”, “and”, “of”, “to”, “in”, “a”, “an”, “is”, e “for”.