【问题标题】:creating a TFIDF vectors outputs a matrix of lesser dimension创建一个 TFIDF 向量输出一个较小维度的矩阵
【发布时间】:2019-10-03 19:19:07
【问题描述】:

目标:在具有单个文本列的数据框上使用 TFIDF

我正在研究 quora 问题相似性问题。

我有以下问题:

  1. 我将一个大小为 (198102, 1) 的数据框传递给一个 tfidfvectorizer 并返回一个大小为 (1,1) 的数组,这是一个包含所有文本的列。
cq1 =pd.DataFrame(columns=['q1'])
cq1 = pd.DataFrame(X_v_trn['question1'])
print(cq1.shape,type(cq1))
tfidfq1 = TfidfVectorizer()
X_q1 = tfidfq1.fit_transform(cq1)
print(type(X_q1),X_q1.shape,X_q1.toarray())
print(tfidfq1)

输出

(198102, 1) <class 'pandas.core.frame.DataFrame'>
<class 'scipy.sparse.csr.csr_matrix'> (1, 1) [[1.]]
TfidfVectorizer(analyzer='word', binary=False, decode_error='strict',
        dtype=<class 'numpy.float64'>, encoding='utf-8', input='content',
        lowercase=True, max_df=1.0, max_features=None, min_df=1,
        ngram_range=(1, 1), norm='l2', preprocessor=None, smooth_idf=True,
        stop_words=None, strip_accents=None, sublinear_tf=False,
        token_pattern='(?u)\\b\\w\\w+\\b', tokenizer=None, use_idf=True,
        vocabulary=None)

我得到的实际输出是 (1,1) 数组,而我期望一个稀疏矩阵有 198102 行

【问题讨论】:

    标签: python feature-extraction feature-selection


    【解决方案1】:

    有两行缺少值,我使用了 fillna('0') 。这没有用。 有效的方法是将其更改为 fillna('这很糟糕')。在此更改之后,TFIDF 矢量化器将返回正确的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-30
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      相关资源
      最近更新 更多