[英]How to add multiple patterns to the matcher in Spacy
我想知道如何向匹配器添加不同的模式。 我想要的是做这样的事情
matcher.add("COUNTRIES",None,*patterncountry)
matcher.add("ZONES",None,*patternzones)
matcher.add("DAYS",None,patterndays)
所以现在我有 3 个模式。 这怎么可能实现?
在 SpaCy 中, Matcher
可让您根据标记描述列表匹配序列,而PhraseMatcher
可让您有效地匹配大型术语列表。 在您的情况下, PhraseMatcher
更适合使用。
import spacy
from spacy.matcher import PhraseMatcher
nlp = spacy.load("en_core_web_sm")
phrase_matcher = PhraseMatcher(nlp.vocab)
countries = [nlp.make_doc(text) for text in ['Canada', 'United States', 'Mexico']]
days = [nlp.make_doc(text) for text in ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday']]
phrase_matcher.add("COUNTRIES",None, *countries)
phrase_matcher.add("DAYS",None, *days)
text = 'On Monday I travelled to Canada.'
doc = nlp(text)
matches = phrase_matcher(doc)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.