2012-04-11 88 views
0

原來的問題的整個系列(從NLTK)同義集的搜索:通過在Python NLP

一個字的多義是它有意義數。使用WordNet,我們可以用 確定名詞狗有len(wn.synsets('dog','n'))的七個感官。 根據 計算WordNet的名詞,動詞,形容詞和副詞的平均多義詞。

從我從問題中收集到的信息,我將在WordNet的NLTK中使用內置的多義詞方法來找出事物的感官數量。

更重要的是,我試圖使用所有可用的同義詞集並循環它們, 並將所有返回的值放入集合中。 在此之後,我打算添加新創建的集合中的所有同義詞總數(用整數填充)以接收總和。 我得到這筆款項後,我將劃分總數來獲得平均數。

我最大的問題是...我怎麼去循環通過所有可用的synsets,以及名詞,動詞,形容詞和副詞?

  • 經過各種網站的研究,我發現「wn.all_synsets('n')」會返回所有可能的名詞同義詞。

然而,它返回的類型是一個「生成器」,我將如何去使用循環遍歷「生成器」類型?

。>>> allsynsets = wn.all_synsets( 'N')

。>>> allsynsets

< .generator對象all_synsets在0x04359F30>

。>>>類型(allsynsets )

< .TYPE「發電機」>

我希望我提供的信息足以讓任何人都可以找到答案這個問題。 除了導入和測試以瞭解此問題的生成器類型外,我沒有源代碼。

謝謝你的時間。

回答

2

這些方法之一應工作

list = [x for x in wx.all_synsets('n')] 

for x in wx.all_synsets('n'): 
    print x 

[編輯]這更多地談論發電機(許多其他來源中在網絡上) http://www.dalkescientific.com/writings/NBN/generators.html

+0

不要使用當你失去對函數list()的訪問時,變量的名字爲'list'。說到函數list(),如果你想讓一個生成器中的所有項目都作爲列表,你可以調用list(wx.all_synsets('n'))'。 – jamylak 2012-04-11 05:58:51

+0

是的,這是真的......對不起,只是舉一個例子,並沒有考慮var名稱:P,但是沒有命名實際變量列表,並且列表()是將它轉換爲列表的更好方法,我猜也是。 – 2012-04-11 06:01:39

+0

好的,謝謝你, 我在Python中嘗試了一些新東西,並且被真正卡住了,並且覺得我已經耗盡了所有可能的資源(當然,我知道的)。 再次感謝您! – JavaCup 2012-04-11 06:10:24