IDF แบบเพิ่มหน่วย (ความถี่เอกสารผกผัน)


11

ในแอปพลิเคชันการทำเหมืองข้อความวิธีการง่ายๆอย่างหนึ่งคือการใช้การแก้ปัญหาเพื่อสร้างเวกเตอร์เป็นการนำเสนอที่กระจัดกระจายของเอกสาร นี่เป็นเรื่องปกติสำหรับการตั้งค่าแบบแบตช์ซึ่งเป็นที่รู้จักทั้งคลังข้อมูล a-Priori เนื่องจากต้องการทั้งคลังข้อมูลฉันd ftfidfidf

ผมd(เสื้อ)=เข้าสู่ระบบ|D||{d:เสื้อd}|

โดยที่คือคำศัพท์,คือเอกสาร,คือคลังเอกสาร, และ (ไม่แสดง) เป็นพจนานุกรมd D Tเสื้อdDT

อย่างไรก็ตามโดยทั่วไปแล้วจะได้รับเอกสารใหม่เมื่อเวลาผ่านไป ทางเลือกหนึ่งคือการใช้ที่มีอยู่ต่อไปจนกว่าจะได้รับเอกสารใหม่จำนวนหนึ่งและทำการคำนวณใหม่ อย่างไรก็ตามเรื่องนี้ดูเหมือนจะไม่มีประสิทธิภาพ ไม่มีใครรู้ของรูปแบบการปรับปรุงที่เพิ่มขึ้นที่ (อาจจะประมาณ) มาบรรจบกับค่าถ้าข้อมูลทั้งหมดถูกเห็นล่วงหน้า? หรืออีกวิธีหนึ่งจะมีมาตรการอื่นที่จับความคิดเดียวกัน แต่สามารถคำนวณในแบบที่เพิ่มขึ้น?ผมd

นอกจากนี้ยังมีคำถามที่เกี่ยวข้องว่ายังคงใช้งานได้ดีเมื่อเวลาผ่านไป เนื่องจาก idf รวบรวมความคิดเกี่ยวกับความถี่ของคำศัพท์ของคลังข้อมูลมันเป็นไปได้ที่เอกสารเก่าในคลังข้อมูล (เช่นตัวอย่างเช่นคลังข้อมูลของฉันครอบคลุมบทความวารสารกว่า 100 ปี) เนื่องจากความถี่ของคำที่แตกต่างกันเปลี่ยนแปลงไปตามกาลเวลา ในกรณีนี้มันจริงอาจจะเหมาะสมที่จะโยนออกเอกสารเก่าเมื่อคนใหม่เข้ามาในผลการใช้หน้าต่างบานเลื่อนIDFน่าจะเป็นไปได้ที่เราสามารถเก็บเวกเตอร์ก่อนหน้านี้ทั้งหมดได้เมื่อใหม่แล้วถ้าเราต้องการเรียกเอกสารจาก 2463-2473 เราสามารถใช้คำนวณได้จากเอกสารในช่วงวันที่นั้น วิธีนี้เหมาะสมหรือไม่ฉันวันที่ฉันวันที่ฉันวันที่ผมdผมdผมdผมd

แก้ไข: มีปัญหาที่แยกต่างหาก แต่ที่เกี่ยวข้องเกี่ยวกับพจนานุกรมTเมื่อเวลาวิวัฒนาการจะมีคำศัพท์ใหม่ในพจนานุกรมที่ไม่เคยปรากฏมาก่อนดังนั้นจะต้องเติบโตและด้วยเหตุนี้ความยาวของเวกเตอร์ดูเหมือนว่าสิ่งนี้จะไม่เป็นปัญหาเนื่องจากศูนย์สามารถต่อท้ายเวกเตอร์เก่าได้| T | ฉันวันที่ฉันวันที่T|T|ผมdผมd


คำถามงี่เง่า: เป็นปัญหาในการจัดเก็บส่วนสำหรับแต่ละ t หรือไม่? อัตราส่วนของ | t | ถึง | d | ดูเหมือน (โดยทั่วไป) ใช่ไหม
steffen

ขออภัยอาจจะสมการไม่เป็นที่ชัดเจน - คือความถี่เอกสารผกผันของ T ระยะมากกว่าในเวลาที ดังนั้นในช่วงเวลาทีคุณจะต้องเวกเตอร์ของความยาว| T | คือขนาดของพจนานุกรม (ซึ่งอาจเปลี่ยนแปลง) ฉันจะแก้ไขผลกระทบนั้น ผมd(เสื้อ)เสื้อเสื้อ|T|
tdc

1
ฉันเข้าใจสมการ คำถามของฉันคือ: หากการจัดเก็บพจนานุกรมไม่มีปัญหาแล้ว: แทนที่จะเก็บ | T | idfs one stores | T | ตัวหาร (ของสมการ) + จำนวนเอกสาร การปรับปรุงที่เพิ่มขึ้นจะไม่มีปัญหาและ idf จะถูกคำนวณทันที ฉันมีความรู้สึกว่าฉันได้มองข้ามบางสิ่งบางอย่าง
steffen

ดังนั้นสิ่งที่คุณหมายถึงชอบให้เอกสารใหม่ถ้าเรามีค่าd : T dเราเพียงแค่เพิ่มหนึ่งในการหารสำหรับเสื้อ: เสื้อd *d* * * *d:เสื้อdเสื้อ:เสื้อd* * * *
TDC

แม่นยำ. ถ้าเป็นไปได้?
steffen

คำตอบ:


6

ตกลงขอบคุณ Steffen สำหรับความคิดเห็นที่เป็นประโยชน์ ฉันเดาว่าคำตอบนั้นง่ายมากในที่สุด ตามที่เขาพูดสิ่งที่เราต้องทำคือเก็บส่วนที่เป็นปัจจุบัน (เรียกว่า ):Z

Z(เสื้อ)=|{d:เสื้อd}|

ตอนนี้ได้รับเอกสารใหม่เราอัปเดตตัวหารโดยเพียงแค่:d* * * *

Z* * * *(เสื้อ)=Z(เสื้อ)+{1ถ้าเสื้อd* * * *0มิฉะนั้น

จากนั้นเราจะต้องคำนวณโดยพิจารณาจากเวกเตอร์i d fใหม่เสื้อ-ผมdผมd

ในทำนองเดียวกันเมื่อต้องการลบเอกสารเก่าเราจะลดค่าตัวเลขในลักษณะที่คล้ายกัน

นี้ไม่ได้หมายความว่าเราอาจจะต้องเก็บทั้งเมทริกซ์เช่นเดียวกับเสื้อ- ฉันd เมทริกซ์ (เสแสร้งต้องการหน่วยความจำ) หรือเราจะต้องคำนวณเสื้อ- ฉันวันที่คะแนนเมื่อมีความจำเป็น (เพิ่มขึ้นการคำนวณ ค่าใช้จ่าย) ฉันไม่สามารถมองเห็นได้ตลอดทางเสื้อเสื้อ-ผมdเสื้อ-ผมd

สำหรับส่วนที่สองของคำถามเกี่ยวกับวิวัฒนาการของเวกเตอร์เมื่อเวลาผ่านไปดูเหมือนว่าเราสามารถใช้วิธีการข้างต้นและเก็บชุดของ "แลนด์มาร์ค" zเวกเตอร์ (ส่วน) สำหรับช่วงวันที่ที่แตกต่างกัน (หรือเนื้อหาอาจ ย่อย) แน่นอนzเป็นเวกเตอร์ที่มีความหนาแน่นสูงของความยาวของพจนานุกรมดังนั้นการจัดเก็บจำนวนมากเหล่านี้จะต้องใช้หน่วยความจำมาก อย่างไรก็ตามเรื่องนี้น่าจะเป็นที่นิยมในการ recomputing ฉันวันที่เวกเตอร์เมื่อมีความจำเป็น (ซึ่งจะต้องใช้อีกครั้งเก็บเสื้อเมทริกซ์เช่นกันหรือแทน)ผมdZZผมdเสื้อ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.