2013-09-28 99 views
-2
import nltk 
from nltk.corpus import wordnet as wn 
w = 'flabbergasted' 
ws = wn.synsets(w) 

for s in ws: 
    for l in s.lemmas: 
     if str(l) == "flabbergasted": 
      break 
     else: 
      print(l.name) 

我試圖比較一個字一個普通的字符串同義詞的輸出,但我得到這個輸出,而不是所有的值後大吃一驚一詞被刪除。的Python:錯誤比較字符串

驚奇

驚奇

bowl_over

傻眼

目瞪口呆

大吃一驚

五雷轟頂

目瞪口呆

dumbstricken

我應該如何糾正呢?先謝謝你。

+0

爲什麼字符串包含\ n嗎? –

+0

爲什麼在比較中使用str()兩次? –

+0

追蹤是自我解釋 –

回答

0

我懷疑你打算使用Lemma對象的name屬性。要打印的一切除了 「大吃一驚」,你可以嘗試:

for s in ws: 
    for l in s.lemmas: 
     if l.name != "flabbergasted": 
      print(l.name) 

這給輸出:

flabbergast 
boggle 
bowl_over 
dumbfounded 
dumfounded 
stupefied 
thunderstruck 
dumbstruck 
dumbstricken 
+0

謝謝,它的工作,猜測這是一個愚蠢的問題。非常感謝。 – GobSmack

+0

當然,沒問題:) – pcoving