Piszę program do liczenia słów MapReduce w języku python. Problem polega na tym, że w danych jest wiele znaków innych niż alfabet, znalazłem ten post Usuwanie wszystkiego oprócz znaków alfanumerycznych z łańcucha w Pythonie, który pokazuje ładne rozwiązanie za pomocą wyrażenia regularnego, ale nie jestem pewien, jak to zaimplementować
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
Obawiam się, że nie jestem pewien, jak używać biblioteki, rea nawet wyrażenia regularnego w tym celu. Nie jestem pewien, jak vpoprawnie zastosować wzorzec wyrażenia regularnego do przychodzącego ciągu (wiersza książki), aby pobrać nowy wiersz bez żadnych znaków niealfanumerycznych.
Propozycje?
vto cała linia książki (szczególnie moby dick), idę słowo po słowie, a nie znak po znaku. Dlatego niektóre słowa mogą mieć na końcu „,”, więc „zniewaga” nie pokrywa się z „zniewagą”.