Изучение текстовых векторов, часть 1
Давайте подробнее рассмотрим метод анализа текстовых векторов, который мы только что изучили, используя tf/idf-векторы столбца title из набора данных volunteer. В этой первой части мы дополним функцию из слайдов: она будет возвращать список чисел. В следующем упражнении мы напишем ещё одну функцию, которая соберёт наиболее частотные слова по всем документам, извлечёт их и использует полученный список для фильтрации вектора text_tfidf.
Это упражнение является частью курса
Предобработка данных для машинного обучения на Python
Инструкции к упражнению
- Добавьте параметры
original_vocabдляtfidf_vec.vocabulary_иtop_n. - Вызовите
pd.Series()на основе объединённого словаря — это упростит дальнейшую работу с данными. - Используйте функцию
.sort_values(), чтобы отсортировать серию, и выберите индексы доtop_nслов. - Вызовите функцию, задав
original_vocab=tfidf_vec.vocabulary_,vector_index=8для выбора 9-й строки иtop_n=3для получения трёх слов с наибольшим весом.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Add in the rest of the arguments
def return_weights(vocab, ____, vector, vector_index, ____):
zipped = dict(zip(vector[vector_index].indices, vector[vector_index].data))
# Transform that zipped dict into a series
zipped_series = ____({vocab[i]:zipped[i] for i in vector[vector_index].indices})
# Sort the series to pull out the top n weighted words
zipped_index = zipped_series.____(ascending=False)[:____].index
return [original_vocab[i] for i in zipped_index]
# Print out the weighted words
print(return_weights(vocab, ____, text_tfidf, ____, ____))