目标:在具有单个文本列的数据帧上使用TFIDF
我正在研究定额问题相似性问题。
我遇到以下问题:
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行的稀疏矩阵
答案 0 :(得分:0)
有两行缺少值,我使用fillna('0')。这没有用。 起作用的是将其更改为fillna(“这很糟糕”)。更改之后,TFIDF矢量化器将返回正确的输出。