Я прочитал документацию и с основами c понимания о TF-IDF я мог прийти к выводу. Это не экспертное заключение.
Согласно документации , преобразование возвращает разреженную матрицу, размеры которой (n_samples, n_features).
Возвращает X: разреженная матрица, [n_samples, n_features]
Tf-idf-взвешенная матрица термина документа.
Теперь ваши n_samples равны 1 и n_features исходит из модели ... которую он вычислил равной 11.
То, что возвращается преобразованием, является взвешенным по TD-IDF Document-term-matrix , где каждая строка соответствует к документу, и каждый столбец содержит функции.
Вы можете узнать свои функции, сказав «print (model.get_feature_names ())». В вашем случае это даст следующий результат:
['and', 'car', 'cat', 'corpus', 'dog', 'first', 'like', 'plane', 'second', 'with', 'words']
Как вы можете видеть, есть 11 функций. Теперь кошка является третьим элементом, для которого частота должна быть высокой. Если вы скажете «print (model.transform ([" cat "]). Toarray ())", вы будете знать всю матрицу. Как было сказано ранее, будет одна строка (как вы передали в одном документе .. "cat" и 11 столбцов (по причине выше). Как вы можете видеть ниже в третьем столбце, частота самая высокая 1.00.
[[0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]
Я внес минимальные изменения в ваш код с намерением помочь вам.
from sklearn.feature_extraction.text import TfidfVectorizer
model = TfidfVectorizer()
corpus = ["first corpus with words like dog and cat", "second corpus with words like car and plane"]
model.fit(corpus)
Returned_Features = model.get_feature_names()
Returned_TF_IDF_DTM = model.transform(["cat"]).toarray()
print(Returned_Features)
print(Returned_TF_IDF_DTM)
Надеюсь, это поможет. Всего наилучшего