“ ผู้จดจำเจตนา” ทำงานอย่างไร


11

Alexaของ Amazon , Mixของ Nuance และWit.aiของ Facebook ทั้งหมดใช้ระบบที่คล้ายกันเพื่อระบุวิธีแปลงคำสั่งข้อความให้เป็นเจตนา - นั่นคือสิ่งที่คอมพิวเตอร์จะเข้าใจ ฉันไม่แน่ใจว่าชื่อ "ทางการ" สำหรับสิ่งนี้คืออะไร แต่ฉันเรียกมันว่า "การจดจำเจตนา" โดยทั่วไปวิธีที่จะไปจาก "กรุณาตั้งค่าไฟของฉันถึง 50% ความสว่าง" lights.setBrightness(0.50)เพื่อ

วิธีที่พวกเขาระบุไว้คือการให้นักพัฒนาจัดทำรายการ "คำพูดตัวอย่าง" ซึ่งเกี่ยวข้องกับเจตนาและติดแท็กเลือกที่ตั้งของ "เอนทิตี" (โดยทั่วไปพารามิเตอร์) นี่คือตัวอย่างจาก Wit.ai:

ตัวอย่าง wit.ai

คำถามของฉันคือระบบเหล่านี้ทำงานอย่างไร เนื่องจากมันคล้ายกันมากฉันจึงคิดว่ามีงานน้ำเชื้อบางอย่างที่พวกเขาใช้ทั้งหมด ไม่มีใครรู้ว่ามันคืออะไร?

ที่น่าสนใจHoundifyใช้ระบบที่แตกต่างกันมากขึ้นเช่น ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]regexes: ฉันคิดว่ามันรวมเข้ากับการค้นหาลำแสงของระบบรู้จำเสียงในขณะที่ Alexa, Wit.ai และ Mix ดูเหมือนจะแยก Speech-> Text และ Text-> ระบบ Intent

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

แก้ไข 2: LSA เป็นหลักเปรียบเทียบคำที่ใช้ (Bag of Words) ในแต่ละย่อหน้าของข้อความ ฉันไม่เห็นว่ามันจะทำงานได้ดีมากสำหรับกรณีนี้เพราะสูญเสียการเรียงลำดับคำทั้งหมด แม้ว่าการเรียงคำอาจจะไม่สำคัญสำหรับคำสั่งประเภทนี้

แก้ไข 3: โมเดล Markov ที่ซ่อนหัวข้อดูเหมือนว่าพวกเขาน่าสนใจ


โพสต์นี้จะอธิบายการจำแนกเจตนาโดยละเอียด: mrbot.ai/blog/natural-language-processing/…
znat

ดูเหมือนว่าจะใช้วิธี "ถุงคำ" ที่ฉันพูดถึงในคำถามของฉัน โดยทั่วไปเพียงแค่เพิ่มคำเวกเตอร์ในประโยค ไม่สามารถทำงานได้ ส่วนต่อประสานของ Wit และ Nuance แสดงให้เห็นว่าพวกเขารับรู้ถึงสิ่งที่ไม่สามารถทำได้อย่างง่ายดาย กระเป๋าคำสูญเสียการเรียงลำดับดังนั้นบางอย่างเช่น "ตั้งค่าการเตือนสำหรับ 10 ที่ผ่านมา 5" จะแยกไม่ออกจาก "ตั้งค่าการเตือนสำหรับ 5 ที่ผ่านมา 10" จะต้องมีสิ่งที่เกิดขึ้นอีก
Timmmm

การแยกเอนทิตีเป็นปัญหาอื่นที่ลำดับสำคัญ หากคุณมีข้อมูลจำนวนมาก Rnn จะทำงานในชุดข้อมูลขนาดเล็กซึ่งบ่อยครั้งใน chatbots ฟิลด์สุ่มที่มีเงื่อนไขจะทำงานได้ดีมาก
znat

ตกลงดังนั้น ... ฉันกำลังมองหาคำตอบที่ละเอียดกว่า "RNN จะใช้งานได้" ระบบการเรียนรู้ต่อเนื่องที่ทันสมัยส่วนใหญ่ใช้ RNN เพื่อให้ดูเหมือน
Timmmm

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

คำตอบ:


4

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

ทรัพยากรที่ดีเป็นหลักสูตรโดย Jurafsky และแมนนิ่ง โดยเฉพาะอย่างยิ่งส่วนที่เกี่ยวกับความหมายและการตอบคำถามอาจช่วยในสิ่งที่คุณกำลังมองหา มีวิดีโอประกอบการบรรยายที่มีอยู่ใน youtube มีที่นี่


ฉันพบว่าส่วนแรกของคำตอบของคุณตลกมาก แต่มีข้อมูล
Diego

บางทีนี่อาจเป็นการแสดงความคิดเห็นที่ดีขึ้นตั้งแต่ที่คุณยอมรับมันไม่ตอบคำถาม
kbrose

2

โพสต์นี้มีวิธีการ โดยพื้นฐานแล้วพวกเขาใช้ถุงคำ - พวกเขาแปลงคำเป็นเวกเตอร์หร็อมแหร็มแล้วเพิ่มพวกเขา

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

อย่างไรก็ตามฉันทำข้อความกับ Alexa และมันค่อนข้างอ่อนไหวต่อการเปลี่ยนแปลงคำสั่งดังนั้นบางทีพวกเขาอาจใช้สิ่งที่คล้ายกัน


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