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

So khớp với cú pháp mở rộng trong spaCy

Trích xuất thông tin dựa trên luật là thành phần thiết yếu của mọi pipeline NLP. Lớp Matcher cho phép biểu thức mẫu linh hoạt hơn bằng cách hỗ trợ một số toán tử bên trong dấu ngoặc nhọn. Các toán tử này dùng cho so sánh mở rộng và trông giống với các toán tử của Python như in, not in và các toán tử so sánh. Trong bài tập này, bạn sẽ luyện tập chức năng so khớp Matcher của spaCy để tìm các lần xuất hiện của những thuật ngữ đã cho trong một văn bản ví dụ.

Lớp Matcher đã được import từ thư viện spacy.matcher. Bạn sẽ sử dụng một đối tượng Doc chứa văn bản ví dụ trong bài tập này bằng cách gọi doc. Một mô hình spaCy đã được nạp sẵn cũng có thể truy cập qua nlp.

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

  • Khởi tạo một đối tượng matcher bằng Matchernlp.
  • Dùng toán tử IN để định nghĩa một pattern so khớp tiny squarestiny mouthful.
  • Dùng pattern này để tìm các kết quả khớp trong doc.
  • In chỉ số token bắt đầu và kết thúc, cùng đoạn văn bản tương ứng của các kết quả khớp.

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.

nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Chỉnh sửa và Chạy Mã