วิธีการประมวลผลคำค้นหาภาษาธรรมชาติ?


11

ฉันอยากรู้เกี่ยวกับการสืบค้นภาษาธรรมชาติ Stanford มีสิ่งที่ดูเหมือนจะเป็นชุดที่แข็งแกร่งของซอฟแวร์สำหรับการประมวลผลภาษาธรรมชาติ ผมเคยเห็นยังห้องสมุด Apache OpenNLPและสถาปัตยกรรมทั่วไปสำหรับข้อความวิศวกรรม

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

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

สี่เหลี่ยมผืนผ้าแรกบนแผนภูมิการไหลของฉันเป็นบิตของความลึกลับ

ป้อนคำอธิบายรูปภาพที่นี่

ตัวอย่างเช่นฉันอาจต้องการทราบ:

How many books were sold last month?

และฉันต้องการแปลเป็น

Select count(*) 
  from sales 
  where 
   item_type='book' and 
   sales_date >= '5/1/2014' and 
   sales_date <= '5/31/2014'

คำตอบ:


6

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

ดังนั้นสำหรับประโยค: มีการขายหนังสือกี่เล่มเมื่อเดือนที่แล้ว

คุณจะเริ่มต้นด้วยการแบ่งประโยคด้วย parser ซึ่งจะส่งคืนรูปแบบต้นไม้คล้ายกับสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะเห็นว่ามีหนังสือเรื่องวลีวาจาผสมแสดงการกระทำที่ผ่านมาของการขายแล้ววลีคำนามที่คุณมีเวลามุ่งเน้นของเดือน

เราสามารถแยกย่อยเรื่องสำหรับตัวดัดแปลงเพิ่มเติม: "จำนวนหนังสือ" และ "ล่าสุด" สำหรับเดือน

เมื่อคุณแบ่งประโยคลงแล้วคุณจะต้องแมปองค์ประกอบเหล่านั้นกับภาษา sql เช่น: จำนวน => จำนวนหนังสือ => หนังสือขาย => ขายเดือน => sales_date (ช่วงเวลา) และอื่น ๆ

ในที่สุดเมื่อคุณมีองค์ประกอบของภาษาคุณเพียงแค่ต้องมีชุดของกฎสำหรับวิธีการที่หน่วยงานที่แตกต่างกันมีปฏิสัมพันธ์ซึ่งกันและกันซึ่งทำให้คุณ:

เลือกจำนวน (*) จากการขายโดยที่ item_type = 'book' และ sales_date> = '5/1/2014' และ sales_date <= '5/31/2014'

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


1

การเปลี่ยนคำถามง่าย ๆ ให้เป็นคำตอบนั้นไม่ง่ายเลย

เทคโนโลยีแรกที่ทำสิ่งนี้อย่างกว้างขวางในเทคโนโลยีและแม่นยำจะเป็นผู้ชนะที่ยิ่งใหญ่

อย่างไรก็ตามมีบางส่วนที่นั่นเติมช่องว่างด้วย "ตอบคำถาม" ด้วยปัญญาประดิษฐ์ (เช่น IBM Watson และ Amazon Alexa) สิ่งนี้ต้องการการแก้ไขความซับซ้อนทางภาษาที่เกี่ยวข้องกับข้อมูลที่เป็นปัญหาสิ่งที่อยู่ในแหล่งข้อมูลและคำนามคำกริยาและคำสรรพนามคืออะไร

Microsoft เสี่ยงที่นี่ด้วยแบบสอบถามอังกฤษแต่แล้วก็หยุด Kueri.meเป็นแพลตฟอร์มที่ใช้ Python ทำสิ่งเดียวกัน

Structured Query Languages ​​(SQL) และสิ่งที่คล้ายกัน SOQL, MDX, Hive, Impala และเวอร์ชันที่ใหม่กว่าใช้กับ SQL แบบเก่า ยังไม่ได้แทนที่อะไรมากชิ้นส่วนทั้งหมดเหล่านี้มีการแก้ไขเล็กน้อยสำหรับ "เป้าหมายสุดท้าย" และที่อยู่ในปัญญาประดิษฐ์ (AI) โดยเฉพาะการเรียนรู้ของเครื่อง

คำถามคือ:

คอมพิวเตอร์สามารถหาสิ่งที่คุณต้องการได้หรือไม่

ยัง. นักภาษาศาสตร์คณิตศาสตร์วิศวกรและอื่น ๆ ทุกคนมีส่วนร่วมในส่วนของวงกลมเพื่อให้เราสามารถเพลิดเพลินกับเค้กประดิษฐ์อัจฉริยะและขนมหวานที่เรียนรู้ด้วยเครื่องจักร


0

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

อย่างไรก็ตามฉันคิดว่าวิธีที่ดีที่สุดคือการรวมตัวแยกวิเคราะห์ไวยากรณ์สำหรับการแปลข้อความเป็น SQL และ ML เพื่อเสริมไวยากรณ์ไวยากรณ์ตามกฎโดยการแก้ไขไวยากรณ์กำจัดความผิดพลาด ฯลฯ

เรียนรู้เพิ่มเติมเกี่ยวกับการที่แตกต่างกันวิธีการที่นี่

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