2016-09-20 3 views
0

Wie wird der Wert innerhalb von pprint zur Laufzeit übergeben?Laufzeitaufruf innerhalb von 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 

Zur Laufzeit muß ich ein Wort von dem Benutzer erhalten und es zu fn.frames Funktion anstelle von Fachrichtungen übergeben, die wiederum eine Liste der Bilder als Rahmen ID relevant für das Wort führt. Dann kann ich diese Nummern anrufen, um weiter zu fragen.

Ausgang:

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

Wie hat das mit 'nltk' zu tun? – alvas

+0

Es ist frameNet Korpus für nltk, von nltk.corpus importieren framenet als fn –

+0

Bitte zeigen Sie den ganzen Code oder zumindest ein minimales Arbeitsbeispiel, damit wir Ihnen besser helfen können. – alvas

Antwort

1

Obwohl Sie mit dem nltk passieren zu arbeiten, Ihre Frage hat nichts damit zu tun (oder mit pprint, was das betrifft): Sie benötigen einen String vom Benutzer zur Eingabe von , dann Stick "(?i)" vor, um Ihre gewünschte Regexp zu konstruieren.

Da das ist alles, was Sie tun müssen, ist die einfachste Lösung dieser:

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

Eine leistungsfähigere Weise Strings zusammen mit Python C-style string formatting, oder die neueren format() Syntax. Zum Beispiel angeben, Wortgrenzen vor und nach der Eingabe „Wort“, würden Sie es wie folgt (C-Stil-Syntax) tun:

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

Sie wahrscheinlich die obigen Links schwer zu verdauen finden, so versuchen this exposition oder this high-voted SO question.

+0

Danke für die Anleitung. –

Verwandte Themen