如何在Spacy中向matcher添加多个模式

2024-09-30 01:21:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何向matcher添加不同的模式。我想做的就是做这样的事情

matcher.add("COUNTRIES",None,*patterncountry)
matcher.add("ZONES",None,*patternzones)
matcher.add("DAYS",None,patterndays)

现在我有3种模式。这怎么可能实现


Tags: noneadd模式matcher事情dayscountrieszones
1条回答
网友
1楼 · 发布于 2024-09-30 01:21:13

在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)

相关问题 更多 >

    热门问题