สำรวจเวกเตอร์ข้อความ ตอนที่ 1
มาต่อยอดวิธีการสำรวจเวกเตอร์ข้อความที่เพิ่งเรียนรู้ไป โดยใช้เวกเตอร์ tf/idf จากคอลัมน์ title ในชุดข้อมูล volunteer ในแบบฝึกหัดตอนแรกนี้ เราจะเพิ่มส่วนที่ขาดให้กับฟังก์ชันที่เรียนมาจากสไลด์ โดยฟังก์ชันนี้จะคืนค่าเป็นรายการตัวเลข จากนั้นในแบบฝึกหัดถัดไป เราจะเขียนฟังก์ชันอีกตัวเพื่อรวบรวมคำที่มีน้ำหนักสูงสุดจากเอกสารทั้งหมด แล้วนำรายการคำเหล่านั้นมากรองเวกเตอร์ text_tfidf ของเรา
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเตรียมข้อมูลสำหรับ Machine Learning ด้วย Python
คำแนะนำการฝึกหัด
- เพิ่มพารามิเตอร์ชื่อ
original_vocabสำหรับtfidf_vec.vocabulary_และtop_n - เรียก
pd.Series()บน dictionary ที่ zip ไว้ เพื่อให้ดำเนินการกับข้อมูลได้ง่ายขึ้น - ใช้ฟังก์ชัน
.sort_values()เพื่อเรียงลำดับ series แล้ว slice index ให้เหลือเพียง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, ____, ____))