RegEx ใน Python
การดึงข้อมูลแบบใช้กฎ (rule-based) มีประโยชน์สำหรับงาน NLP หลายประเภท เอนทิตีบางชนิด เช่น วันที่หรือหมายเลขโทรศัพท์ มีรูปแบบที่ชัดเจนและสามารถจดจำได้ด้วยชุดกฎโดยไม่ต้องฝึกโมเดลใดๆ ในแบบฝึกหัดนี้ จะได้ฝึกใช้แพ็กเกจ re สำหรับ RegEx โดยมีเป้าหมายคือค้นหาหมายเลขโทรศัพท์ใน text ที่กำหนดให้
แพ็กเกจ re ถูก import ไว้ให้แล้ว สามารถใช้ \d เพื่อจับคู่รูปแบบสตริงที่แทนเมตาแคแร็กเตอร์ซึ่งตรงกับตัวเลขใดๆ ตั้งแต่ 0 ถึง 9
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประมวลผลภาษาธรรมชาติด้วย spaCy
คำแนะนำการฝึกหัด
- กำหนดรูปแบบเพื่อจับคู่หมายเลขโทรศัพท์ในรูปแบบ (111)-111-1111
- ค้นหารูปแบบที่ตรงกันทั้งหมดโดยใช้เมธอด
re.finditer() - สำหรับแต่ละผลลัพธ์ที่จับคู่ได้ ให้พิมพ์ตำแหน่งเริ่มต้น ตำแหน่งสิ้นสุด และส่วนของ
textที่ตรงกับรูปแบบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
text = "Our phone number is (425)-123-4567."
# Define a pattern to match phone numbers
pattern = r"\((____){____}\)-(____){____}-(____){____}"
# Find all the matching patterns in the text
phones = re.____(pattern, text)
# Print start and end characters and matching section of the text
for match in phones:
start_char = match.____
end_char = match.____
print("Start character: ", ____, "| End character: ", ____, "| Matching text: ", text[____:____])