Tạo thực thể có tên tùy chỉnh trong spaCy
Nếu các thực thể có tên dựng sẵn của spaCy là chưa đủ, bạn có thể tự tạo bằng lớp EntityRuler() của spaCy.
EntityRuler() cho phép bạn tạo thực thể riêng để thêm vào pipeline của spaCy.
Bạn bắt đầu bằng cách tạo một instance của EntityRuler() và truyền vào pipeline hiện tại, nlp.
Sau đó bạn có thể gọi add_patterns() trên instance này và truyền vào một từ điển chứa pattern văn bản mà bạn muốn gán nhãn thực thể.
Khi đã thiết lập xong pattern, bạn có thể thêm nó vào pipeline nlp bằng add_pipe().
Vì Acme là một công ty công nghệ, bạn quyết định gắn pattern "smartphone" với nhãn thực thể "PRODUCT".
spaCy đã được import và một doc đã tồn tại, chứa văn bản đã được chuyển từ tiếng nói trong tệp call_4_channel_2.wav file).
Bài tập này là một phần của khóa học
Xử lý Ngôn ngữ Nói bằng Python
Hướng dẫn bài tập
- Import
EntityRulertừspacy.pipeline. - Thêm
"smartphone"làm giá trị cho khóa"pattern". - Thêm instance
EntityRuler(),ruler, vào pipelinenlp. - In ra các thuộc tính thực thể có trong
doc.
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.
# Import EntityRuler class
from spacy.pipeline import ____
# Create EntityRuler instance
ruler = EntityRuler(nlp)
# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])
# Update existing pipeline
nlp.add_pipe(____, before="ner")
# Test new entity
for entity in doc.____:
print(entity.text, entity.label_)