создание векторов TFIDF выводит матрицу меньшей размерности - PullRequest
0 голосов
/ 16 мая 2019

Цель: использовать TFIDF для фрейма данных с одним текстовым столбцом

Я работаю над проблемой подобия вопроса о кворе.

У меня есть следующие проблемы:

  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)

OUTPUT

(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

1 Ответ

0 голосов
/ 20 мая 2019

В двух строках отсутствовали значения, и я использовал fillna ('0'). Это не сработало. То, что работало, меняло его на fillna («это плохо»). После этого изменения векторизатор TFIDF возвращает правильный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...