Estou escrevendo um programa de contagem de palavras MapReduce em python. O problema é que existem muitos caracteres não alfabéticos espalhados nos dados, encontrei este post Removendo tudo, exceto caracteres alfanuméricos de uma string em Python, que mostra uma boa solução usando regex, mas não tenho certeza de como implementá-lo
def mapfn(k, v):
print v
import re, string
pattern = re.compile('[\W_]+')
v = pattern.match(v)
print v
for w in v.split():
yield w, 1
Infelizmente, não tenho certeza de como usar a biblioteca reou mesmo regex para esse assunto. Não tenho certeza de como aplicar o padrão regex à string de entrada (linha de um livro) vpara recuperar a nova linha sem caracteres não alfanuméricos.
Sugestões?
vé uma linha inteira de um livro (especificamente moby dick), estou falando palavra por palavra, não char por char. Portanto, algumas palavras podem ter um "," no final, então "indignidade", não mapeia com "indignidade".