Я прочитал много блогов, но не был удовлетворен ответами. Предположим, я тренирую модель tf-idf на нескольких документах, например:
" John like horror movie."
" Ryan watches dramatic movies"
------------so on ----------
Я использую эту функцию:
from sklearn.feature_extraction.text import TfidfTransformer
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(twenty_train.data)
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
print((X_train_counts.todense()))
# Gives count of words in each document
But it doesn't tell which word? How to get words as headers in X_train_counts
outputs. Similarly in X_train_tfidf ?
Таким образом, вывод X_train_tfidf будет представлять собой матрицу с оценкой tf-idf:
Horror watch movie drama
doc1 score1 -- -----------
doc2 ------------------------
Это правильно?
Что делает fit
и что делает transformation
? В sklearn упоминается, что:
метод fit (..) для подгонки нашего оценщика к данным и, во-вторых, метод transform (..) для преобразования нашей подсчитываемой матрицы в представление tf-idf. Что означает estimator to the data
?
Теперь предположим, что приходит новый тестовый документ:
" Ron likes thriller movies"
Как преобразовать этот документ в tf-idf? Мы не можем преобразовать это в TF-IDF правильно? Как обработать слово thriller
, которого нет в документе поезда.