如何解决如何在Spacy中为匹配器添加多个模式
我想知道如何为匹配器添加不同的模式。我想要做的是这样的事
matcher.add("COUNTRIES",None,*patterncountry)
matcher.add("ZONES",*patternzones)
matcher.add("DAYS",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",*days)
text = 'On Monday I travelled to Canada.'
doc = nlp(text)
matches = phrase_matcher(doc)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。