【问题标题】:Add tf-idf values as columns in a matrix将 tf-idf 值添加为矩阵中的列
【发布时间】:2018-12-01 18:23:16
【问题描述】:
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)。

【问题讨论】:

  • 你不应该使用tfidf_sp作为你的特征吗?另外,您是否已经完成了训练测试拆分?
  • 如果我对 item1 使用 new_list.append(tfidf_sp[0:400k]) 并且对 item2 使用相同。我的内核一直在死机。
  • 为什么不直接df['updated_item'] = tfidf.fit_transform(item)
  • for i in tqdm(list(df['item1'])): new_list =[] new_list.append(tfidf.idf_) df['updated_item'] = list(new_list) 我想同时查看进度并逐个更新
  • 你能告诉我我犯了什么错误吗?

标签: python pandas scikit-learn tf-idf


【解决方案1】:
import pandas as pd

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

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

希望这会有所帮助。

编辑:

尝试将得到的term-document矩阵转化为数组,如下:

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

这将解决 Pandas 错误。

【讨论】:

  • 这给出了一个错误 pandas DataFrame Constructor not proper called
猜你喜欢
  • 1970-01-01
  • 2014-07-22
  • 2017-08-14
  • 2017-07-01
  • 2018-03-23
  • 2017-06-19
  • 2020-05-11
  • 2016-05-08
  • 1970-01-01
相关资源
最近更新 更多