我正在使用下面的函数来计算逆项频率。我正在尝试调用函数。 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'对象不可迭代。
答案 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