Bắt đầu ngayBắt đầu miễn phí

RegEx với EntityRuler trong spaCy

Regular expressions (RegEx) được dùng cho trích xuất thông tin dựa trên luật với các mẫu khớp chuỗi phức tạp. RegEx có thể được dùng để truy xuất các mẫu hoặc thay thế các mẫu khớp trong một chuỗi bằng các mẫu khác. Trong bài tập này, bạn sẽ luyện tập dùng EntityRuler trong spaCy để tìm địa chỉ email trong text đã cho.

Gói spaCy đã được nhập sẵn để bạn sử dụng. Bạn có thể dùng \d để khớp các mẫu chuỗi biểu diễn một metacharacter khớp bất kỳ chữ số nào từ 0 đến 9.

Một mẫu spaCy có thể dùng REGEX làm thuộc tính. Trong trường hợp này, một mẫu sẽ có dạng [{"TEXT": {"REGEX": "<a given pattern>"}}].

Bài tập này là một phần của khóa học

Xử lý ngôn ngữ tự nhiên với spaCy

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một mẫu để khớp số điện thoại dạng 8888888888 dùng cho EntityRuler.
  • Tải một mô hình tiếng Anh trống của spaCy và thêm một thành phần EntityRuler vào pipeline.
  • Thêm mẫu đã biên soạn vào thành phần EntityRuler.
  • Chạy mô hình và in ra bộ tuple gồm văn bản và kiểu của các thực thể cho text đã cho.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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.____])
Chỉnh sửa và Chạy Mã