ฉันกำลังเขียนโปรแกรม python MapReduce จำนวนคำ ปัญหาคือมีตัวอักษรที่ไม่ใช่ตัวอักษรจำนวนมากเกลื่อนอยู่ในข้อมูลฉันพบว่าโพสต์นี้ลอกทุกอย่างยกเว้นตัวอักษรและตัวเลขจากสตริงใน Pythonซึ่งแสดงวิธีแก้ปัญหาที่ดีโดยใช้ regex แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไร
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) ฉันจะพูดทีละคำไม่ใช่ char by char ดังนั้นคำบางคำอาจมี "," ต่อท้ายดังนั้น "ความขุ่นเคือง" จึงไม่ตรงกับ "ความขุ่นเคือง"