2016-03-28 12 views
1

上記の文では、「As」はオプションです.nltk文法でnullまたはlambdaを書くにはどうすればよいですか?CFGでnullまたはラムダを定義する方法は?

+1

この特別な文法では、最初の行を次のように置き換えることによってQの必要性を排除できます。S - > 'As' NP VP | NP VP 'As' | NP VP –

+0

@ScottHunter Qは複数の値を取ることができると考える。Q |> 'But' | 'As' | "null"。文法でnullを書く方法を知りたい。 – gully

答えて

1

Qnullに、それ以外のすべてをQxに分割したとします。次に、Sのルールを次のように書き直すことができます。

S - > Qx NP VP | NP VP Qx | NP VP

Qはまったく必要ありません。

実際、空の文字列を受け入れる必要がない限り、どのCFGも「null」を持たないように変換できます。

+0

はいこれは可能ですが、私は文法でs-> nullを書く方法を知りたがっています。また、私の作品が増えれば、それは複雑になります。 – gully

関連する問題