อยากลองใช้ map filter lambda ดู

โปรแกรมนี้ให้อ่านไฟล์ที่ตัดคำแล้วพร้อมกำกับชนิดของคำประมาณ

ฉัน/ncn กิน/vt ข้าว/ncn

แต่มันมีหลายบรรทัด มีสัญลักษณ์ ##### บอกว่าเป็นอีกเอกสาร บางทีมี [ ] ครอบบางอย่าง. จริงจะเขียนดีใช้ list comprehension ใช้หลาย function ช่วยมันก็ได้ทั้งนั้น. แต่อยากลองใช้ map filter และ lambda ดูว่าจะอ่านไม่รู้เรื่องแค่ไหน😛. ว่าจะ rewrite แต่ก็ขี้เกียจอยู่.

def read_corpus(filename):    
       return map(lambda line: map(lambda tok: tok if tok[0] != "_" else [" ", tok[1]],

                                map(lambda tok: re.split("/", tok)[0:2], 

                                    filter(lambda tok: tok != '#', line))),

            map(lambda line: re.split("s+", unicode(line, "UTF-8")),

                filter(lambda line: not (re.match("^#####", line) 

                                         or re.match("^s*$", line)),

                    map(lambda line: re.sub("s*]s*$", "", line), 

                        map(lambda line: re.sub("^s*[?s*", "", line), 

                            getlines(filename))))))

ป.ล. code gen ออกมาจาก Kate ชอบๆ สวยดี😀.

ป้าย:

4 thoughts on “อยากลองใช้ map filter lambda ดู

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s