วิธีแบบฟอร์ม Chomsky ปกติ: CYK parser ผลกระทบของประสิทธิภาพการทำงาน?


9

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


วิธีการสร้างไวยากรณ์ที่มีขนาดเท่ากันใช่มั้ย CYK เติมตารางที่สมบูรณ์เสมอดังนั้นคุณจะสามารถตรวจสอบได้เร็วขึ้นเท่านั้น "มีกฎเหมาะสมหรือไม่" ดังนั้นฉันคาดหวังว่าการนับกฎเท่านั้นที่จะมีอิทธิพลไม่ใช่โครงสร้างไวยากรณ์
Raphael

วิธีที่ใช้ในการ binarization นั้นมีผลต่อขนาดของไวยากรณ์ซึ่งส่งผลต่อประสิทธิภาพของ CYK: informatica-didactica.de/cmsmadesimple/ ...... กล่าวถึงทางเลือกอื่น ๆ ของ CNF
สูงสุด

คำตอบ:


6

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

ด้วยการค้นหาเล็กน้อยฉันพบBinarization ที่ดีกว่าสำหรับ CKY Parsing (เพลง Ding และ Lin, EMNLP 2008) ซึ่งดูเหมือนว่าจะสรุปได้อย่างแน่นอนว่าคุณสามารถเลือกการดีนาร์ที่ดีขึ้นหรือแย่ลงเมื่อเทียบกับสตริงที่คุณคาดหวัง ต้องแยกวิเคราะห์ ชื่อของพวกเขาสำหรับ "การวิเคราะห์คำสิ้นตาย" ที่ใคร ๆ ก็หวังว่าจะลดน้อยลงในทางปฏิบัติดูเหมือนจะเป็นคนละเรื่องกับที่ไม่สมบูรณ์และมีตัวอย่างที่ดีในหน้าแรก


พิจารณาไวยากรณ์รวมถึงการผลิต (S -> ABC) (T -> ABD) หาก "BC" นำหน้าด้วย "A" เสมอ แต่ "AB" ไม่ได้ตามมาด้วย "C" เป็นครั้งคราวจะมีจุดจบตายน้อยลงหากคุณรวม B และ C และความถี่สัมพันธ์นั้นไม่เกี่ยวข้อง ประเด็นของคุณเกี่ยวกับ "น้อย" และ "หลายคน" นั้นสมเหตุสมผลถ้าคำปรากฏขึ้นแบบสุ่ม แต่สิ่งที่ฉันคิดว่าซ่งติงและหลินกำลังทำคือใช้ประโยชน์จากความถี่ ngram ซึ่งซับซ้อนกว่าเล็กน้อย พวกเขายังชี้ให้เห็นว่าในตัวอย่างของฉันคุณอาจยังคงชนะการสัมมนาแบบ "AB" โดยใช้ประโยชน์จากการแบ่งปัน!
Rob Simmons

4

ที่จริงแล้วแบบฟอร์มปกติของชัมสกี้ (CNF) ไม่จำเป็นต้องเรียกใช้ CYK เพียงแค่ทำการไบนาไนเซชัน การสร้างไบนาไนเซชั่นเป็นสิ่งสำคัญในการรักษาความซับซ้อนของการแยกวิเคราะห์แม้ว่าจะจำเป็นเฉพาะในส่วนที่ไม่ใช่เทอร์มินัล (NT) แต่ถ้าคุณมีกฎรวมถึง 2 เทอร์มินัลที่ไม่ใช่และเทอร์มินัลบางตัวอัลกอริทึม CYK จะซับซ้อนมากขึ้นในการเขียนโปรแกรมและอธิบาย

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

X -> B C D
Y -> B C E 

สามารถเป็นไบนาไนซ์ได้

X -> Z D
Y -> Z E
Z -> B C

ดังนั้นการบันทึกหนึ่งกฎโดยการแยกตัวประกอบซึ่งอาจบันทึกในการคำนวณและขนาดของผลลัพธ์

แต่ด้วยกฎอื่น ๆ คุณอาจต้องการแยกส่วนท้ายของกฎมากกว่าจุดเริ่มต้น

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

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

CYK เป็นเพียงหนึ่งในรูปแบบที่ง่ายกว่าในตระกูลอัลกอริทึมที่สร้างขึ้นในรูปแบบการเขียนโปรแกรมแบบไดนามิกที่เหมือนกันอย่างเห็นได้ชัด ฉันกำลังพูดอย่างชัดเจนเพราะอัลกอริทึมรุ่นที่ง่ายที่สุดเหล่านี้ไม่รู้จักกันในชื่อการเขียนโปรแกรมแบบไดนามิก แต่เป็นผลิตภัณฑ์ข้าม มันเป็นงานก่อสร้างเก่าของ CF ไวยากรณ์ G ที่สร้างจุดตัดของภาษาของ CF ไวยากรณ์ F และภาษาปกติของ FSA เอเนื่องจาก บาร์ Hillel, Perles และมิร์ (1961)เป็นข้อสังเกตโดยหรั่งในปี 1995

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

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

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

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

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

ปัญหาเหล่านี้บางส่วนถูกกล่าวถึงในวรรณคดี ยกตัวอย่างเช่นโดยBillot และ Langวิเคราะห์บางแง่มุมของการสัมมนาไบนารี่ที่เกี่ยวกับกลยุทธ์การแยกวิเคราะห์

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