我想检测英语句子中动词的祈使语气。从这个问题我知道spaCy可以访问扩展的形态特征,但是当我使用它时我没有看到它们,使用spaCy版本2.1.8,Python 3.7.1:
>>> import spacy
>>> nlp = spacy.load('en_core_web_sm')
>>> doc = nlp("Show me the money!")
>>> token = doc[0]
>>> print(token, token.tag_, nlp.vocab.morphology.tag_map[token.tag_], token.pos_, token.dep_)
Show VB {74: 100, 'VerbForm': 'inf'} VERB ROOT
Run Code Online (Sandbox Code Playgroud)
看起来 spaCy 正确地推断出“show”是一个动词,但它似乎认为它是一个不定式,而且我没有看到来自 的情绪信息tag_map。我意识到这些扩展信息可以在我的链接问题中找到,因为在那里解析意大利语,并且对于浪漫变形动词确定语气可能更简单。
无论如何,英语句子中的动词是否存在有关情绪的扩展信息?
我有一个字符串,我想"unflatten"或"tree-ify"; 也就是说,我想从此开始:
F=8|A_C=3|A_B=2|D_G_H=11|D_B=2|E=5
Run Code Online (Sandbox Code Playgroud)
对此:
{
A => {
B => 2,
C => 3,
},
D => {
B => 2,
G => {
H => 11,
},
},
E => 5,
F => 8,
}
Run Code Online (Sandbox Code Playgroud)
我的策略是分别处理每个竖线分隔的字段,并将=符号拆分为键/值对:
sub unflatten {
my ($data) = @_;
my @fields = split /\|/, $data;
my $result = {};
for my $datum (@fields) {
my ($key, $value) = split /=/, $datum;
$result->{&processline($key)} = $value;
}
return $result;
}
Run Code Online (Sandbox Code Playgroud)
我在processline函数中尝试了一些递归魔法:
sub processline …Run Code Online (Sandbox Code Playgroud)