我一直在尝试使用动词时态和情绪为 spacy 匹配器制作特定的模式。
我发现了如何使用 model.vocab.morphology.tag_map[token.tag_] 访问用 spacy 解析的单词的形态特征,当动词处于虚拟语气模式(我感兴趣的模式)时,它会打印出类似这样的内容:
{'Mood_sub':真,'Number_sing':真,'Person_three':真,'Tense_pres':真,'VerbForm_fin':真,74:100}
但是,我想要一个像这样的模式来重新标记特定的动词短语:pattern = [{'TAG':'Mood_sub'}, {'TAG':'VerbForm_ger'}]
对于像“Que siga aprendiendo”这样的西班牙语短语,“siga”在其标签中具有“Mood_sub”=True,而“aprendiendo”在其标签中具有“VerbForm_ger”=True。但是,匹配器没有检测到这个匹配。
谁能告诉我为什么会这样以及我该如何解决?这是我正在使用的代码:
model = spacy.load('es_core_news_md')
text = 'Que siga aprendiendo de sus alumnos'
doc = model(text)
pattern = [{'TAG':'Mood_sub'}, {'TAG':'VerbForm_ger'}]
matcher.add(1, None, pattern)
matches = matcher(doc)
for i, start, end in matches:
span = doc[start:end]
if len(span) > 0:
with doc.retokenize() as retokenizer:
retokenizer.merge(span)