3

ラムダ計算機能を備えた確率的 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 内で表現できますか?

4

3 に答える 3

3

残念ながら、これはまだ存在しません。私もずっとこの空間を見てきました。ここのwikiで言及されている作品にあるようです-Semantic-Parsing

他の言語/フレームワークに興味がある場合は、Semantic Parsing with Execution、StanfordまたはThe University of Washington Semantic Parsing Frameworkをのぞいてみてください。

ゼロから何かを構築したい場合は、CCGBank を入手するか、C&C Tools を復活させることをお勧めします。

上記のほとんどは Java で書かれていますが、Python で C&C マーク付きファイルを解析しようとする試みを見てきました。

私は個人的に、CCG が Node.js に来ることを望んでいます。

于 2015-05-06T01:11:40.463 に答える
2

NLTK CCG は最近、セマンティクス述語 (ラムダ計算表現) の計算をサポートしています。ここでテストを参照してください: https://github.com/nltk/nltk/blob/develop/nltk/test/ccg_semantics.doctest

CCG の確率論的解析はもうすぐです: https://github.com/nltk/nltk/issues/1356

于 2016-04-03T05:54:35.773 に答える