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

RegEx กับ EntityRuler ใน spaCy

Regular expressions หรือ RegEx ใช้สำหรับดึงข้อมูลแบบอิงกฎเกณฑ์ด้วยรูปแบบการจับคู่สตริงที่ซับซ้อน RegEx ช่วยให้ค้นหา pattern หรือแทนที่ pattern ที่ตรงกันในสตริงด้วย pattern อื่นได้ ในแบบฝึกหัดนี้ จะได้ฝึกใช้ EntityRuler ใน spaCy เพื่อค้นหาที่อยู่อีเมลในตัวแปร text ที่กำหนดให้

นำเข้าแพ็กเกจ spaCy ไว้ให้แล้ว สามารถใช้ \d เพื่อจับคู่รูปแบบสตริงที่แทน metacharacter ซึ่งตรงกับตัวเลขใดก็ได้ตั้งแต่ 0 ถึง 9

pattern ของ spaCy สามารถใช้ REGEX เป็น attribute ได้ ในกรณีนี้ pattern จะมีรูปแบบเป็น [{"TEXT": {"REGEX": "<a given pattern>"}}]

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

การประมวลผลภาษาธรรมชาติด้วย spaCy

ดูคอร์ส

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

  • กำหนด pattern สำหรับจับคู่หมายเลขโทรศัพท์ในรูปแบบ 8888888888 เพื่อใช้กับ EntityRuler
  • โหลดโมเดลภาษาอังกฤษของ spaCy แบบ blank แล้วเพิ่ม EntityRuler component เข้าไปใน pipeline
  • เพิ่ม pattern ที่กำหนดไว้ลงใน EntityRuler component
  • รันโมเดลและพิมพ์ tuple ของข้อความและประเภทของ entity สำหรับตัวแปร text ที่กำหนดให้

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

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

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
แก้ไขและรันโค้ด