J'écris un programme de comptage de mots MapReduce en python. Le problème est qu'il y a beaucoup de caractères non alphabétiques éparpillés dans les données, j'ai trouvé ce post Supprimant tout sauf les caractères alphanumériques d'une chaîne en Python qui montre une belle solution utilisant regex, mais je ne sais pas comment l'implémenter
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
J'ai peur de ne pas savoir comment utiliser la bibliothèque re
ou même l'expression régulière pour cette question. Je ne sais pas comment appliquer v
correctement le motif regex à la chaîne entrante (ligne d'un livre) pour récupérer la nouvelle ligne sans aucun caractère non alphanumérique.
Suggestions?
v
est une ligne entière d'un livre (en particulier moby dick), je vais mot par mot et non caractère par caractère. Ainsi, certains mots peuvent avoir un "," à la fin, donc "indignité" ne correspond pas à "indignité".