我使用nltk .tokenize(),.pos_tag()和wordnet .synsets()獲得以下輸出。輸出是用於文件和共發現自己的部分詞性標註每個令牌可能匹配的列表的列表(在這裏,我們有4個令牌,因此,比賽的4名名單):從列表中提取第n個元素
[[Synset('document.n.01'),
Synset('document.n.02'),
Synset('document.n.03'),
Synset('text_file.n.01'),
Synset('document.v.01'),
Synset('document.v.02')],
[Synset('be.v.01'),
Synset('be.v.02'),
Synset('be.v.03'),
Synset('exist.v.01'),
Synset('be.v.05'),
Synset('equal.v.01'),
Synset('constitute.v.01'),
Synset('be.v.08'),
Synset('embody.v.02'),
Synset('be.v.10'),
Synset('be.v.11'),
Synset('be.v.12'),
Synset('cost.v.01')],
[Synset('angstrom.n.01'),
Synset('vitamin_a.n.01'),
Synset('deoxyadenosine_monophosphate.n.01'),
Synset('adenine.n.01'),
Synset('ampere.n.02'),
Synset('a.n.06'),
Synset('a.n.07')],
[Synset('trial.n.02'),
Synset('test.n.02'),
Synset('examination.n.02'),
Synset('test.n.04'),
Synset('test.n.05'),
Synset('test.n.06'),
Synset('test.v.01'),
Synset('screen.v.01'),
Synset('quiz.v.01'),
Synset('test.v.04'),
Synset('test.v.05'),
Synset('test.v.06'),
Synset('test.v.07')]]
如果我想要寫的功能(一個循環,有可能),以只提取第一個匹配的每個令牌,並且產生的輸出作爲一個新的列表,例如(上面使用例子)以下:
[Synset('document.n.01'), Synset('be.v.01'), Synset('angstrom.n.01'), Synset('trial.n.02')]
什麼是最靈活的方式w儀式這樣的功能?這樣它可以擴展到其他標記文檔(帶有pos標記)?
謝謝。
我已經嘗試在我的輸出中使用list.append(),但它返回一個錯誤消息「列表索引超出限制」。但謝謝你回答。 –
爲什麼要使用list.append(),你問的問題只是以上面所需的方式打印輸出的權利?那麼上面那個不符合你的要求?讓我知道如果你想做更多的事 –
我使用list.append(),因爲我正在定義一個函數,將返回一個列表對象。可以肯定的是,打印也將成功。 –