อ่าน 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.1 | 0.3 |
| โลก | 0.2 | 0.1 |
| ไลค์ | 0.05 | 0.03 |
| เรา | 0.05 | 0.02 |
| แบ่งปัน | 0.3 | 0.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 ที่ได้ อย่างไรก็ตาม แบบจำลองการปรับความเรียบที่ซับซ้อนกว่านั้นมักไม่ได้ถูกสร้างขึ้นในลักษณะนี้ แต่ถูกสร้างขึ้นผ่านการพิจารณาอย่างอิสระ
- การประมาณค่าเชิงเส้น (เช่น การหาค่าเฉลี่ยถ่วงน้ำหนักของคำเดี่ยว คำคู่ และคำสามคำ)
- การลดราคาแบบกู๊ด-ทัวริง
- การลดราคาแบบวิทเทน-เบลล์
- การปรับผิวเรียบของลิดสโตน
- แบบจำลองการถอยกลับของ Katz (ไตรแกรม)
- การปรับเรียบแบบ Kneser–Ney
แบบจำลองภาษา Skip-gram

แบบจำลองภาษา 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 ถูกนำไปใช้ในหลายสาขาของวิทยาการคอมพิวเตอร์ภาษาศาสตร์เชิงคำนวณและคณิตศาสตร์ประยุกต์
พวกเขาเคยชินกับสิ่งนี้มาแล้ว:
- ออกแบบเคอร์เนลที่ช่วยให้ อัลกอริธึม การเรียนรู้ของเครื่องเช่นเครื่องสนับสนุนเวกเตอร์ (Support Vector Machines)สามารถเรียนรู้จากข้อมูลสตริงได้
- ค้นหาผู้สมัครที่น่าจะเป็นไปได้สำหรับการสะกดคำที่ถูกต้องของคำที่สะกดผิด[ 14 ]
- ปรับปรุงการบีบอัดในอัลกอริธึมการบีบอัดข้อมูล โดยที่ข้อมูลขนาดเล็กต้องการn -gram ที่มีความยาวมากขึ้น
- ประเมินความน่าจะเป็นที่ลำดับคำที่กำหนดจะปรากฏในข้อความของภาษาที่สนใจในระบบการรู้จำรูปแบบการรู้จำเสียงพูดการรู้จำอักขระด้วยแสง (OCR) การรู้จำอักขระอัจฉริยะ (ICR) การแปลด้วยเครื่องและแอปพลิเคชันที่คล้ายคลึงกัน
- เพื่อปรับปรุงการค้นหาใน ระบบ ค้นหาข้อมูลเมื่อต้องการค้นหา "เอกสาร" ที่คล้ายคลึงกัน (ซึ่งบางครั้งความหมายตามธรรมเนียมอาจถูกขยายความ ขึ้นอยู่กับชุดข้อมูล ) โดยใช้เอกสารสอบถามเพียงฉบับเดียวและฐานข้อมูลเอกสารอ้างอิง
- ปรับปรุงประสิทธิภาพการค้นหาข้อมูลในการวิเคราะห์ลำดับทางพันธุกรรม เช่น ในโปรแกรมตระกูลBLAST
- ระบุภาษาของข้อความหรือสายพันธุ์ที่ได้มาจากลำดับดีเอ็นเอขนาดเล็ก
- ทำนายตัวอักษรหรือคำแบบสุ่มเพื่อสร้างข้อความ เช่นเดียวกับอัลกอริทึมDissociated Press
- การวิเคราะห์รหัสลับ
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แบบจำลองภาษาn -gram ของคำ
แบบจำลอง ภาษาn -gram ของคำเป็นแบบจำลองทางสถิติของภาษาซึ่งคำนวณความน่าจะเป็นของคำถัดไปในลำดับจากหน้าต่างคำก่อนหน้าที่มีขนาดคงที่ หากพิจารณาคำก่อนหน้าหนึ่งคำ จะเป็นแบบจำลองไบแกรม...
โมเดล Unigram
กรณีพิเศษที่ n = 1 เรียกว่าแบบจำลองยูนิแกรม ความน่าจะเป็นของแต่ละคำในลำดับจะเป็นอิสระจากความน่าจะเป็นของคำอื่นในลำดับนั้น ความน่าจะเป็นของแต่ละคำในลำดับจะเท่ากับความน่าจะเป็นของคำนั้นในเอกสารทั้งหมด
แบบจำลองบิแกรม
ในแบบจำลองภาษาแบบคำคู่ ( n = 2) ความน่าจะเป็นของประโยค " ฉันเห็นบ้านสีแดง" ประมาณได้ดังนี้
แบบจำลองไตรแกรม
ในแบบจำลองภาษาแบบไตรแกรม ( n = 3) การประมาณค่าคือ