2017-08-16 65 views
0

我有以下Python代碼:「設定」對象不能被解釋爲一個整數

text = "this’s a sent tokenize test. this is sent two. is this sent three? sent 4 is cool! Now it’s your turn." 
from nltk.tokenize import sent_tokenize 
sent_tokenize_list = sent_tokenize(text) 

import numpy as np 

lenDoc=len(sent_tokenize_list) 

features={'position','rate'} 
score = np.empty((lenDoc, 2), dtype=object) 
score=[[0 for x in range(sent_tokenize_list)] for y in range(features)] 
for i,sentence in enumerate(sent_tokenize_list): 
    score[i,features].append((lenDoc-i)/lenDoc) 

但它導致以下錯誤:

TypeError         Traceback (most recent call last) <ipython-input-27-c53da2b2ab02> in <module>() 
     13 
     14 
---> 15 score=[[0 for x in range(sent_tokenize_list)] for y in range(features)] 
     16 for i,sentence in enumerate(sent_tokenize_list): 
     17  score[i,features].append((lenDoc-i)/lenDoc) 

TypeError: 'set' object cannot be interpreted as an integer 

回答

0

range()採用INT的值。 features是一個集合,所以會引發錯誤。你與range(sent_tokenize_list)犯了同樣的錯誤。 sent_tokenize_list是一個不是int的列表值。 如果你想要x和y是的featuressent_tokenize_list索引,那麼你就必須使用這個:score=[[0 for x in range(len(sent_tokenize_list))] for y in range(len(features))] 但是如果你想要x和y是的featuressent_tokenize_list值,則必須從該行刪除range()

相關問題