Дослідження текстових векторів, частина 1
Розширімо метод дослідження текстових векторів, який щойно розглянули, використовуючи tf/idf-вектори поля title з набору даних volunteer. У цій першій частині ми доповнимо функцію, про яку йшлося на слайдах. Функція повертатиме список чисел. У наступній вправі ми напишемо ще одну функцію, щоб зібрати найважливіші слова з усіх документів, видобути їх, а тоді використати цей список, щоб відфільтрувати наш вектор text_tfidf.
Ця вправа є частиною курсу
Передобробка для машинного навчання в Python
Інструкції до вправи
- Додайте параметри
original_vocabдляtfidf_vec.vocabulary_іtop_n. - Викличте
pd.Series()для стисненого (zipped) словника. Так з ним буде простіше працювати. - Скористайтеся функцією
.sort_values(), щоб відсортувати Series і зрізати індекс доtop_nслів. - Викличте функцію, встановивши
original_vocab=tfidf_vec.vocabulary_,vector_index=8, щоб отримати 9-й рядок, іtop_n=3, щоб вибрати 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, ____, ____))