Doc2Vec - วิธีติดฉลากย่อหน้า (gensim)


17

ฉันสงสัยว่าจะติดป้าย (แท็ก) ประโยค / ย่อหน้า / เอกสารด้วย doc2vec เป็น gensim ได้อย่างไร - จากมุมมองเชิงปฏิบัติ

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

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

คำตอบ:


10

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

ตัวสร้าง TaggedDocument ใช้รายการของแท็ก (ถ้าคุณ จำกัด ตัวเองเป็นธรรมดา int จากน้อยไปมากรุ่น Doc2Vec จะใช้ดัชนีเหล่านั้นเป็นดัชนีโดยตรงในอาเรย์สำรองข้อมูลและคุณจะประหยัดหน่วยความจำจำนวนมากที่จะใช้กับสตริง -> การค้นหาดัชนี ซึ่งอาจมีความสำคัญสำหรับชุดข้อมูลขนาดใหญ่ แต่คุณสามารถใช้สตริง doctags หรือแม้กระทั่งส่วนผสมของ int และสตริง doctags)

คุณจะต้องทดสอบกับสิ่งที่ดีที่สุดสำหรับความต้องการของคุณ

สำหรับงานการจัดหมวดหมู่บางครั้งวิธีที่ใช้งานได้ดีกว่าที่ฉันคาดไว้ก็คือการข้าม ID ข้อความต่อไปทั้งหมดและเพียงแค่ฝึกอบรมรุ่น Doc2Vec ด้วยตัวอย่างคลาสที่เป็นที่รู้จักพร้อมกับคลาสที่ต้องการเป็น doctags จากนั้นคุณจะได้ 'doc vectors' สำหรับ doctags ของชั้นเรียนไม่ใช่เอกสารทุกอัน - เป็นโมเดลที่มีขนาดเล็กกว่ามาก ต่อมาการอนุมานเวกเตอร์สำหรับข้อความใหม่ส่งผลให้เวกเตอร์มีความหมายใกล้เคียงกับเวกเตอร์ doc ชั้นที่เกี่ยวข้อง


ขอบคุณมากจริงๆ! นอกเหนือจากที่ฉันเริ่มเล่นกับ genim - ฉันอยากรู้ว่ามันเป็นไปได้ที่จะคำนวณความคล้ายคลึงกันระหว่าง doc (ไม่ว่าจะใช้แท็กที่ไม่ซ้ำกันหรือใช้ร่วมกัน) และคำ - นั่นสามารถทำได้ในประสบการณ์ของคุณหรือไม่?
B_Miner

1
โหมดการฝึกอบรมบางแบบสร้างคำและเวกเตอร์เอกสารภายใน 'พื้นที่เดียวกัน' และความคล้ายคลึงกันอาจมีความหมาย ดูตัวอย่างกระดาษนี้ - arxiv.org/abs/1507.07998 - ซึ่งแม้แต่เรียงลำดับของ 'analogy arithmetic' ที่เกี่ยวข้องกับ doc-vectors (Wikipedia article) และ word-vectors การฝึกอบรมในบทความนั้นเป็นเหมือนโหมด DBOW ของ Gensim พร้อมการฝึกคำศัพท์ข้ามไปพร้อมกัน: dm=0, dbow_words=1.
gojomo

ขอบคุณ @gojomo! ฉันได้เพิ่มแบบสอบถามเกี่ยวกับวิธีการทำสิ่งนี้ในรายการ gensim: groups.google.com/forum/#!topic/gensim/RLRfY6k3ulw
B_Miner

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

@user - ใช่มันเป็นไปได้และบางครั้งก็เป็นประโยชน์ในการทำเช่นนั้นแม้ว่ามันจะไม่จำเป็น
gojomo

9

doc2vecword2vecรูปแบบขั้นตอนวิธีการที่ได้รับจาก

ในword2vecไม่จำเป็นต้องติดป้ายคำเพราะทุกคำมีความหมายความหมายของตัวเองในคำศัพท์ แต่ในกรณีที่doc2vecมีความจำเป็นต้องระบุว่าจำนวนคำหรือประโยคที่สื่อความหมายเชิงความหมายเพื่อให้อัลกอริทึมสามารถระบุว่ามันเป็นนิติบุคคลเดียว ด้วยเหตุนี้เรากำลังระบุlabelsหรือtagsเป็นประโยคหรือย่อหน้าขึ้นอยู่กับระดับของความหมายที่สื่อความหมาย

หากเราระบุป้ายกำกับเดียวให้กับหลายประโยคในย่อหน้าหมายความว่าประโยคทั้งหมดในวรรคนั้นจำเป็นต้องสื่อความหมาย ในทางกลับกันถ้าเราระบุป้ายชื่อตัวแปรให้กับประโยคทั้งหมดในย่อหน้านั่นหมายความว่าแต่ละสื่อมีความหมายทางความหมายและอาจมีหรือไม่มีความคล้ายคลึงกัน

ในแง่ง่ายlabelหมายถึงความหมายของความหมายของบางสิ่งบางอย่าง


If we specify a single label to multiple sentences in a paragraph, it means that all the sentences in the paragraph are required to convey the meaning.ฉันไม่แน่ใจว่าฉันเข้าใจเรื่องนี้ถูกต้อง จากอัลกอริทึม POV มันจำเป็นต้องใช้ประโยคทั้งหมดที่มีแท็กเดียวกันสำหรับการกำหนดความหมายหรือประโยคทั้งหมดที่มีแท็กเดียวกันอธิบายสิ่งเดียวกันหรือไม่? ในกรณีแรกไม่มีประโยคเดียวก็พอเองในกรณีที่สองประโยคเดียวก็พอเพียง
ผู้ใช้

@ ผู้ใช้: มันเป็นกรณีที่สองจากอัลกอริทึม POV แท็กถูกกำหนดให้เป็นเอนทิตีซึ่งเมื่อใช้ในประโยคเดียวมันจับความหมายของคำทั้งหมด ในทำนองเดียวกันเมื่อใช้ในหลาย ๆ ประโยคมันยังรวบรวมคำศัพท์ในประโยคอื่นทั้งหมด
yazhi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.