การสร้างคำตอบแบบสอบถาม

เผยแพร่แล้ว: 2022-05-05

สิทธิบัตรของ Google ที่ได้รับเมื่อเร็วๆ นี้มักเกี่ยวข้องกับการสร้างคำตอบสำหรับคำถาม และสิทธิบัตรนี้ยังแนะนำแนวคิดของข้อจำกัดเพื่อช่วยตอบคำถาม

การใช้ข้อจำกัดในการตอบคำถาม

สิทธิบัตรนี้ถามคำถามเกี่ยวกับเนื้อหาที่เกี่ยวข้องกับข้อเท็จจริงเกี่ยวกับหน่วยงานที่มีการเพิ่มคำถาม

เอกสารเกี่ยวกับการใช้ข้อจำกัดสำหรับการตอบแบบสอบถามมีดังนี้:

    GRIP: คำอธิบายตามข้อจำกัดของคำตอบที่หายไปสำหรับแบบสอบถามกราฟ
    การตอบคำถามโดยใช้ข้อจำกัดความพึงพอใจ: QA-by-Dossier-with-Constraints

ที่น่าสนใจคือเอกสารแรกอ้างถึง Google Knowlege Vault เป็นข้อมูลอ้างอิง น่าจะเป็นเพราะเน้นที่การตอบคำถามที่ถูกต้องโดยใช้ข้อจำกัด

เนื่องจากสิทธิบัตรนี้เน้นที่ Semantic SEO เป็นอย่างมาก มันทำให้ฉันนึกถึงสิทธิบัตรอื่นๆ ของ Google ที่เกี่ยวกับหัวข้อนั้น รวมถึงสองสิทธิบัตรนี้ซึ่งควรค่าแก่การอ่านอย่างละเอียด:

  • การกระทบยอดกราฟความรู้ของ Google
  • การดึงข้อมูลเอนทิตีสำหรับกราฟความรู้ที่ Google

สิทธิบัตรให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการทำงานของเอนทิตีและแอตทริบิวต์ของเอนทิตี วิธีการใช้ทูเพิลในการค้นหากราฟ และการดูที่ Semantic SEO

การสร้างคำตอบแบบสอบถามโดยการให้ข้อเท็จจริงจากฐานข้อมูล

ระบบการค้นหาอาจสร้างการตอบสนองต่อการสืบค้นตามข้อเท็จจริงโดยการให้ข้อเท็จจริงจากฐานข้อมูล

ข้อเท็จจริงเหล่านี้อาจจัดเก็บไว้ในกราฟที่สามารถอัปเดตได้แบบเรียลไทม์

คำตอบดังกล่าวอาจจัดรูปแบบเป็นรายการผลการค้นหาแทนที่จะเป็นประโยค

เมื่อผู้ใช้ถามคำถามที่เป็นข้อเท็จจริง เช่น ผ่านเสียงไปยังระบบโต้ตอบ อาจเป็นการดีที่จะตอบคำถามอย่างเป็นธรรมชาติ

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

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

การรับคำตอบแบบสอบถามระบุคุณสมบัติของเอนทิตี

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

การดำเนินการจะรวมถึงการเข้าถึงเทมเพลตของผู้สมัครเพื่อตอบคำถามตามแอตทริบิวต์ของเอนทิตี เทมเพลตของผู้สมัครแต่ละคนมีฟิลด์ โดยที่แต่ละพื้นที่จะเชื่อมโยงกับข้อจำกัดอย่างน้อยหนึ่งข้อ

จากนั้น การดำเนินการจะรวมถึงการรับชุดข้อมูลที่ให้คำตอบของคิวรีและเลือกเทมเพลตจากคอลเล็กชันของเทมเพลตของผู้สมัคร เทมเพลตที่เลือกมีจำนวนฟิลด์ที่สำคัญที่สุดพร้อมข้อจำกัดที่ตรงตามชุดข้อมูล

ความหมายสามเท่าที่เกี่ยวข้องกับเอนทิตี

ชุดข้อมูลอาจเป็นชุดของเอนทิตี-แอตทริบิวต์-ค่าสามเท่า

การดำเนินการเพิ่มเติมรวมถึงการสร้างวลีโดยการเพิ่มชุดข้อมูลลงในฟิลด์ของเทมเพลตที่เลือก เพื่อให้คำประกอบด้วยคำตอบของแบบสอบถาม

วลีที่เป็นประโยคหรือส่วนหนึ่งของประโยค สุดท้าย การดำเนินการรวมถึงการสื่อสารคำไปยังอุปกรณ์ไคลเอ็นต์

วลีอาจได้รับการสื่อสารเป็นสัญญาณเสียงที่สอดคล้องกับคำ

ข้อจำกัดอาจรวมถึง:

  • ประเภทข้อจำกัด
  • ข้อจำกัดชั่วคราว
  • ข้อจำกัดทางเพศ
  • ข้อจำกัดความสัมพันธ์
  • ข้อ จำกัด เอกพจน์/พหูพจน์
  • หน่วยวัดข้อจำกัด
  • ข้อจำกัดของตัวกำหนด

การใช้งานบางอย่างเกี่ยวข้องกับการรับชุดข้อมูลจำนวนมากที่ตอบสนองต่อแอตทริบิวต์เดียวในแบบสอบถาม

การดำเนินการเพิ่มเติมรวมถึง:

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

ซึ่งอาจเกี่ยวข้องกับคำตอบของแบบสอบถามที่มีคุณลักษณะมากมาย

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

ข้อดีของกระบวนการนี้อาจรวมถึง:

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

สิทธิบัตรการสร้างคำตอบสำหรับคำถามนี้อยู่ที่

การสร้างคำตอบแบบสอบถาม
นักประดิษฐ์: Engin Cinar Sahin, Vinicius J. Fortuna และ Emma S. Persky
ผู้รับมอบหมาย: Google LLC
สิทธิบัตรสหรัฐอเมริกา: 11,321,331
ได้รับ: 3 พฤษภาคม 2022
ยื่น: 23 กรกฎาคม 2018

เชิงนามธรรม

เซิร์ฟเวอร์ได้รับคำตอบของแบบสอบถามที่ระบุแอตทริบิวต์ของเอนทิตี

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

เซิร์ฟเวอร์รับชุดข้อมูลและคำตอบของแบบสอบถาม และเลือกเทมเพลตจากชุดของเทมเพลตที่สมัคร

เทมเพลตที่เลือกมีจำนวนฟิลด์มากที่สุดพร้อมข้อจำกัดที่สอดคล้องกับชุดข้อมูล

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

สุดท้าย เซิร์ฟเวอร์จะสื่อสารวลีดังกล่าวไปยังอุปกรณ์ไคลเอ็นต์

การแปลงข้อเท็จจริงจากฐานข้อมูลเป็นประโยค

เมื่อผู้ใช้ถามคำถามที่เป็นข้อเท็จจริง เครื่องมือค้นหาอาจให้คำตอบของแบบสอบถามโดยการเข้าถึงฐานข้อมูล

บางระบบ เช่น ระบบสนทนาด้วยเสียง อนุญาตให้ผู้ใช้วางแผนการสืบค้นเป็นคำถามภาษาธรรมชาติ (เช่น "ใครคือประธานาธิบดีของญี่ปุ่น?")

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

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

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

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

การเข้าถึงเทมเพลตของผู้สมัครเพื่อสร้างคำตอบแบบสอบถามตามแอตทริบิวต์หรือแอตทริบิวต์

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

ตัวอย่างเช่น หากแอตทริบิวต์คือ "อายุ" เอ็นจิ้นคำตอบอาจได้รับเทมเพลตที่มีวันเกิดและอายุ (เช่น {<entity> เกิดเมื่อ <date> และปัจจุบัน <value> ปี}) เทมเพลต ที่รวมเฉพาะอายุ (เช่น {<entity> is <value> years old}) และเทมเพลตที่มีวันเดือนปีเกิดและวันที่เสียชีวิต (เช่น {<entity> เกิดเมื่อ <date> และเสียชีวิตเมื่อ < /date>})

ตามที่อธิบายไว้ในรายละเอียดเพิ่มเติมด้านล่าง ส่วนของเทมเพลตที่อยู่ใน “< >” (เช่น ฟิลด์) อาจเชื่อมโยงกับข้อจำกัดต่างๆ เกี่ยวกับข้อมูลที่เก็บไว้ได้

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

ระบบค้นหากราฟข้อมูล

ระบบอาจคุ้นเคยกับการใช้เครื่องมือค้นหาสำหรับกราฟข้อมูลโดยใช้เทคนิคที่อธิบายไว้ที่นี่

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

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

นอกจากนี้ ระบบการจัดทำดัชนี ระบบค้นหา และกลุ่มดัชนีอาจถูกนำมาใช้ในคอมพิวเตอร์ส่วนบุคคล เช่น คอมพิวเตอร์แล็ปท็อป

ระบบค้นหากราฟข้อมูลอาจรวมถึงที่เก็บข้อมูลแบบกราฟ กราฟข้อมูลดังกล่าวเก็บโหนดและขอบซึ่งสามารถสร้างกราฟได้

โหนดอาจเรียกว่าเอนทิตี และขอบอาจเรียกว่าความสัมพันธ์ระหว่างสองเอนทิตี ความสัมพันธ์ดังกล่าวอาจถูกจัดเก็บไว้หลายวิธี

ที่เก็บข้อมูลแบบกราฟจะเก็บข้อมูลทูเพิลสามตัวที่เป็นตัวแทนของเอนทิตีและความสัมพันธ์ในตัวอย่างเดียว

Triple Tuples เป็นตัวแทนของหน่วยงานและความสัมพันธ์

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

ตัวอย่างหนึ่งของ Triple คือ เอนทิตี Woody Allen เป็นประธาน (หรือเอนทิตี) ความสัมพันธ์ทำหน้าที่เป็นเพรดิเคต (หรือแอตทริบิวต์) และเอนทิตี Annie Hall เป็นวัตถุ (หรือค่า)

แน่นอน กราฟข้อมูลที่มีเอนทิตีจำนวนมากและแม้แต่ความสัมพันธ์ในจำนวนที่จำกัดก็อาจมีหลายพันล้านเท่า

ระบบการทำดัชนีสามารถรวมถึงโปรเซสเซอร์ที่กำหนดค่าให้รันคำสั่งที่สั่งการได้ของเครื่อง หรือชิ้นส่วนของซอฟต์แวร์ เฟิร์มแวร์ หรือการผสมผสานของสิ่งนั้น

ค้นหาคำตอบของคำถาม

ระบบการค้นหาอาจรวมถึงเซิร์ฟเวอร์ (ไม่แสดง) ที่รับข้อความค้นหาจากผู้ใช้ของลูกค้า และจัดเตรียมการสืบค้นข้อมูลเหล่านั้นให้กับระบบการค้นหา

ระบบการค้นหาอาจมีหน้าที่ในการค้นหากราฟข้อมูลและแหล่งข้อมูลอื่นๆ เช่น คลังเอกสารจากอินเทอร์เน็ตหรืออินทราเน็ต ในการตอบสนองต่อข้อความค้นหา

ตัวอย่างเช่น ระบบการค้นหาอาจได้รับแบบสอบถามจากไคลเอนต์ เช่น ไคลเอนต์ ทำการประมวลผลแบบสอบถาม และส่งแบบสอบถามไปยังคลัสเตอร์ดัชนีและคลัสเตอร์การทำดัชนีอื่น ๆ ที่เก็บดัชนีสำหรับการค้นหาแหล่งข้อมูลอื่น

ระบบการค้นหาอาจมีโมดูลที่รวบรวมผลลัพธ์จากแหล่งที่มาทั้งหมดและให้ผลลัพธ์ที่รวบรวมไว้กับไคลเอนต์

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

ระบบการค้นหาอาจสื่อสารกับลูกค้าผ่านเครือข่าย

คลัสเตอร์ดัชนีในการค้นหาคำตอบแบบสอบถาม

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

จำนวนอุปกรณ์คำนวณที่ประกอบด้วยคลัสเตอร์ดัชนีอาจแตกต่างกันไป และเพื่อความกระชับ คลัสเตอร์ดัชนีจะแสดงเป็นเอนทิตีเดียว

คลัสเตอร์ดัชนีแต่ละคลัสเตอร์สามารถรวมโปรเซสเซอร์ที่กำหนดค่าให้รันคำสั่งที่สั่งการได้ของเครื่อง หรือชิ้นส่วนของซอฟต์แวร์ เฟิร์มแวร์ หรือการผสมผสานของสิ่งนั้น

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

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

ตัวแก้ไขแบบสอบถามที่เข้าถึงดัชนีเพื่อดึงผลลัพธ์ที่ตอบสนองต่อการสืบค้น

คลัสเตอร์ดัชนีอาจรวมถึงโมดูล เช่น ตัวแก้ไขแบบสอบถาม ที่เข้าถึงดัชนีเพื่อดึงผลลัพธ์ที่ตอบสนองต่อแบบสอบถาม

ตัวแก้ไขข้อความค้นหาอาจเป็นส่วนหนึ่งของระบบการค้นหาหรืออาจกระจายระหว่างระบบค้นหาและคลัสเตอร์ดัชนี

แบบสอบถามที่ซับซ้อนมากขึ้นเรื่อย ๆ และคำตอบแบบสอบถาม

ข้อความค้นหาง่ายๆ ที่เกี่ยวข้องกับแอตทริบิวต์เดียว ("อายุ") และให้ผลลัพธ์เป็นคำตอบสามข้อเดียว

ตัวอย่างของข้อความค้นหาง่ายๆ ที่เกี่ยวข้องกับแอตทริบิวต์เดียว ("การแต่งงาน") แต่ให้ผลลัพธ์ในคำตอบสามข้อหลายข้อ

ตัวอย่างของข้อความค้นหาที่ซับซ้อนซึ่งมีคุณลักษณะสองประการ ("บ้านเกิดและโรงเรียนเก่า") และส่งผลให้มีคำตอบสามข้อหลายข้อ

ระบบตัวอย่างที่สร้างประโยคเพื่อตอบคำถามที่เป็นข้อเท็จจริง

ระบบประกอบด้วยอุปกรณ์ไคลเอนต์ ระบบค้นหา คลัสเตอร์ดัชนี และเอ็นจินคำตอบ

เอนทิตีสามารถนำไปใช้เป็นส่วนหนึ่งของระบบได้

ผู้ใช้เริ่มต้นการสืบค้นที่มีเงื่อนไขการสืบค้นโดยใช้อุปกรณ์ไคลเอนต์

ผู้ใช้อาจจัดรูปแบบข้อความค้นหาเดิมเป็นประโยคได้

โต้ตอบกับระบบโต้ตอบด้วยเสียง

ผู้ใช้อาจโต้ตอบกับอุปกรณ์ไคลเอนต์โดยใช้ระบบโต้ตอบด้วยเสียง

ตัวอย่างเช่น ผู้ใช้อาจใช้คำถามว่า "Woody Allen อายุเท่าไร" ลงในไมโครโฟนของอุปกรณ์ไคลเอ็นต์

อุปกรณ์ไคลเอนต์อาจทำการรู้จำเสียงเพื่อแปลงคำพูดเป็นการถอดเสียงแล้วส่งการถอดความไปยังเครื่องมือค้นหา

อีกทางหนึ่ง อุปกรณ์ไคลเอนต์อาจส่งข้อมูลเสียงพูดที่เข้ารหัสคำพูด

ระบบค้นหาได้รับข้อความค้นหา (เช่น "Woody Allen อายุเท่าไร") จากอุปกรณ์ไคลเอ็นต์

หากข้อความค้นหาถูกเข้ารหัสเป็นข้อมูลเสียงพูด ระบบค้นหาอาจแปลงข้อมูลเสียงพูดเป็นการถอดเสียงเป็นคำ

ระบบการค้นหาจะแยกวิเคราะห์และจัดรูปแบบข้อความค้นหาดั้งเดิมเป็น <entity; รูปแบบแอตทริบิวต์> (เช่น <woody Allen/age<) โดยใช้ ตัวอย่างเช่น เครื่องมือแยกวิเคราะห์ภาษาธรรมชาติที่เหมาะสม

ระบบค้นหาจะส่งแบบสอบถามที่จัดรูปแบบไปยังคลัสเตอร์ดัชนี

คลัสเตอร์ดัชนีเข้าถึงดัชนีเพื่อดึงผลลัพธ์ที่ตอบสนองต่อแบบสอบถาม

ตอบคำถามในรูปแบบของ Triples

ผลลัพธ์เหล่านี้อาจเป็นชุดข้อมูลที่เป็นข้อเท็จจริงในรูปแบบของสามเท่า (เช่น </woody><woody Allen/born on/Dec. 1,>

คลัสเตอร์ดัชนีจะส่งแบบสอบถามที่มีรูปแบบ (เช่น </woody><woody Allen/age> และข้อมูลข้อเท็จจริงที่ตอบคำถาม (เช่น </woody><woody Allen/born on/Dec. 1, 1935>) สู่เครื่องยนต์คำตอบ

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

เอ็นจิ้นคำตอบสร้างคำตอบดังนี้ ขั้นแรก เอ็นจินคำตอบจะรับแอตทริบิวต์หรือแอตทริบิวต์จากคิวรีที่มีรูปแบบ

จากนั้น โปรแกรมตอบจะใช้แอตทริบิวต์หรือแอตทริบิวต์เพื่อเข้าถึงเทมเพลตประโยคหรือวลีของผู้สมัครจากฐานข้อมูลเทมเพลต

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

สุดท้าย เอ็นจินคำตอบจะกรอกข้อมูลในฟิลด์ในเทมเพลตที่เลือกโดยใช้ข้อมูลข้อเท็จจริง

เอ็นจินคำตอบที่ได้รับคุณสมบัติหรือคุณสมบัติ

ในรายละเอียดเพิ่มเติม เอ็นจินคำตอบจะรับแอตทริบิวต์หรือแอตทริบิวต์จากคิวรีที่จัดรูปแบบก่อนโดยแยกวิเคราะห์คิวรี ตัวอย่างเช่น สมมติว่าแบบสอบถามมีรูปแบบเป็นคู่ <entity/attribute> เอ็นจินคำตอบจะแยกส่วนแอตทริบิวต์ของคู่

ในบางกรณี แบบสอบถามที่จัดรูปแบบอาจมีแอตทริบิวต์หลายรายการ ตัวอย่างเช่น เคียวรีที่มีรูปแบบอาจอยู่ในรูปแบบของ <entity/attribute/attribute> ในกรณีดังกล่าว เอ็นจินคำตอบอาจแยกแต่ละแอตทริบิวต์ออกจากการสืบค้น

ถัดไป เอ็นจินคำตอบจะเข้าถึงเทมเพลตของผู้สมัครสำหรับแต่ละแอตทริบิวต์ในคิวรีจากฐานข้อมูลเทมเพลต

แต่ละเทมเพลตอาจสอดคล้องกับประโยคเต็มหรือบางส่วนของประโยค (เช่น วลี)

แต่ละเทมเพลตประกอบด้วยฟิลด์ (แสดงเป็นส่วนในวงเล็บ "< >") ที่สามารถแทรกข้อมูลข้อเท็จจริงได้

ตัวอย่างเช่น เทมเพลตอาจเป็น "วันที่ <วันที่> <entity> แต่งงานกับ <value>" เทมเพลตสามารถสร้างได้ด้วยตนเองหรือตามอัลกอริทึม

เทมเพลตผู้สมัครในภาษาของผู้ใช้

เอ็นจินคำตอบจะระบุภาษาของผู้ใช้และเลือกเทมเพลตที่เป็นตัวเลือกในภาษาของผู้ใช้

ตัวอย่างเช่น เอ็นจิ้นคำตอบอาจได้รับข้อมูลจากเครื่องมือค้นหาที่ระบุภาษาของข้อความค้นหาดั้งเดิม ข้อดี การกำหนดค่าดังกล่าวอาจอำนวยความสะดวกในการทำให้คำตอบเป็นสากล

ฟิลด์อาจเชื่อมโยงกับข้อจำกัดที่ควบคุมข้อมูลที่แต่ละฟิลด์อาจมี

ตามที่ใช้ในข้อกำหนดนี้ สัญกรณ์ "<X/Y>" บ่งชี้ฟิลด์ที่มีข้อจำกัด "X" และข้อจำกัด "Y"

ข้อจำกัดตัวอย่างอาจรวมถึงข้อจำกัดประเภท ข้อจำกัดชั่วคราว ข้อจำกัดทางเพศ ข้อจำกัดความสัมพันธ์ ข้อจำกัดเอกพจน์/พหูพจน์ หน่วยของข้อจำกัดการวัด และข้อจำกัดดีเทอร์มิแนนต์

ข้อ จำกัด ที่แตกต่างกันอาจต้องใช้ข้อมูลที่แตกต่างกัน

ข้อจำกัดประเภทอาจต้องการข้อมูลบางประเภท เช่น ข้อจำกัด <วันที่> อาจต้องการวันที่ ข้อจำกัด <entity> อาจต้องการชื่อเอนทิตีหรือตัวระบุอื่นๆ และ ข้อจำกัดอาจต้องใช้ตัวเลข

ข้อจำกัดชั่วคราวอาจต้องการ ตัวอย่างเช่น วันที่หรือเวลาเป็นอดีตหรือในอนาคต เช่น ฟิลด์ที่มี <date/past>อาจต้องการให้ฟิลด์รวมวันที่ในอดีต ข้อจำกัดทางเพศอาจต้องการ เช่น เพศชายหรือเพศหญิง

ข้อจำกัดของความสัมพันธ์อาจต้องการ ตัวอย่างเช่น ประเภทของความสัมพันธ์กับเอนทิตีอื่น เช่น ฟิลด์ที่มี <entity/spouse> อาจกำหนดให้ฟิลด์นั้นรวมเอนทิตีที่เป็นคู่สมรสของเอนทิตีอื่น ข้อจำกัดเอกพจน์/พหูพจน์อาจต้องการ ตัวอย่างเช่น ข้อมูลในฟิลด์จะต้องอยู่ในรูปแบบเอกพจน์หรือพหูพจน์

ตัวอย่างเช่น หน่วยของข้อจำกัดการวัด อาจต้องการให้ข้อมูลในฟิลด์ถูกวัดในหน่วยการวัดเฉพาะ (เช่น นิ้ว ฟุต เซนติเมตร เมตร ฯลฯ) ข้อจำกัดดีเทอร์มิแนนต์อาจต้องการ ตัวอย่างเช่น คำว่า "the" นำหน้าฟิลด์

แต่ละแอตทริบิวต์ในแบบสอบถามอาจทำหน้าที่เป็นคีย์สำหรับการเข้าถึงชุดของเทมเพลตตัวเลือก ตัวอย่างเช่น คุณลักษณะ "อายุ" อาจส่งผลให้มีการเรียกค้นแม่แบบ เทมเพลตตัวอย่างรวมถึงเทมเพลตแรก " เกิดเมื่อ <date/past&glt; และปัจจุบันมีอายุ <value> ปี" ซึ่งต้องมีชื่อเอนทิตีสำหรับ <entity&lgt; สนามวันที่ในอดีตสำหรับ ฟิลด์ และตัวเลข (เช่น อายุ) สำหรับฟิลด์ <value<

เทมเพลตที่สอง "<entity> ปัจจุบัน <value< ปี" ต้องการชื่อเอนทิตีสำหรับฟิลด์ <entity> และตัวเลข (เช่น อายุ) สำหรับฟิลด์ <value>

เทมเพลตที่สาม “<entity> เกิดเมื่อ <date/past> และเสียชีวิตเมื่อ <date/past>” ต้องมีชื่อเอนทิตีสำหรับฟิลด์ </entity><entity> และสองวันที่ที่ผ่านมาสำหรับ <date/ อดีต> ฟิลด์

เทมเพลตหลายรายการสำหรับแอตทริบิวต์ที่กำหนด

ข้อดี การมีเทมเพลตหลายแบบสำหรับแอตทริบิวต์ที่กำหนดช่วยให้การใช้งานรองรับข้อเท็จจริงบางส่วนได้ ตัวอย่างเช่น สำหรับเทมเพลตอายุ หากทราบปีเกิดแต่ไม่ทราบวันที่ระบุ เทมเพลตที่เหมาะสมอาจเป็น “</entity><entity>เกิดใน <ปี/อดีต>” การให้เทมเพลตหลายแบบสำหรับแอตทริบิวต์ที่กำหนดยังช่วยให้เปลี่ยนกาลสำหรับข้อเท็จจริงส่วนต่างๆ (เช่น "Woody Allen gets married" และ "Woody Allen got married")

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

เอ็นจินคำตอบอาจกำหนดด้วยว่าข้อจำกัดและฟิลด์ของเทมเพลตที่เลือกได้รับการตอบสนองหรือไม่ เอ็นจินคำตอบอาจเลือกเทมเพลตที่มีจำนวนฟิลด์สูงสุดพร้อมข้อจำกัดที่ได้รับตามข้อเท็จจริง (เช่น เทมเพลตที่มีข้อมูลมากที่สุด) ข้อมูลข้อเท็จจริงคือ “<woody Allen/born on/Dec. 1 พ.ศ. 2478>”

ในตัวอย่างนี้ เทมเพลตตัวเลือกแรกคือ “<entity> เกิดเมื่อ <date/past> และปัจจุบันคือ ปี." แม่แบบนี้มี ฟิลด์ <วันที่/อดีต> และฟิลด์ <ค่า> ข้อมูลข้อเท็จจริงให้เอนทิตีที่ตรงตามข้อจำกัดฟิลด์ <entity> และวันที่ในอดีตที่ตรงตามข้อกำหนดของฟิลด์ <entity> ข้อจำกัดของฟิลด์

เอ็นจิ้นคำตอบอาจได้รับค่าตามข้อมูลข้อเท็จจริง กลไกคำตอบอาจคำนวณค่าอายุเพื่อให้เป็นไปตามข้อจำกัดฟิลด์ <value< ตามวันเกิด เนื่องจากข้อมูลข้อเท็จจริงเป็นไปตามข้อจำกัดทั้งหมดสำหรับฟิลด์ในเทมเพลตแรก เอ็นจินคำตอบจะเลือกเทมเพลตแรก

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

หลังจากเลือกเทมเพลตแล้ว เอ็นจินคำตอบจะสร้างประโยคหรือวลีตามเทมเพลต ตัวอย่างเช่น เอ็นจินคำตอบอาจแทนที่ฟิลด์ในเทมเพลตด้วยข้อมูลที่เหมาะสมจากข้อมูลข้อเท็จจริง เอ็นจิ้นคำตอบสร้างประโยคที่ว่า “Woody Allen เกิดเมื่อวันที่ 1 ธันวาคม 1935 และปัจจุบันมีอายุ 77 ปี” โดยใช้เทมเพลตที่เลือก

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

ระบบที่สร้างประโยคเพื่อตอบแบบสอบถามข้อเท็จจริง

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

อุปกรณ์ไคลเอนต์เริ่มต้นการสืบค้นที่มีเงื่อนไขการสืบค้น

ตัวอย่างเช่น ผู้ใช้สามารถป้อนข้อความค้นหา "Who was Woody Allen married to" ลงในเว็บเบราว์เซอร์ที่อุปกรณ์ไคลเอ็นต์

ระบบค้นหาได้รับข้อความค้นหา (เช่น “ใครคือ Woody Allen แต่งงานด้วย”) จากอุปกรณ์ไคลเอนต์

ระบบค้นหาจะแยกวิเคราะห์และจัดรูปแบบข้อความค้นหาต้นฉบับเป็น an รูปแบบ (เช่น ) โดยใช้ตัวอย่างเช่น เครื่องมือแยกวิเคราะห์ภาษาธรรมชาติที่เหมาะสม

ในตัวอย่างนี้ แบบสอบถามที่มีรูปแบบประกอบด้วยตัวระบุของเอนทิตี (เช่น Woody Allen) ประเภทของเอนทิตี (เช่น บุคคล) และแอตทริบิวต์ (เช่น การแต่งงาน)

ข้อมูลประเภทอาจถูกนำมาใช้เพื่อสร้าง meta-template ตามที่อธิบายไว้ด้านล่าง ระบบค้นหาจะส่งแบบสอบถามที่จัดรูปแบบไปยังคลัสเตอร์ดัชนี

คลัสเตอร์ดัชนีเข้าถึงดัชนีเพื่อดึงชุดข้อมูลข้อเท็จจริงที่ตอบสนองต่อการสืบค้น

คลัสเตอร์ดัชนีเข้าถึงดัชนี เพื่อดึงชุดข้อมูล p\of ข้อเท็จจริงที่ตอบสนองต่อการสืบค้น ผลลัพธ์เหล่านี้รวมถึงอย่างน้อยสองสามเท่า (เช่น และ <louise Lasser/wife/1966/1970>)

จากนั้นคลัสเตอร์ดัชนีจะส่งแบบสอบถามที่มีรูปแบบ (เช่น <woody Allen/age> และข้อมูลข้อเท็จจริงที่ตอบคำถาม (เช่น <Soon-Yi Previn/wife/1997> และ <louise Lasser/wife/1966/1970> ) ไปยังเครื่องตอบรับ

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

ขั้นแรก เอ็นจินคำตอบรับข้อมูลประเภทจากคิวรีที่มีรูปแบบ (เช่น บุคคล)

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

ตามที่อ้างถึงในข้อกำหนดนี้ เทมเพลตเมตาคือเทมเพลตที่มีฟิลด์ที่กำหนดค่าให้มีเทมเพลตอื่น

แต่ละเทมเพลตเมตาของผู้สมัครจะมีฟิลด์สำหรับชื่อหรือตัวระบุของเอนทิตีและอย่างน้อยหนึ่งฟิลด์สำหรับการเพิ่มเท็มเพลตอื่นๆ

เทมเพลตเหล่านี้ช่วยให้กลไกคำตอบสร้างประโยคเพื่อรวมวลีต่างๆ ที่มีข้อมูลเกี่ยวกับบุคคล

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

เทมเพลตวลีเหล่านี้ได้รับการออกแบบเพื่อรวมเข้ากับเทมเพลตเมตา

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

ตัวอย่างเช่น แอตทริบิวต์ "การแต่งงาน" อาจส่งผลให้มีการค้นหาเทมเพลตวลี

เทมเพลตวลีตัวอย่างประกอบด้วยเทมเพลตแรก "ได้แต่งงานกับ <entity/spouse> ตั้งแต่ <date/past>" ซึ่งต้องมีเอนทิตีที่แต่งงานกับเอนทิตีในแบบสอบถามที่จัดรูปแบบสำหรับ สนามและวันที่ในอดีตสำหรับ สนาม.

เทมเพลตที่สอง "แต่งงานกับ <entity/spouse>" ต้องการเอนทิตีที่แต่งงานกับเอนทิตีในแบบสอบถามที่จัดรูปแบบสำหรับ สนาม.

เทมเพลตที่สาม "แต่งงานแล้ว" ไม่ต้องการข้อมูลเพิ่มเติม

เทมเพลตที่สี่ “แต่งงานกับ <entity/spouse > จาก <date/past > ถึง <date/past >” ต้องการเอนทิตีที่แต่งงานกับเอนทิตีในแบบสอบถามที่จัดรูปแบบสำหรับ และสองวันที่ในอดีตสำหรับฟิลด์ <date/past> เทมเพลตที่ห้า “แต่งงานกับ <นิติบุคคล/คู่สมรส>” จำเป็นต้องมีเอนทิตีที่แต่งงานกับเอนทิตีในคิวรีที่มีรูปแบบสำหรับฟิลด์ <เอนทิตี/คู่สมรส> และแบบที่หก "แต่งงานแล้ว" ไม่ต้องการข้อมูลเพิ่มเติม

ถัดไป เครื่องมือคำตอบจะเลือกหนึ่งในเทมเพลตเมตาของผู้สมัครตามประเภทของข้อมูลที่รวมอยู่ในข้อมูลข้อเท็จจริง โดยเฉพาะอย่างยิ่ง เอ็นจิ้นคำตอบจะเลือกเทมเพลตเมตาของผู้สมัครโดยพิจารณาจากจำนวนสามเท่าที่รวมอยู่ในข้อมูลข้อเท็จจริง ทริปเปิ้ลสองรายการรวมอยู่ในข้อมูลข้อเท็จจริง ดังนั้น เอ็นจินคำตอบจึงเลือกเมตาเทมเพลต "บุคคล" ที่มีฟิลด์สำหรับเทมเพลตสองแบบ ได้แก่ "<entity><template> และ </template><template>"

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

ข้อมูลสามประการแรกที่รวมอยู่ในข้อมูลข้อเท็จจริงคือ <Soon-Yi Previn/wife/1997>” ในตัวอย่างนี้ เทมเพลตวลีตัวเลือกแรกคือ “has been married to เนื่องจาก ” แม่แบบนี้มี <ntity/spouse&g; ช่องและช่อง <วันที่/อดีต>

ทริปเปิ้ลแรกมีเอนทิตีที่มีความสัมพันธ์แบบคู่สมรสกับเอนทิตีในคิวรีที่มีรูปแบบซึ่งเป็นไปตามข้อจำกัดฟิลด์ <entity/spouse> และวันที่ในอดีตที่ตรงตามข้อจำกัดฟิลด์ <date/past> เนื่องจากทริปเปิ้ลแรกเป็นไปตามข้อจำกัดทั้งหมดสำหรับฟิลด์ในเทมเพลตแรก เอ็นจิ้นคำตอบจะเลือกเทมเพลตแรกสำหรับทริปเปิ้ลแรก

ทริปเปิ้ลที่สองรวมอยู่ในข้อมูลข้อเท็จจริงคือ <louise Lasser/wife/1966/1970>” เทมเพลตวลีตัวเลือกที่สี่คือ “แต่งงานกับ <entity/spouse> จาก <date/past> ถึง <date/past>” ซึ่งมีฟิลด์ <entity/spouse> และ <date/past> สองฟิลด์ ข้อมูลข้อเท็จจริงสามเท่าที่สองให้เอนทิตีที่มีความสัมพันธ์แบบคู่สมรสกับเอนทิตีในแบบสอบถามที่มีรูปแบบซึ่งตรงกับข้อจำกัดฟิลด์ <entity/spouse> และวันที่สองในอดีตที่ตรงตามข้อกำหนด ข้อจำกัดของฟิลด์

เนื่องจากทริปเปิ้ลที่สองเป็นไปตามข้อจำกัดทั้งหมดสำหรับฟิลด์ในเทมเพลตที่สี่ เอ็นจิ้นคำตอบจะเลือกเทมเพลตที่สี่สำหรับทริปเปิ้ลที่สอง

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

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

เอ็นจิ้นคำตอบอาจแทนที่ฟิลด์ในเทมเพลตวลีแรกที่เลือก (เช่น “ได้แต่งงานกับ <entity/spouse> ตั้งแต่ <<date/past>") ด้วยข้อมูลจากทริปเปิ้ลแรกเพื่อสร้างวลี "ได้แต่งงานแล้ว" ถึง Soon-Yi Previn ตั้งแต่ปี 1997" ดังนั้น เอ็นจิ้นคำตอบจึงสร้างประโยคว่า "วู้ดดี้ อัลเลน แต่งงานกับซูน-ยี พรีแวง ตั้งแต่ปี 1997 และเคยแต่งงานกับหลุยส์ ลาสเซอร์ ตั้งแต่ปี 1966 ถึง 1970" จากนั้นเอ็นจิ้นคำตอบก็ส่งคำตอบ ไปยังอุปกรณ์ไคลเอนต์ที่มีประโยคที่สร้างขึ้น คำตอบอาจรวมอยู่ในหน้าผลการค้นหาที่มีประโยคและผลการค้นหาอื่น ๆ หน้าผลการค้นหายังมีช่องค้นหาที่แสดงคำค้นหาเดิม (เช่น "ใครคือวู้ดดี้ Allen แต่งงานกับ") หน้าผลการค้นหาอาจแสดงผลโดยอุปกรณ์ไคลเอนต์ ประโยคอาจถูกส่งผ่านการถอดความที่อนุญาตให้อุปกรณ์ไคลเอนต์สร้างคำพูดหรือเป็นสัญญาณเสียงที่เข้ารหัสประโยคสำหรับ แสดงผลที่อุปกรณ์ไคลเอนต์

ระบบที่สร้างประโยคเพื่อตอบแบบสอบถามข้อเท็จจริง

ระบบประกอบด้วยอุปกรณ์ไคลเอนต์ ระบบค้นหา คลัสเตอร์ดัชนี และเอ็นจินคำตอบ

อุปกรณ์ไคลเอนต์เริ่มต้นการสืบค้นด้วยคำค้นหาสองคำ (“บ้านเกิดของ Woody Allen และโรงเรียนเก่าอยู่ที่ไหน”) ในเว็บเบราว์เซอร์ที่อุปกรณ์ไคลเอนต์

ระบบค้นหาจะได้รับข้อความค้นหา (เช่น “บ้านเกิดและโรงเรียนเก่าของ Woody Allen อยู่ที่ไหน”) จากอุปกรณ์ไคลเอนต์ จากนั้น ระบบการค้นหาจะแยกวิเคราะห์และจัดรูปแบบข้อความค้นหาดั้งเดิมให้อยู่ในรูปแบบ <entity/type/attribute> (เช่น >woody Allen/person/hometown/college<) โดยใช้ ตัวอย่างเช่น เครื่องมือแยกวิเคราะห์ภาษาธรรมชาติที่เหมาะสม

ในตัวอย่างนี้ เคียวรีที่มีรูปแบบประกอบด้วยตัวระบุของเอนทิตี (เช่น Woody Allen) ประเภทของเอนทิตี (เช่น บุคคล) และแอตทริบิวต์สองอย่าง (เช่น บ้านเกิดและวิทยาลัย) ระบบค้นหาจะส่งแบบสอบถามที่จัดรูปแบบไปยังคลัสเตอร์ดัชนี

การใช้แบบสอบถามที่จัดรูปแบบและข้อมูลข้อเท็จจริง เอ็นจินคำตอบจะสร้างคำตอบในรูปแบบของประโยคหรือประโยคดังต่อไปนี้ First, the answer engine obtains the type information from the formatted query (eg, person).

Using the type information, the answer engine accesses candidate meta-templates that are associated with a “person” type of entity.

As referred to in this specification, meta-templates are templates that have fields configured to contain other templates.

The answer engine also obtains the attributes from the formatted query and uses the attributes to access candidate phrase templates from template databases.

These phrase templates get designed to get incorporated into the meta-templates.

As described above, each attribute in the query may function as a key for accessing a set of candidate phrase templates. For example, the attribute “hometown” may result in the retrieval of the phrase templates. The sample phrase templates include a first template “currently lives in >location<,” which requires a geographic location for the สนาม.

The second template, “has lived in </location><location> since <date/past>,” requires a geographic location for the </location<>location> field and a date in the past for the <date/past> field. The third template, “used to live in </location><location>,” requires a geographic location for the location field.

Next, the answer engine selects one of the candidate meta-templates based on the type of information included in the factual information. In particular, the answer engine selects a candidate meta-template based on the number of triples included in the factual information. Two triples get included in the factual information.

For each triple included in the factual information, the answer engine also selects a template from the candidate phrase templates The answer engine may select the phrase template having the maximum number of fields with constraints that get satisfied by the factual information (eg, the most data-rich template). The answer engine also may perform other heuristics, such as analyzing gender agreement and correct tense of the candidate templates.

The first triple included in the factual information is <woody Allen/hometown/NYC>.” In this example, the first candidate template in the hometown templates is “currently lives in <location>.” The first triple has a location (ie, NYC) that satisfies the </location><location> field constraint. Since the first triple satisfies all of the constraints for the fields in the first template, the answer engine selects the first template from the hometown templates for the first triple.

The second triple included in the factual information is <woody Allen/college/NYU>.” The first candidate template in the college templates is “his alma mater is </college><college>.” The second triple in the factual information provides a college name (ie, NYU) that satisfies the </college<>college> field constraint.

Also, the answer engine may determine that the gender of the entity (Woody Allen) agrees with the gender of the phrase in this template. The answer engine selects the first template from the college templates for the second triple.

The answer engine selects the first template with fields that can get filled by the factual information, and does not perform any additional processing. Alternatively, the answer engine may process each template in the candidate templates and select the template having the largest quantity of fields that can get filled by the factual information.

After selecting the templates, the answer engine then generates a sentence based on the templates. For example, the answer engine may replace the fields in the selected templates with the appropriate data from the factual information. The answer engine may replace the fields in the first selected phrase template (ie, “currently lives in <location>”) with the information from the first triple to generate the phrase “currently lives in New York City.”

The answer engine then replaces the template fields in the selected meta-template (ie, “<entity><template> and &kt;/template><template>”) with the phrases generated from the first and second phrase templates. Thus, the answer engine generates the sentence “Woody Allen currently lives in New York City and his alma mater is New York University.”

The answer engine then transmits an answer to the client device that includes the generated sentence.

The answer may get included in a search results page that includes the sentence and other search results. The search results page also includes a search box showing the original search query (ie, “Where is Woody Allen's hometown and alma mater”). The search results page may then get rendered by the client device.

As getting provided in search results, the sentence could alternatively get transmitted as a transcription that allows the client device to generate speech, or as an audio signal encoding the sentence for rendering at the client device.

An Example Data Graph

The example data graph includes nodes (eg, entities) and edges connecting the nodes (eg, relationships or attributes). Naturally, the example data graph shows only a partial graph–a full graph with a large number of entities and even a limited number of relationships may have billions of triples.

An indexing system may traverse the data graph to obtain factual information as various triples. One example of a triple that may get obtained is the entity “Woody Allen” as the subject (or entity), the relationship “was born” as the predicate (or attribute), and the entity “Dec. 1, 1935” as the object (or value).

Another example of a triple that may be obtained is the entity “Woody Allen” as the subject, the relationship “has type” as the predicate, and the entity “person” as the value. This triple may get used, for example, by the answer engine as described above to select candidate meta-templates.

Another example of a triple that may get obtained is the entity “Woody Allen” as the subject, the relationship “was married to” as the predicate, and the entity “Louise Lasser” as the value.

Note that to obtain this triple, the indexing system must traverse two edges in the data graph, ie, from the “Woody Allen” entity to the “Woody Allen marriages” entity, and then from the “Woody Allen marriages” entity to the “Louise Lasser” entity.

Generating Sentences In Response To Factual Queries

A server (eg, an answer engine) receives an original query that identifies the attributes of an entity. For example, the server may receive a query that identifies multiple attributes of an entity (eg, age, date of birth, place of birth, marriages, etc.).

The server accesses a set of candidate templates for answering the query based on the attributes of the entity. Each candidate template includes fields, wherein each field gets associated with at least one constraint. When multiple attributes get identified in the original query, the server accesses a set of candidate templates for each attribute of the entity. The constraints may include of a type constraint, a temporal constraint, a gender constraint, a relationship constraint, a singular/plural constraint, a unit of measure constraint, and a determinant constraint.

The server then obtains a set of information that answers the query, for example by accessing a graph-based datastore as described above. The set of information that answers the query may be, for example, a set of entity-attribute-value triples. When multiple attributes get identified in the original query, the server obtains a set of information for each attribute (ie, to answer each portion of the original query).

Multiple sets of information (eg, multiple triples) may be responsive to a single attribute. For example, if the attribute is “marriages” or “children,” then multiple triples may get obtained in response to the attribute.

the server selects a template from the set of candidate templates, where the selected template has a maximum number of fields with constraints that may get satisfied by the set of information that answers the query. When multiple attributes get identified in the original query, the server selects a template for each attribute from the appropriate set of candidate templates.

Also, when multiple sets of information get obtained in response to a single attribute, the server may select multiple templates from the same set of candidate templates.

The server then generates a phrase. The phrase may get generated by adding the set of information that answers the query to the fields of the selected template so that the phrase answers the original query. The phrase may get sentenced. Alternatively or in addition, the phrase may be portions of a sentence. When multiple attributes get identified in the original query, the server generates a phrase for each attribute. The server may then combine the phrases to generate a complete sentence.

The server may obtain a sentence template (eg, a meta-template) based on the type of the entity (eg, person or location). The sentence template may include multiple fields for inserting phrases. For example, the server may access a set of candidate meta-templates based on the type of entity, and then select a meta-template from the set based on the number of triples that answer the original query.

The server may then add the generated phrases described with reference to step to the fields of the sentence template to form a sentence.
The server communicates the phrase or sentence to a client device. The client device may then output the phrase to a display or as speech audio. The server transmits an audio signal corresponding to the phrase or sentence to the client device.