2017-08-16 68 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()

相关问题