НачатьНачать бесплатно

Изучение текстовых векторов, часть 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, ____, ____))
Редактировать и запускать код