【问题标题】:Lambda-Calculus Representation in NLTK CCGNLTK CCG 中的 Lambda 微积分表示
【发布时间】:2014-11-09 15:37:29
【问题描述】:

我正在尝试使用 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 中表示这个吗?

【问题讨论】:

  • 我很好奇您是否找到了解决问题的方法?
  • @crackjack 不,不幸的是。对此有一个硕士论文项目实施,但尚未完成。我联系了论文导师,他说项目不再维护。
  • 我就是那个人。最近实现了语义谓词。 CCG 的概率解析即将出现。请在下面查看我的答案。

标签: python nltk lambda-calculus combinatory-logic


【解决方案1】:

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

如果您对其他语言/框架感兴趣,请查看Semantic Parsing with Execution, StanfordThe University of Washington Semantic Parsing Framework

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

以上大部分都是Java,但我见过attempts to parse the C&C Marked file in Python

我个人希望看到 CCG 加入 Node.js。

【讨论】:

  • 感谢您的信息。我查看了可以下载 CCGBank 的页面(语言数据联盟网站,catalog.ldc.upenn.edu/ldc2005t13),但似乎需要付费才能获得。
【解决方案2】:

NLTK CCG 最近支持语义谓词(Lambda-Calculus 表示)计算。请在此处查看测试:https://github.com/nltk/nltk/blob/develop/nltk/test/ccg_semantics.doctest

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

【讨论】:

  • 我非常感谢您的回答。谢谢。
  • 如果我理解正确的话,这只是一个解析器,但要获得完整的功能,我们需要广泛覆盖的词典?
【解决方案3】:

如果您不介意改用 Common LISP,可以使用 Cem Bozsahin 开发的 ccg 工具 (CCGlab)。它也有PCCG培训。 https://github.com/bozsahin/ccglab

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 2015-01-28
    • 2013-02-16
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多