0

元の質問:

単語の多義性は、それが持つ感覚の数です。WordNetを使用すると、名詞dogがlen(wn.synsets('dog'、'n'))で7つの感覚を持っていることを判別できます。WordNetに従って、名詞、動詞、形容詞、副詞の平均多義性を計算します。

質問から集めたものから、私はWordNetでNLTKに組み込まれた多義性メソッドを使用して、何かが持っている感覚の数を見つけることでした。

さらに重要なことに、私は利用可能なすべてのシンセットを使用してそれらをループし、返されたすべての値をセットに入れようとしています。この後、合計を受け取るために新しく作成されたセット(整数で埋められた)内のすべてのシンセットの総数を追加するつもりでした。この合計を取得した後、平均を受け取るためにエントリの総数を分割します。

私の最大の質問は...名詞、動詞、形容詞、副詞だけでなく、利用可能なすべてのシンセットをループする方法を教えてください。

  • さまざまなWebサイトを調べたところ、「wn.all_synsets('n')」の場合、可能な名詞のsynsetがすべて返されることがわかりました。

ただし、返されるタイプは「ジェネレーター」です。ループを使用して「ジェネレーター」タイプを反復処理するにはどうすればよいですか?

。>>>allsynsets= wn.all_synsets('n')

。>>>allsynsets

<.generator object all_synsets at 0x04359F30>

。>>>type(allsynsets)

<.type'ジェネレータ'>

誰もがこの問題の答えを見つけることができるように、十分な情報を提供したことを願っています。この問題のジェネレータタイプを理解するためのインポートとテストを除いて、ソースコードはありません。

お時間をいただきありがとうございます。

4

1 に答える 1

2

これらの方法のいずれかが機能するはずです

list = [x for x in wx.all_synsets('n')]

また

for x in wx.all_synsets('n'):
    print x

[編集]これはジェネレーターについてもっと話します(ウェブ上の他の多くのソースの中で) http://www.dalkescientific.com/writings/NBN/generators.html

于 2012-04-11T05:55:52.537 に答える