在 spaCy 中匹配单个术语
RegEx 模式并不容易阅读、编写和调试。不过别担心,spaCy 提供了可读且可用于生产环境的替代方案 —— Matcher 类。Matcher 类可以把预定义的规则与指定 Doc 容器中的词元序列进行匹配。本练习中,您将练习使用 Matcher 查找单个单词。
您可以在 example_text 中访问相应文本,并分别使用 nlp 和 doc 来访问 spaCy 模型以及 example_text 的 Doc 容器。
本练习是课程的一部分
使用 spaCy 的自然语言处理
练习说明
- 初始化一个
Matcher类。 - 定义一个模式,用于在
example_text中匹配小写的witch。 - 将模式添加到
Matcher并执行匹配。 - 遍历匹配结果,打印起始与结束词元索引,以及匹配文本的 span。
交互式实操练习
通过完成这段示例代码来试试这个练习。
nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)
# Initialize a Matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match lower cased word witch
pattern = [{"lower" : ____}]
# Add the pattern to matcher object and find matches
matcher.add("CustomMatcher", [____])
matches = matcher(____)
# Print start and end token indices and span of the matched text
for match_id, start, end in matches:
print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)