ฉันกำลังแปลงคลังข้อความเอกสารเป็นคำเวกเตอร์สำหรับแต่ละเอกสาร ฉันได้ลองแล้วโดยใช้TfidfVectorizerและHashingVectorizer
ผมเข้าใจว่าHashingVectorizer
ไม่คำนึงถึงIDF
คะแนนเหมือนTfidfVectorizer
ไม่ เหตุผลที่ฉันยังคงทำงานร่วมกับผู้HashingVectorizer
ที่มีความยืดหยุ่นจะช่วยให้ขณะที่การจัดการกับชุดข้อมูลขนาดใหญ่ตามที่อธิบายไว้ที่นี่และที่นี่ (ชุดข้อมูลดั้งเดิมของฉันมีเอกสาร 30 ล้านฉบับ)
ขณะนี้ฉันทำงานกับกลุ่มตัวอย่าง 45,339 เอกสารดังนั้นผมมีความสามารถในการทำงานด้วยTfidfVectorizer
นอกจากนี้ยังมี เมื่อฉันใช้ vectorizers สองตัวนี้บนเอกสาร 45339 เดียวกันเมทริกซ์ที่ฉันได้รับนั้นแตกต่างกัน
hashing = HashingVectorizer() with LSM('corpus.db')) as corpus: hashing_matrix = hashing.fit_transform(corpus) print(hashing_matrix.shape)
hashing เมทริกซ์รูปร่าง (45339, 1048576)
tfidf = TfidfVectorizer() with LSM('corpus.db')) as corpus: tfidf_matrix = tfidf.fit_transform(corpus) print(tfidf_matrix.shape)
รูปร่างเมทริกซ์ tfidf (45339, 663307)
ฉันต้องการเข้าใจความแตกต่างระหว่าง a HashingVectorizer
และ a TfidfVectorizer
และเหตุผลที่เมทริกซ์เหล่านี้มีขนาดต่างกันโดยเฉพาะในจำนวนคำ / เทอม