Estoy escribiendo un programa de recuento de palabras en Python MapReduce. El problema es que hay muchos caracteres no alfabéticos esparcidos en los datos, he encontrado esta publicación Eliminando todo menos caracteres alfanuméricos de una cadena en Python que muestra una buena solución usando expresiones regulares, pero no estoy seguro de cómo implementarlo
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
Me temo que no estoy seguro de cómo usar la biblioteca reo incluso la expresión regular para el caso. No estoy seguro de cómo aplicar el patrón de expresiones regulares a la cadena entrante (línea de un libro) vcorrectamente para recuperar la nueva línea sin caracteres no alfanuméricos.
Sugerencias
ves una línea completa de un libro (específicamente Moby Dick), voy palabra por palabra, no char por char. Así que algunas palabras pueden tener un "," al final, así que "indignidad" no se corresponde con "indignidad".