จะเพิ่มรายการคำที่เกี่ยวข้องตามคำหลักเริ่มต้นได้อย่างไร


19

ฉันเพิ่งเห็นคุณลักษณะเจ๋งที่ครั้งหนึ่งเคยมีอยู่ใน Google ชีต: คุณเริ่มต้นด้วยการเขียนคำหลักที่เกี่ยวข้องในเซลล์ต่อเนื่องกันพูดว่า: "สีฟ้า", "สีเขียว", "สีเหลือง" และจะสร้างคำหลักที่คล้ายกันโดยอัตโนมัติ สีอื่น ๆ ) ดูตัวอย่างเพิ่มเติมในวิดีโอ YouTubeนี้

ฉันต้องการทำซ้ำในโปรแกรมของฉันเอง ฉันกำลังคิดที่จะใช้ Freebase และมันจะใช้งานได้เช่นนี้อย่างสังหรณ์ใจ:

  1. ดึงรายการคำที่กำหนดใน Freebase;
  2. ค้นหา "ตัวหารร่วม" และสร้างตัวชี้วัดระยะทางตามสิ่งนี้
  3. จัดลำดับแนวคิดอื่นตาม "ระยะทาง" ของคำหลักเดิม
  4. แสดงแนวคิดที่ใกล้เคียงที่สุดต่อไป

เนื่องจากฉันไม่คุ้นเคยกับเรื่องนี้คำถามของฉันคือ:

  • มีวิธีที่ดีกว่าในการทำเช่นนี้?
  • มีเครื่องมืออะไรบ้างในแต่ละขั้นตอน?

ฉันเดาว่าสิ่งนี้จะขึ้นอยู่กับหัวข้อการเรียนรู้ในคลังข้อมูลขนาดใหญ่
tchakravarty

หากคุณต้องการค้นหาคำอธิบายของพวกเขาฉันเชื่อว่ามีบทความเกี่ยวกับวิธีการพื้นฐานที่เรียกว่า Google Sets
jamesmf

1
ปัญหานี้เรียกว่า "การขยายแบบสอบถาม"
เอ็ม

คำตอบ:


15

อัลกอริทึม word2vecอาจจะเป็นวิธีที่ดีที่จะดึงองค์ประกอบอื่น ๆ อีกมากมายสำหรับรายชื่อของคำที่คล้ายกัน มันเป็นอัลกอริทึม "การเรียนรู้ลึก" ที่ไม่ได้รับการเอาใจใส่ซึ่งก่อนหน้านี้ได้แสดงให้เห็นด้วยข้อมูลการฝึกอบรมบนพื้นฐานของวิกิพีเดีย

ขณะนี้Cและงูหลามการใช้งาน บทช่วยสอนนี้โดยRadim Řehůřekผู้แต่งไลบรารีการสร้างแบบจำลองหัวข้อ Gensimเป็นจุดเริ่มต้นที่ยอดเยี่ยม

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


5

คุณได้พิจารณาวิธีการตามความถี่ที่ใช้ประโยชน์จากการเกิดร่วมคำง่ายๆใน corpora หรือไม่? อย่างน้อยนั่นคือสิ่งที่ฉันเห็นคนส่วนใหญ่ใช้สำหรับสิ่งนี้ ฉันคิดว่ามันอาจจะครอบคลุมในหนังสือของ Manning และSchützeในเวลาสั้น ๆ และดูเหมือนว่าฉันจะจำบางสิ่งเช่นนี้ได้เมื่อทำการบ้านในโรงเรียนป ...

พื้นหลังเพิ่มเติมได้ที่นี่: http://nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

สำหรับขั้นตอนนี้:

จัดลำดับแนวคิดอื่นตาม "ระยะทาง" ของคำหลักเดิม

มีตัวชี้วัดความคล้ายคลึงกันทางความหมายหลายอย่างที่คุณสามารถดูได้ นี่คือลิงค์ไปยังสไลด์บางอันที่ฉันรวบรวมไว้สำหรับโครงการเรียนโดยใช้เมทริกความคล้ายคลึงกันสองสามอย่างนี้ใน WordNet: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity ไฟล์ PDF


3

นี่เป็นหนึ่งในปัญหาที่ดีที่ขอบเขตอาจแตกต่างไปจากการบ้านที่มอบหมายให้กับโครงการขนาดของ Google

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

จากนั้นคุณอาจพิจารณาความสัมพันธ์ที่ปรากฏในระยะสั้นจากคำฐานเท่านั้น คุณสามารถ (และควร) พิจารณาความสัมพันธ์บนพื้นฐานของคลังข้อมูลทั่วไป (เช่น Wikipedia) และข้อมูลเฉพาะของผู้ใช้ (เช่นอีเมลของเขา)

ไม่นานคุณจะมีมาตรการที่เกี่ยวข้องมากมายเมื่อมาตรการทั้งหมดดีและมีข้อได้เปรียบเหนือผู้อื่น

เพื่อรวมมาตรการดังกล่าวฉันต้องการลดปัญหาให้เป็นปัญหาการจำแนกประเภท

คุณควรสร้างชุดข้อมูลของคำศัพท์และติดป้ายกำกับว่า "สัมพันธ์" ในการสร้างชุดข้อมูลที่มีป้ายกำกับขนาดใหญ่คุณสามารถ:

  • ใช้แหล่งที่มาของคำที่เกี่ยวข้องที่รู้จัก (เช่นหมวดหมู่ Wikipedia เก่าดี) เพื่อผลบวก
  • คำที่ไม่รู้จักที่เกี่ยวข้องส่วนใหญ่ไม่เกี่ยวข้อง

จากนั้นใช้มาตรการทั้งหมดที่คุณมีเป็นคุณสมบัติของคู่ ตอนนี้คุณอยู่ในโดเมนของปัญหาการจำแนกประเภทภายใต้การดูแล สร้างตัวจําแนกในชุดข้อมูลประเมินตามความต้องการของคุณและรับการวัดความคล้ายคลึงกันที่เหมาะกับความต้องการของคุณ

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