กลับไปหน้าบทความ

อ่าน 7 นาที

แบบจำลองภาษาn -gram ของคำ

แบบจำลอง ภาษาn -gram ของคำเป็นแบบจำลองทางสถิติของภาษาซึ่งคำนวณความน่าจะเป็นของคำถัดไปในลำดับจากหน้าต่างคำก่อนหน้าที่มีขนาดคงที่ หากพิจารณาคำก่อนหน้าหนึ่งคำ จะเป็นแบบจำลองไบแกรม...

แบบจำลองภาษาn -gram ของคำ

แบบจำลอง ภาษาn -gram ของคำเป็นแบบจำลองทางสถิติของภาษาซึ่งคำนวณความน่าจะเป็นของคำถัดไปในลำดับจากหน้าต่างคำก่อนหน้าที่มีขนาดคงที่ หากพิจารณาคำก่อนหน้าหนึ่งคำ จะเป็นแบบจำลองไบแกรม หากพิจารณาสองคำ จะเป็นแบบจำลองไตรแกรม หากพิจารณาn  − 1 คำ จะเป็น แบบจำลอง n -gram [ 1 ]

มีการนำโทเค็นพิเศษมาใช้เพื่อระบุจุดเริ่มต้นและจุดสิ้นสุดของประโยคและเพื่อป้องกันไม่ให้คำที่ไม่เคยเห็นมาก่อนได้รับความน่าจะเป็นเป็นศูนย์ ความน่าจะเป็นของคำที่เคยเห็นแต่ละคำจึงถูกลดลงเล็กน้อยเพื่อให้มีพื้นที่สำหรับคำที่ไม่เคยเห็นมาก่อนในคลังข้อมูล ที่กำหนด เพื่อให้บรรลุเป้าหมายนี้ จึงมีการใช้วิธี การปรับเรียบหลายวิธีตั้งแต่การปรับเรียบแบบ "เพิ่มหนึ่ง" อย่างง่าย (การกำหนดจำนวน 1 ให้กับn -gram ที่ไม่เคยเห็นมาก่อน เพื่อเป็นข้อมูลเบื้องต้นที่ไม่ให้ข้อมูล ) ไปจนถึงเทคนิคที่ซับซ้อนกว่า เช่นการลดทอนแบบ Good–Turingหรือ แบบจำลอง การ ถอยหลัง

โมเดล n- gram ของคำส่วนใหญ่ถูกแทนที่ด้วย โมเดล เครือข่ายประสาทแบบวนซ้ำซึ่งต่อมาถูกแทนที่ด้วย โมเดล Transformer ซึ่งมักเรียกว่าโมเดลภาษาขนาดใหญ่ [ 2 ]

โมเดล Unigram

กรณีพิเศษที่n  = 1 เรียกว่าแบบจำลองยูนิแกรม ความน่าจะเป็นของแต่ละคำในลำดับจะเป็นอิสระจากความน่าจะเป็นของคำอื่นในลำดับนั้น ความน่าจะเป็นของแต่ละคำในลำดับจะเท่ากับความน่าจะเป็นของคำนั้นในเอกสารทั้งหมด

แบบจำลองประกอบด้วยหน่วยต่างๆ โดยแต่ละหน่วยถือเป็นออโตมาตาจำกัดสถานะเดียว[ 3 ]คำต่างๆ พร้อมความน่าจะเป็นในเอกสารสามารถแสดงได้ดังต่อไปนี้

คำความน่าจะเป็นในเอกสาร
เอ0.1
โลก0.2
ไลค์0.05
เรา0.05
แบ่งปัน0.3
......

มวลรวมของความน่าจะเป็นของคำที่กระจายอยู่ทั่วคำศัพท์ของเอกสารคือ 1

ความน่าจะเป็นที่สร้างขึ้นสำหรับคำค้นหาเฉพาะนั้นคำนวณได้ดังนี้

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

คำความน่าจะเป็นในเอกสาร Doc1ความน่าจะเป็นใน Doc2
เอ0.10.3
โลก0.20.1
ไลค์0.050.03
เรา0.050.02
แบ่งปัน0.30.2
.........

แบบจำลองบิแกรม

ในแบบจำลองภาษาแบบคำคู่ ( n  = 2) ความน่าจะเป็นของประโยค " ฉันเห็นบ้านสีแดง"ประมาณได้ดังนี้

แบบจำลองไตรแกรม

ในแบบจำลองภาษาแบบไตรแกรม ( n  = 3) การประมาณค่าคือ

โปรดสังเกตว่าบริบทของ n-gram n – 1 ตัวแรกนั้นเต็ม  ไปด้วยเครื่องหมายเริ่มต้นประโยค ซึ่งโดยทั่วไปจะใช้สัญลักษณ์ <s>

นอกจากนี้ หากไม่มีคำบ่งบอกจบประโยค ความน่าจะเป็นของลำดับประโยคที่ไม่ถูกต้องตามหลักไวยากรณ์ เช่น*I saw theจะสูงกว่าประโยคที่ยาวกว่า เช่นI saw the red house เสมอ

วิธีการประมาณค่า

วิธีการประมาณค่าจะคำนวณความน่าจะเป็นของการสังเกตประโยคนั้น

ถือว่าความน่าจะเป็นของการสังเกตเห็นคำที่i (ในหน้าต่างบริบทที่ประกอบด้วยคำก่อนหน้าi − 1 คำ )  สามารถประมาณได้ด้วยความน่าจะเป็นของการสังเกตเห็นคำนั้นในหน้าต่างบริบทที่สั้นลงซึ่งประกอบด้วยคำก่อนหน้าn  − 1 คำ ( คุณสมบัติมาร์คอฟลำดับที่n ) เพื่อความชัดเจน สำหรับn  = 3 และi  = 2 เราจะได้

ความน่าจะเป็นแบบมีเงื่อนไขสามารถคำนวณได้จากจำนวนความถี่ของแบบจำลอง n -gram:

คำศัพท์ที่อยู่นอกเหนือพจนานุกรม

ปัญหาในการใช้ โมเดลภาษา n -gram คือคำนอกพจนานุกรม (OOV) ซึ่งพบได้ในภาษาศาสตร์เชิงคำนวณและการประมวลผลภาษาธรรมชาติเมื่ออินพุตมีคำที่ไม่ปรากฏในพจนานุกรมหรือฐานข้อมูลของระบบในระหว่างการเตรียมการ โดยค่าเริ่มต้น เมื่อประมาณโมเดลภาษา จะใช้คำศัพท์ที่สังเกตได้ทั้งหมด ในบางกรณี อาจจำเป็นต้องประมาณโมเดลภาษาด้วยคำศัพท์ที่กำหนดไว้เฉพาะ ในสถานการณ์เช่นนี้n -gram ในคอร์ปัสที่มีคำนอกพจนานุกรมจะถูกละเลย ความน่าจะเป็น ของ n -gram จะถูกปรับให้เรียบกับคำทั้งหมดในพจนานุกรม แม้ว่าจะไม่พบคำเหล่านั้นก็ตาม[ 4 ]

อย่างไรก็ตาม ในบางกรณีจำเป็นต้องสร้างแบบจำลองความน่าจะเป็นของคำนอกคำศัพท์อย่างชัดเจนโดยการแนะนำโทเค็นพิเศษ (เช่น<unk> ) เข้าไปในคำศัพท์ คำนอกคำศัพท์ในคอร์ปัสจะถูกแทนที่ด้วยโทเค็น <unk> พิเศษนี้ก่อนที่ จะสะสมจำนวน n -gram ด้วยตัวเลือกนี้ จึงสามารถประมาณความน่าจะเป็นของการเปลี่ยนสถานะของn -gram ที่เกี่ยวข้องกับคำนอกคำศัพท์ได้[ 5 ]

n -gram สำหรับการจับคู่โดยประมาณ

n -gram ยังถูกใช้สำหรับการจับคู่โดยประมาณด้วย หากเราแปลงสตริง (ที่มีเฉพาะตัวอักษรในอักษรภาษาอังกฤษ) เป็น 3-gram ของตัวอักษร เราจะได้ปริภูมิ n มิติ (มิติแรกวัดจำนวนการเกิดขึ้นของ "aaa" มิติที่สอง "aab" และอื่นๆ สำหรับการรวมกันของตัวอักษรสามตัวที่เป็นไปได้ทั้งหมด) การใช้การแสดงผลแบบนี้ทำให้เราสูญเสียข้อมูลเกี่ยวกับสตริง อย่างไรก็ตาม เรารู้โดยประสบการณ์ว่าหากสตริงข้อความจริงสองสตริงมีเวกเตอร์การแสดงผลที่คล้ายกัน (วัดโดยระยะทางโคไซน์ ) ก็มีแนวโน้มที่จะคล้ายกัน เมตริกอื่นๆ ก็ถูกนำมาใช้กับเวกเตอร์ของn -gram ด้วยเช่นกัน โดยให้ผลลัพธ์ที่แตกต่างกัน บางครั้งก็ดีกว่า ตัวอย่างเช่นz-scoreถูกใช้เพื่อเปรียบเทียบเอกสารโดยการตรวจสอบว่าn -gram แต่ละตัวแตกต่างจากค่าเฉลี่ยของการเกิดขึ้นในชุดเอกสารขนาดใหญ่หรือคลังข้อความ (ซึ่งเป็นเวกเตอร์ "พื้นหลัง") กี่ค่าเบี่ยงเบนมาตรฐาน ในกรณีที่มีจำนวนน้อยg-score (หรือที่เรียกว่าg-test ) ให้ผลลัพธ์ที่ดีกว่า

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

นอกจากนี้ยังใช้การค้นหาแบบn -gram เพื่อ ตรวจจับการลอกเลียนแบบ อีก ด้วย

การแลกเปลี่ยนระหว่างอคติและความแปรปรวน

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

เทคนิคการปรับให้เรียบ

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

ในทางปฏิบัติ จำเป็นต้องปรับความเรียบของความน่าจะเป็นโดยการกำหนดความน่าจะเป็นที่ไม่เป็นศูนย์ให้กับคำหรือn -gram ที่ไม่เคยเห็นมาก่อน เหตุผลก็คือแบบจำลองที่ได้มาโดยตรงจากการนับความถี่ของn -gram จะมีปัญหาอย่างมากเมื่อเผชิญกับ n -gram ใดๆ ที่ไม่เคยเห็นมาก่อนอย่างชัดเจน – ปัญหาความถี่เป็นศูนย์มีการใช้วิธีการปรับความเรียบหลายวิธี ตั้งแต่การปรับความเรียบแบบ "เพิ่มหนึ่ง" (Laplace) อย่างง่าย (กำหนดจำนวน 1 ให้กับn -gram ที่ไม่เคยเห็นมาก่อน ดูกฎแห่งการสืบทอด ) ไปจนถึงแบบจำลองที่ซับซ้อนกว่า เช่นการลดทอนแบบ Good–Turingหรือแบบจำลอง back-offบางวิธีเหล่านี้เทียบเท่ากับการกำหนดการกระจายความน่าจะเป็นก่อนหน้าให้กับความน่าจะเป็นของn -gram และใช้การอนุมานแบบเบย์เซียนเพื่อคำนวณ ความน่าจะเป็น ภายหลังของ n -gram ที่ได้ อย่างไรก็ตาม แบบจำลองการปรับความเรียบที่ซับซ้อนกว่านั้นมักไม่ได้ถูกสร้างขึ้นในลักษณะนี้ แต่ถูกสร้างขึ้นผ่านการพิจารณาอย่างอิสระ

แบบจำลองภาษา Skip-gram

1-skip-2-grams สำหรับข้อความ "ฝนในสเปนส่วนใหญ่ตกบนที่ราบ"

แบบจำลองภาษา Skip-gram เป็นความพยายามที่จะเอาชนะปัญหาความเบาบางของข้อมูลที่แบบจำลองก่อนหน้า (เช่น แบบจำลองภาษา n -gram ของคำ) เผชิญ คำที่แสดงในเวกเตอร์ฝังตัวไม่จำเป็นต้องต่อเนื่องกันอีกต่อไป แต่สามารถเว้นช่องว่างที่ถูกข้ามไปได้ (จึงเป็นที่มาของชื่อ "skip-gram") [ 6 ]

ตามหลักการแล้วk -skip- n -gram คือลำดับย่อยที่มีความยาวnโดยที่ส่วนประกอบต่างๆ อยู่ห่างกัน ไม่เกิน k

ตัวอย่างเช่น ในข้อความที่ป้อน:

ฝนในสเปนส่วนใหญ่ตกบนที่ราบ

เซตของ 1-skip-2-grams ประกอบด้วย bigrams (2-grams) ทั้งหมด และนอกจากนี้ยังมีลำดับย่อยอีกด้วย

ฝนตกในสเปนโดยส่วนใหญ่จะตกบนที่ราบ

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

โดยที่ ≈ จะถูกทำให้แม่นยำยิ่งขึ้นโดยกำหนดว่าด้านขวามือจะต้องเป็นเพื่อนบ้านที่ใกล้ที่สุดของค่าของด้านซ้ายมือ[ 7 ] [ 8 ]

n -gram ทางไวยากรณ์

n -gram ทางไวยากรณ์คือn -gram ที่กำหนดโดยเส้นทางในความสัมพันธ์ทางไวยากรณ์หรือโครงสร้างต้นไม้องค์ประกอบ แทนที่จะเป็นโครงสร้างเชิงเส้นของข้อความ[ 9 ] [ 10 ] [ 11 ]ตัวอย่างเช่น ประโยค "ข่าวเศรษฐกิจมีผลกระทบน้อยต่อตลาดการเงิน" สามารถแปลงเป็นn -gram ทางไวยากรณ์ตามโครงสร้างต้นไม้ของความสัมพันธ์การพึ่งพาได้ดังนี้: ข่าว-เศรษฐกิจ, ผลกระทบ-น้อย, ผลกระทบ-ต่อ-ตลาด-การเงิน[ 9 ]

n -gram เชิงไวยากรณ์มีจุดประสงค์เพื่อสะท้อนโครงสร้างทางไวยากรณ์ได้อย่างแม่นยำกว่าn -gram เชิงเส้น และมีการใช้งานหลายอย่างเหมือนกัน โดยเฉพาะอย่างยิ่งในฐานะคุณลักษณะในแบบจำลองพื้นที่เวกเตอร์n -gram เชิงไวยากรณ์ให้ผลลัพธ์ที่ดีกว่าการใช้n -gram มาตรฐานสำหรับงานบางอย่าง เช่น การระบุผู้เขียน[ 12 ]

n -gram ทางไวยากรณ์อีกประเภทหนึ่ง คือ n -gram ส่วนของคำพูดซึ่งกำหนดเป็นลำดับย่อยที่ทับซ้อนกันต่อเนื่องที่มีความยาวคงที่ซึ่งสกัดมาจากลำดับส่วนของคำพูดของข้อความn -gram ส่วนของคำพูดมีการใช้งานหลายอย่าง ที่พบได้บ่อยที่สุดคือในการค้นหาข้อมูล[ 13 ]

แอปพลิเคชันอื่นๆ

n -grams ถูกนำไปใช้ในหลายสาขาของวิทยาการคอมพิวเตอร์ภาษาศาสตร์เชิงคำนวณและคณิตศาสตร์ประยุกต์

พวกเขาเคยชินกับสิ่งนี้มาแล้ว:

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Word_n-gram_language_model&oldid=1360971873 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แบบจำลองภาษาn -gram ของคำ

แบบจำลอง ภาษาn -gram ของคำเป็นแบบจำลองทางสถิติของภาษาซึ่งคำนวณความน่าจะเป็นของคำถัดไปในลำดับจากหน้าต่างคำก่อนหน้าที่มีขนาดคงที่ หากพิจารณาคำก่อนหน้าหนึ่งคำ จะเป็นแบบจำลองไบแกรม...

โมเดล Unigram

กรณีพิเศษที่ n = 1 เรียกว่าแบบจำลองยูนิแกรม ความน่าจะเป็นของแต่ละคำในลำดับจะเป็นอิสระจากความน่าจะเป็นของคำอื่นในลำดับนั้น ความน่าจะเป็นของแต่ละคำในลำดับจะเท่ากับความน่าจะเป็นของคำนั้นในเอกสารทั้งหมด

แบบจำลองบิแกรม

ในแบบจำลองภาษาแบบคำคู่ ( n = 2) ความน่าจะเป็นของประโยค " ฉันเห็นบ้านสีแดง" ประมาณได้ดังนี้

แบบจำลองไตรแกรม

ในแบบจำลองภาษาแบบไตรแกรม ( n = 3) การประมาณค่าคือ