python - 如何从一个句子中构建几个语法树?
问题描述
我正在研究基于上下文无关语法的俄语解析器,我想为每个句子构建语法树。有证据表明,每个句子可以有几棵树。
我不确定构建所有这些树的有效方法是什么。
我做了什么:
1)经过一些处理后,我有一个句子,其中每个单词都有几个标签 2)然后我建立一棵树叶是单词的树,然后我将单词简化为更一般的短语(根据语法);每次减少 - 新节点。3) 当所有归约完成后,尝试使用“S -> NP[sbj] VP”规则生成root。只有在语法之间达成一致时才会发生这种情况。
结果是根存在的所有树。
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.
幼稚的方法是采用所有可能的单词组合并尝试从中创建树。这种方法的复杂性非常大。我怎样才能以更有效的方式完成这项任务?
解决方案
推荐阅读
- codeigniter-3 - ci中的基本url方法
- sql-server-2012 - 将 SQL Server 2012 Enterprise MDF/NDF 迁移到 SQL Server 2016 Standard
- r - 如何使用极坐标自定义 echarts4r 条形图的颜色?
- sql-server-2016 - 带有 varbinary(max) 的 BCP 实用程序 13.0 错误
- mysql - 交叉连接 3 列,如果在某些条件下为空,则需要消除空行
- networking - 为 windows 安装 netcat 的安全地方
- javascript - 如何在相应的滚动上获得虚线(带有向下箭头图标)SVG动画?
- graphics - mac中的计算机图形学
- database - UnicodeDecodeError:“ascii”编解码器无法解码机器人框架查询
- django - 如何在api视图函数中使用knox生成的token