私はPythonMapReduceワードカウントプログラムを書いています。問題は、データにアルファベット以外の文字がたくさん散らばっているということです。この投稿を見つけました。Pythonの文字列から英数字以外の文字をすべて削除します。これは、正規表現を使用した優れたソリューションを示していますが、実装方法がわかりません。
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
ライブラリの使用方法re
や、そのことについての正規表現すらわからないのではないかと思います。着信文字列(本の行)に正規表現パターンをv
適切に適用して、英数字以外の文字を含まない改行を取得する方法がわかりません。
提案?
v
は本の全行(特にmoby dick)であり、私は文字ごとではなく単語ごとに行きます。したがって、一部の単語の最後に「、」が付いている可能性があるため、「憤慨」は「憤慨」とマッピングされません。