NLTK-CCG中的LambdaCalculus表示

2024-06-14 19:31:14 发布

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

我正在尝试用lambda演算功能实现一个概率ccg。在

基本上我想执行以下代码:

>> lex = parseLexicon(r'''
 :- S,NP
 He => NP {sem=\x.he(x)} [1.0]
 Walks => S\NP {sem=\X. walk(X)} [1.0]
 There => S\S {sem=\x . there(x)} [1.0]
 ''')
>> parser = CCGChartParser(lex)
>> all_parses = parser.nbest_parse(“He walks 
there”.split(),n=100)
>> for parse in all_parses: 
 printCCGDerivation(parse)

但是现有的NLTK的CCG实现不支持{sem=\x.he(x)}[1.0]种语义部件。在

有没有其他CCG实现可以处理这个问题? 或者我能在NLTK里面表现出来吗?在


Tags: lambda功能parserparsenpall概率parses
3条回答

不幸的是,这还不存在。我也一直在看这个空间。 这似乎是在他们的维基上提到的作品中- 语义分析

如果您对其他语言/框架感兴趣,可以看看Semantic Parsing with Execution, Stanford或{a2}。在

如果您想从头开始构建一些东西,您可能需要获得CCGBank或复活C&C工具。在

上面的大部分都是用Java编写的,但是我已经看过attempts to parse the C&C Marked file in Python。在

我个人希望看到CCG的到来节点.js. 在

NLTK-CCG最近支持语义谓词(Lambda演算表示)计算。请看这里的测试:https://github.com/nltk/nltk/blob/develop/nltk/test/ccg_semantics.doctest

CCG的概率分析即将出现:https://github.com/nltk/nltk/issues/1356

如果您不介意切换到commonlisp,那么有一个由cembozsahin开发的ccg工具(CCGlab)。它也有PCCG培训。https://github.com/bozsahin/ccglab

相关问题 更多 >