我正在尝试实现具有 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 中表示这个吗?
最佳答案
很遗憾,目前还不存在。我也一直在关注这个空间。 它似乎在他们的 wiki 上提到的作品中 - 语义解析
如果您对其他语言/框架感兴趣,请查看 Semantic Parsing with Execution, Stanford或 The University of Washington Semantic Parsing Framework .
如果您想从头开始构建一些东西,您可能需要获取 CCGBank 或恢复 C&C 工具。
上面大部分都是Java的,不过我看过attempts to parse the C&C Marked file in Python .
我个人希望看到 CCG 加入 Node.js。
关于python - NLTK CCG 中的 Lambda 演算表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829904/