typeerror'int'对象不可迭代

时间:2018-07-30 04:02:39

标签: python-3.x

我正在使用下面的函数来计算逆项频率。我正在尝试调用函数。 total_all是一个列表

 inverse_document_frequencies(total_all)

   def inverse_document_frequencies(tokenized_documents):
   idf_values = {}
   global dfInv
   dfInv = pd.DataFrame() 
   tokenized_documents = [tokenize(d) for d in words]
   all_tokens_set = set([item for sublist in tokenized_documents for item in 
sublist])
   for tkn in all_tokens_set:
   contains_token = len(list(map(lambda doc: tkn in doc, tokenized_documents)))
    idf_values[tkn] = 1 + math.log(len(tokenized_documents)/(sum(contains_token))) 
dfInv=pd.DataFrame(data ={'tkn':contains_token,'idf_values':idf_values[tkn]})
return dfInv

我添加了括号并更改了缩进,这有助于消除语法错误。我在调用该函数时遇到以下错误。 typeerror'int'对象不可迭代。

1 个答案:

答案 0 :(得分:1)

以下代码中没有语法错误。都是关于缩进和缺少括号

def inverse_document_frequencies(tokenized_documents):
    idf_values = {}
    global dfInv
    dfInv = pd.DataFrame() 
    tokenized_documents = [tokenize(d) for d in words]
    all_tokens_set = set([item for sublist in tokenized_documents for item in 
sublist])
    for tkn in all_tokens_set:
        contains_token = len(list(map(lambda doc: tkn in doc, tokenized_documents)))
        idf_values[tkn] = 1 + math.log(len(tokenized_documents)/(sum(contains_token)))
        dfInv=pd.DataFrame({'tkn':contains_token,'idf_values':idf_values[tkn]})
    return dfInv