0

実行時に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

実行時に、ユーザーから単語を取得し、それを Medical_specialties の代わりに fn.frames 関数に渡す必要があります。これにより、単語に関連するフレーム ID としてフレームのリストがスローされます。次に、これらの番号に電話して、さらにクエリを実行できます。

出力:

[<frame ID=256 name=Medical_specialties>]
4

1 に答える 1

1

あなたはたまたま を使用していますがnltk、あなたの質問はそれとは何の関係もありません (または 、さらに言えpprintば): ユーザーから文字列を入力し、"(?i)"前に固執して目的の正規表現を作成する必要があります。

必要なことはそれだけなので、最も簡単な解決策は次のとおりです。

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

文字列をまとめるより強力な方法は、Python のC スタイルの文字列フォーマット、または新しいformat()構文を使用することです。たとえば、入力「単語」の前後に単語境界を指定するには、次のようにします (C スタイルの構文):

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

上記のリンクを消化するのはおそらく難しいと思うので、この解説またはこの高投票数の SO の質問を試してください。

于 2016-09-20T12:27:53.633 に答える