2016-09-20 4 views
0

実行時にpprint内の値を渡す方法はありますか?pprint内でランタイムコール

import nltk, sys 
from pprint import pprint 
from nltk.corpus import framenet as fn 
#Word = raw_input("enter a word: ") 
pprint(fn.frames(r'(?i)Medical_specialties')) 
f = fn.frame(256) 
f.ID 
f.name 
f.definition 
print f 
print '\b' 
pprint(sorted([x for x in f.FE])) 
pprint(f.frameRelations) 
print 

は、実行時に、私は、ユーザーから単語を取得し、順番に単語に関連するフレームIDとしてフレームのリストをスロー分野別の場所にfn.frames機能にそれを渡す必要があります。それから私はそれらの番号を呼び出すことでさらに問い合わせをすることができます。

出力:

[<frame ID=256 name=Medical_specialties>] 
+0

これはどのように 'nltk'; – alvas

+0

nltk用のフレームセットコーパス、 からnltk.corpusインポートフレームセットfn –

+0

コード全体または少なくとも最小限の作業例を表示して、より良いお手伝いをするようにしてください。 – alvas

答えて

1

あなたはnltkで作業することが起こるが、あなたの質問は、(そのことについてまたはpprintで、)それとは何の関係もありません:あなたは、ユーザからの入力に文字列を必要とします、次に"(?i)"を貼り付けて、あなたの望む正規表現を構成してください。

それはあなたがする必要があるすべてですので、最も簡単な解決策はこれです:

word = raw_input("enter a word: ") 
rexp = "(?i)" + word 
pprint(fn.frames(rexp)) 

一緒に文字列を入れて、より強力な方法は、PythonのC-style string formatting、以降format()構文です。例えば、あなたがこの(Cスタイルの構文)のようにそれを行うだろう、入力「単語」の前と後の単語の境界を指定するには:

rexp = r"(?i)\b%s\b" % word 

あなたはおそらく消化するのは難しい上記のリンクを見つけ、そうしようとするでしょうthis expositionまたはthis high-voted SO question.

+0

ガイダンスをありがとう。 –

関連する問題