อัลกอริทึมใดที่สามารถใช้เพื่อให้ได้การทำนายคำถัดไปที่ดีพอสมควร


10

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

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

คำตอบ:


9

ลองดูที่n-กรัม หนึ่ง n-gram เป็นลำดับของnคำ ในกรณีที่คุณต้องการnจะเป็น3เพราะคุณต้องสองและquery words resulting word3 กรัมหนึ่งตัวอย่างเช่น "ฉันเหนื่อย" และอีกหนึ่ง "ฉันมีความสุข"

สิ่งที่คุณต้องการคือชุดของ 3 กรัมที่รวบรวมจากภาษาเป้าหมายของคุณพูดภาษาอังกฤษ เนื่องจากคุณไม่สามารถรวบรวมทุกสิ่งที่เคยเขียนเป็นภาษาอังกฤษคุณต้องทำการเลือก corpusการเลือกของตำราตัวแทนที่เรียกว่า หากคลังข้อมูลของคุณดีจะบอกได้ว่าคำศัพท์เฉพาะสามคำนั้นเกิดขึ้นพร้อมกันเป็นภาษาอังกฤษบ่อยแค่ไหน จากนั้นคุณสามารถคำนวณความน่าจะเป็นแบบ 3 กรัม

การรวบรวมข้อมูลประเภทนี้เป็นส่วนที่ยากที่สุด เมื่อคุณมีรายการทั้งหมด 3 กรัมพร้อมความน่าจะเป็นคุณสามารถกรองรายการของคุณเป็น 3 กรัมทั้งหมดที่ขึ้นต้นด้วย "ฉัน" จากนั้นคุณเรียงลำดับรายการทั้งหมดตามความน่าจะเป็นและการคาดการณ์ของคุณ:


เอาล่ะและมีค่าที่เหมาะสมของnผลลัพธ์ที่ดีหรือไม่? ไม่จำเป็นต้องเป็นคำที่สามที่คาดการณ์ไว้เสมอไป
yati sagade

2
nผลตอบแทนที่มากขึ้นจะมีรายการที่ยาวกว่าซึ่งจะให้คำทำนายที่แม่นยำยิ่งขึ้น แต่ก็มีราคาแพงกว่าในการค้นหาดังนั้นจึงเป็นการแลกเปลี่ยนระหว่างความแม่นยำและเวลาในการคำนวณ
sebastiangeiger

2
นอกจากนี้คุณต้องมีคลังข้อมูลที่ใหญ่ขึ้นสำหรับ n-grams ที่มีขนาดใหญ่กว่าเพื่อเป็นประโยชน์ในทางปฏิบัติ
liori

4
หนอนี้เป็นอักษรโซ่มาร์คอฟ ... ไม่เพียงแค่นั้น แต่แท้จริงตัวอย่างในตำราที่สุด ...
จัสตินแอล

2

ดูเหมือนว่าโดเมนปัญหาคือชุดย่อยของการค้นหาสตริง โดยการขยายคำเพื่อให้มีช่องว่างสีขาวสามารถใช้การจับคู่สตริงฟัซซี่ได้ที่นี่

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

นี่คือลิงค์ไปสู่การรวบรวมอัลกอริธึมการค้นหาสตริงแบบคลุมเครือ

http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html


1

คุณกำลังมองหา (สถิติ) รูปแบบภาษา

ตัวแบบภาษาทางสถิติกำหนดความน่าจะเป็นให้กับลำดับของคำ m P(w_1,...,w_m)ด้วยการแจกแจงความน่าจะเป็น ...

ในการรู้จำเสียงและในการบีบอัดข้อมูลโมเดลดังกล่าวจะพยายามบันทึกคุณสมบัติของภาษาและเพื่อทำนายคำถัดไปในลำดับการพูด ...


ว้าว. แต่ฉันคิดว่าคำตอบของ @ sebastiangeiger อธิบายสิ่งนี้สำหรับ n = 3
yati sagade

คำตอบของเขาอธิบายถึงรูปแบบภาษาเฉพาะคือแบบจำลองแกรม มีรูปแบบภาษาอื่น ๆ เช่นรุ่นภาษาซินแทกติก ( goo.gl/ffPOg )
user3287
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.