可以用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
我想你想从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:我没有测试代码,但我认为这个想法很清楚。
很好的回答@Salias!我看起来非常好,你是指通过处理之前的文本吗? –
如果你想提取你的集合的tf-idf矩阵,你应该已经删除了停用词,标点符号等......之前。否则,你将会得到一个非常嘈杂的矩阵,其中含有“to”或“and”这样的无意义词汇是最重要的,因此也是最重要的。预处理过滤器取决于您想要完成的任务。看看https://www.researchgate.net/publication/273127322_Preprocessing_Techniques_for_Text_Mining – Salias
您需要在列表中调用append()。例如MyList.append(element)
是的,我试图定义一个列表之前,但vectorizer.fit_transform不允许它....任何其他的选择? –
'append()'必须在列表上调用,它不作为全局作用域函数存在。 –