4

パターンが与えられた文からすべてのチャンクを取得するにはどうすればよいですか。例

NP:{<NN><NN>}

タグ付けされた文:

[("money", "NN"), ("market", "NN") ("fund", "NN")]

解析すると、

(S (NP money/NN market/NN) fund/NN)

私は他の選択肢も欲しいです

(S money/NN (NP market/NN fund/NN))
4

2 に答える 2

6

@mbatchkarovは、nbest_parseのドキュメントについて正しいです。コード例については、以下を参照してください。

import nltk
# Define the cfg grammar.
grammar = nltk.parse_cfg("""
S -> NP
S -> NN NP
S -> NP NN
NP -> NN NN
NN -> 'market'
NN -> 'money'
NN -> 'fund'
""")

# Make your string into a list of tokens.
sentence = "money market fund".split(" ")

# Load the grammar into the ChartParser.
cp = nltk.ChartParser(grammar)

# Generate and print the nbest_parse from the grammar given the sentence tokens.
for tree in cp.nbest_parse(sentence):
    print tree
于 2013-02-05T00:11:42.590 に答える
1

あなたの質問は、n最も可能性の高い文の構文解析を取得することについてだと思います。私は正しいですか?はいの場合は、 2.0ドキュメントnbest_parse(sent, n=None)の関数を参照してください。

于 2013-02-04T17:56:36.607 に答える