Sto scrivendo un programma di conteggio parole MapReduce in python. Il problema è che ci sono molti caratteri non alfabetici disseminati nei dati, ho trovato questo post Spogliare tutto tranne i caratteri alfanumerici da una stringa in Python che mostra una bella soluzione usando regex, ma non sono sicuro di come 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
Temo di non essere sicuro di come utilizzare la libreria reo anche le espressioni regolari per quella materia. Non sono sicuro di come applicare vcorrettamente il pattern regex alla stringa in arrivo (riga di un libro) per recuperare la nuova riga senza caratteri non alfanumerici.
Suggerimenti?
vè un'intera riga di un libro (in particolare moby dick), vado parola per parola non carattere per carattere. Quindi alcune parole potrebbero avere un "," alla fine, quindi "indignazione", non corrisponde a "indegnità".