PythonとNLTKを使用して、ヘルプの結果を変数に保存したいと思います。
x = nltk.help.upenn_tagset('RB')
例えば。
x変数にはNoneが割り当てられます。コンソールはヘルプ関数の結果を出力しますが、それをvarxに保存しません。
help.pyのソースファイルを見ると、ステートメントが使用されており、print
何も返されません。upenn_tagset
を呼び出します。これは、を使用して_format_tagset
すべてをに渡します。_print_entries
print
したがって、私たちが本当にやりたいのは、printステートメントをリダイレクトすることです。
クイック検索、https://stackoverflow.com/a/4110906/1210278-置換しsys.stdout
ます。
@mgilsonによってリンクされた質問で指摘されているように、これは一時的な問題に対する永続的な解決策です。どうしようか?それは簡単なはずです-オリジナルをどこかに置いておくだけです。
import sys
print "Hello"
cons_out = sys.stdout
sys.stdout = (other writable handle you can get result of)
do_printing_function()
sys.stdout = cons_out
print "World!"
これは、再利用可能なクラスラッパーを使用していることを除いて、実際にはhttps://stackoverflow.com/a/6796752/1210278で受け入れられている回答とまったく同じです。これはワンショットソリューションです。
タグの説明を出力する最も簡単な方法は、タグセット全体をロードしてから、必要なタグのみの説明を抽出することです。
tags = nltk.data.load('help/tagsets/upenn_tagset.pickle')
tags['RB']