開始使用免費開始

在 spaCy 中比對單一詞彙

RegEx 樣式不容易閱讀、撰寫與除錯。不過別擔心,spaCy 提供一個可讀性高且可用於正式環境的替代方案──Matcher 類別。Matcher 類別可以根據預先定義的規則,在給定的 Doc 容器中比對一連串的權杖。在這個練習中,你會練習使用 Matcher 來尋找單一單字。

你可以從 example_text 取得對應的文字,並分別使用 nlpdoc 來存取 spaCy 模型與 example_textDoc 容器。

本練習屬於課程

使用 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)
編輯並執行程式碼