将tf-idf值添加为矩阵中的列

时间:2018-06-22 09:41:49

标签: python pandas scikit-learn tf-idf

from sklearn.feature_extraction.text import TfidfVectorizer

item = list(df['item1']) + list(df['item2'])
tfidf = TfidfVectorizer()
tfidf_sp = tfidf.fit_transform(item)

for i in len(list(df['item1'])):
    new_list =[]
    new_list.append(tfidf.idf_)
df['updated_item'] = list(new_list)

我试图将tfidf分数添加为功能。这是正确的方法吗?

item1的形状为(400k),而item2的形状相同。 tfidf_sp的形状为(800k,100k)。

1 个答案:

答案 0 :(得分:0)

import pandas as pd

pd.DataFrame(tfidf_sp, columns = tfidf.get_feature_names())

这将为您提供一个矩阵,其中的列作为tfidf词汇,每行包含与每个项目相对应的tfidf值。

希望这会有所帮助。

编辑:

尝试将获得的术语文档矩阵转换为数组,如下所示:

tfidf_sp = tfidf.fit_transform(item).toarray()

这将解决Pandas错误。