#python #tf-idf #tfidfvectorizer
#python #tf-idf #tfidfvectorizer
Вопрос:
Я пытаюсь понять результат матрицы TF-IDF. Вот код, который я использую.
sen1 = TextBlob("This is a sample")
d1 = sen1.words
from sklearn.feature_extraction.text import TfidfVectorizer
tfvectorizer = TfidfVectorizer()
tfidf= TfidfVectorizer(tokenizer=identity_tokenizer, stop_words='english', lowercase=False)
tf = tfidf.fit_transform(d1).todense()
Итак, я пытаюсь понять полученную таким образом матрицу tf. Ниже приведено прикрепленное изображение матрицы tf.
Может кто-нибудь, пожалуйста, помочь мне, почему у меня есть 7 столбцов для корпуса из 4 слов? Представляют ли строки количество слов.
Из того, что я изучаю в разных ресурсах, «Результатом является матрица оценок tf-idf с одной строкой на документ и таким количеством столбцов, сколько разных слов в наборе данных». Но я не могу проверить это на основе результата, который я получаю здесь.
Ответ №1:
Я могу воспроизвести ваш результат. Переменной d1 является [‘This’, ‘is’, ‘a’, ‘sample’]. И это означает, что sklearn интерпретирует это как 4 документа, а затем использует символы в качестве слов.
Вы можете проверить следующим образом.
tf = tfidf.fit(d1)
tf.get_feature_names()
[‘T’, ‘e’, ‘h’, ‘l’, ‘m’, ‘p’, ‘s’]