Noções básicas de expressões regulares

Introdução ao Processamento de Linguagem Natural em R

Kasey Jones

Research Data Scientist

O que é processamento de linguagem natural?

NLP:

  • Usa computadores para analisar e entender texto

Tópicos abordados:

  • Classificação de texto
  • Modelagem de tópicos
  • Reconhecimento de entidades nomeadas
  • Análise de sentimento
Introdução ao Processamento de Linguagem Natural em R

O que são expressões regulares?

  • Uma sequência de caracteres para buscar texto
  • Exemplos:
    • buscar arquivos em um diretório via linha de comando
    • encontrar artigos com um padrão específico
    • substituir um texto específico
    • ...
Introdução ao Processamento de Linguagem Natural em R

Exemplos

words <- c("DW-40", "Mike's Oil", "5w30", "Joe's Gas", "Unleaded", "Plus-89")
# Finding Digits
grep("\\d", words, value = TRUE)
[1] 1 3 6
# Finding Apostrophes
grep("\\'", words, value = TRUE)
[1] "Mike's Oil"     "Joe's Gasoline"
Introdução ao Processamento de Linguagem Natural em R

Exemplos de expressões regulares

Padrão Combinações no texto Exemplo em R Exemplo de texto
\w Qualquer alfanumérico gregexpr(pattern ='\w', <text>) a
\d Qualquer dígito gregexpr(pattern ='\d', text) 1
\w+ Alfanumérico de qualquer tamanho gregexpr(pattern ='\w+', text) word
\d+ Dígitos de qualquer tamanho gregexpr(pattern ='\d+', text) 1234
\s Espaços gregexpr(pattern ='\s', text) ' '
\S Qualquer não-espaço gregexpr(pattern ='\S', text) word
Introdução ao Processamento de Linguagem Natural em R

Exemplos em R

Função Finalidade Sintaxe
grep Encontrar correspondências do padrão em um vetor grep(pattern ='\w', x = <vector>, value = F)
gsub Substituir todas as correspondências em string/vetor gsub(pattern ='\d+', replacement = "", x = <vector>)
Introdução ao Processamento de Linguagem Natural em R

Pratique RegEx

1 https://regexone.com/lesson/matching_characters
Introdução ao Processamento de Linguagem Natural em R

Hora de codar!

Introdução ao Processamento de Linguagem Natural em R

Preparing Video For Download...