可以用Python

问题描述:

追加简单的循环,我希望得到一个循环,所以不是我写的代码,例如:可以用Python

tfidf = vectorizer.fit_transform([ data[0]['body'] , data[1]['body'] , data[2]['body'] , data[3]['body'] .... ]) 

我把它在一个循环。到目前为止,我已经尝试过:

for i in range(len(data) - 1): 
    tfidf = vectorizer.fit_transform([ append(data[i]['body']) , data[i+1]['body']) ]) 

有关如何使其工作的任何想法?我收到以下错误:

name 'append' is not defined

+1

'append()'必须在列表上调用,它不作为全局作用域函数存在。 –

我想你想从json数据中提取'body'内容,并有一个文本元素列表,然后将它传递给特征提取器(确保你已经预处理了文本之前)。

试试这个:

tfidf = vectorizer.fit_transform([d['body'] for d in data]) 

或者,如果是比较清楚的话,你可以先创建列表,然后将它传递给函数:

bodies = [d['body'] for d in data] 
tfidf = vectorizer.fit_transform(bodies) 

希望它能帮助:)

快乐编码!

P.D:我没有测试代码,但我认为这个想法很清楚。

+0

很好的回答@Salias!我看起来非常好,你是指通过处理之前的文本吗? –

+1

如果你想提取你的集合的tf-idf矩阵,你应该已经删除了停用词,标点符号等......之前。否则,你将会得到一个非常嘈杂的矩阵,其中含有“to”或“and”这样的无意义词汇是最重要的,因此也是最重要的。预处理过滤器取决于您想要完成的任务。看看https://www.researchgate.net/publication/273127322_Preprocessing_Techniques_for_Text_Mining – Salias

您需要在列表中调用append()。例如MyList.append(element)

+0

是的,我试图定义一个列表之前,但vectorizer.fit_transform不允许它....任何其他的选择? –