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

การสร้างชื่อเฉพาะ (named entity) แบบกำหนดเองใน spaCy

หากชื่อเฉพาะ (named entities) ที่มีอยู่ในตัวของ spaCy ยังไม่เพียงพอ คุณสามารถสร้างชื่อเฉพาะของตัวเองได้โดยใช้คอมโพเนนต์ entity_ruler ของ spaCy

คอมโพเนนต์ entity_ruler ช่วยให้คุณสร้างเอนทิตีของตัวเองและเพิ่มเข้าไปใน pipeline ของ spaCy ได้

เริ่มต้นด้วยการเพิ่มคอมโพเนนต์นี้เข้าไปใน pipeline ที่มีอยู่ด้วย nlp.add_pipe() โดยวางไว้ before คอมโพเนนต์ "ner" เพื่อให้กฎของคุณถูกนำไปใช้ก่อน add_pipe() จะคืนค่าคอมโพเนนต์ที่เพิ่มเข้าไป

จากนั้นสามารถเรียก add_patterns() บนคอมโพเนนต์นี้ และส่งดิกชันนารีของ pattern ข้อความที่ต้องการติดป้ายด้วยเอนทิตี

เนื่องจาก Acme เป็นบริษัทเทคโนโลยี คุณจึงตัดสินใจติดป้ายรูปแบบ "smartphone" ด้วยแท็กเอนทิตี "PRODUCT"

มีการนำเข้า spaCy แล้ว และ nlp เก็บโมเดล en_core_web_sm ที่โหลดไว้แล้ว เนื่องจากการเปลี่ยนแปลง pipeline ไม่มีผลต่อ doc ที่มีอยู่ก่อนแล้ว คุณจะต้องสร้าง doc ใหม่จากข้อความที่ถอดเสียงของ call_4_channel_2.wav file อีกครั้งหลังจากเพิ่มคอมโพเนนต์ใหม่เรียบร้อยแล้ว

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

Spoken Language Processing ด้วย Python

ดูคอร์ส

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

  • เพิ่มคอมโพเนนต์ "entity_ruler" เข้าไปใน pipeline ของ nlp โดยวางไว้ก่อนคอมโพเนนต์ "ner" แล้วบันทึกไว้ในตัวแปร ruler
  • เพิ่ม "smartphone" เป็นค่าของคีย์ "pattern"
  • พิมพ์แอตทริบิวต์ของเอนทิตีที่อยู่ใน doc

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

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

# Add an entity_ruler component to the pipeline, before ner
ruler = nlp.add_pipe(____, before=____)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Recreate the doc so it uses the updated pipeline
doc = nlp(call_4_channel_2_text)

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
แก้ไขและรันโค้ด