เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

อักขระที่ซ้ำกันหลายครั้ง

กลับมาที่งาน sentiment analysis กันอีกครั้ง ภารกิจต่อไปคือการแทนที่คำที่มีการยืดเสียงซึ่งปรากฏในทวีต เราจะนิยาม "คำที่ยืดเสียง" ว่าเป็นคำที่มีอักขระซ้ำติดกันตั้งแต่ 2 ครั้งขึ้นไป เช่น "Awesoooome"

การแทนที่คำเหล่านี้มีความสำคัญมาก เนื่องจาก classifier จะมองว่าคำเหล่านี้เป็นคนละคำกับคำต้นฉบับ ส่งผลให้ความถี่ของคำลดลง

ในการค้นหาคำเหล่านี้ จะใช้ capturing groups และอ้างอิงกลับด้วยตัวเลข เช่น \4

หากต้องการจับคู่กับ Awesoooome ให้เริ่มด้วยการจับกลุ่ม Awes จากนั้นจับคู่ o แล้วอ้างอิงกลับไปยังอักขระเดิม แล้วจึงจับคู่ me

รายการ sentiment_analysis ซึ่งเก็บข้อความของทวีตสามรายการ และโมดูล re ถูกโหลดไว้ในเซสชันแล้ว สามารถใช้ print() เพื่อดูข้อมูลใน IPython Shell ได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Regular Expressions ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติม regular expression ให้สมบูรณ์เพื่อจับคู่กับคำที่ยืดเสียงตามที่อธิบายไว้
  • ค้นหาองค์ประกอบในรายการ sentiment_analysis เพื่อตรวจสอบว่ามีคำที่ยืดเสียงหรือไม่ แล้วกำหนดผลลัพธ์ให้กับ match_elongated
  • กำหนด captured group หมายเลขศูนย์ให้กับตัวแปร elongated_word
  • แสดงผลลัพธ์ที่เก็บไว้ในตัวแปร elongated_word

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Complete the regex to match an elongated word
regex_elongated = r"____(____)____\w*"

for tweet in sentiment_analysis:
	# Find if there is a match in each tweet 
	match_elongated = re.____(____, ____)
    
	if match_elongated:
		# Assign the captured group zero 
		elongated_word = match_elongated.____(____)
        
		# Complete the format method to print the word
		print("Elongated word found: {____}".format(word=____))
	else:
		print("No elongated word found") 
แก้ไขและรันโค้ด