我正在开发一个基于上下文无关语法的俄语语法分析器,我想为每个句子构建语法树。有证据表明,每句话都可能有几棵树
我不确定建造所有这些树的有效方法是什么
我所做的:
1)经过一些处理后,我有一个句子,每个单词都有几个标记 2) 然后我建一棵树,树叶是单词,然后我把单词简化成更一般的短语(根据语法);每个减少-新节点。 3) 完成所有还原后,尝试使用“S->;NP[sbj]VP“规则。只有当两方达成一致意见时,才会发生这种情况
结果是所有存在根的树
parser.parse(sent)
[['я', "NP[case='nomn']", ['NPRO', 'sing', '1per', None, 'nomn', None, None]]]
[['хочу', 'V[tran]', ['VERB', 'sing', '1per', None, None, 'tran', 'pres']]]
[['писать', 'VP', ['INFN', None, None, None, None, 'tran', None]], ['писать', 'VP', ['INFN', None, None, None, None, 'intr', None]]]
[['письмо', "NP[case='accs']", ['NOUN', 'sing', None, 'neut', 'accs', None, None]], ['письмо', "NP[case='nomn']", ['NOUN', 'sing', None, 'neut', 'nomn', None, None]]]
[['другу', "NP[case='datv']", ['NOUN', 'sing', None, None, 'datv', None, None]]]
# it is simple example, usually, each word has 3-4 tags.
最天真的方法是把所有可能的单词组合起来,试着用它们来做树。这种方法的复杂性非常大。我怎样才能更有效地完成这项任务
目前没有回答
相关问题 更多 >
编程相关推荐