การแยกวิเคราะห์การพึ่งพาใน NLP [อธิบายด้วยตัวอย่าง]
เผยแพร่แล้ว: 2021-03-10การประมวลผลภาษาธรรมชาติเป็นแนวคิดแบบสหวิทยาการที่ใช้พื้นฐานของภาษาศาสตร์คอมพิวเตอร์และปัญญาประดิษฐ์เพื่อทำความเข้าใจว่าภาษาของมนุษย์มีปฏิสัมพันธ์กับเทคโนโลยีอย่างไร
NLP ต้องการความเข้าใจเชิงลึกเกี่ยวกับคำศัพท์และแนวคิดต่างๆ เพื่อนำไปใช้อย่างเป็นรูปธรรมในสถานการณ์จริง แนวคิดพื้นฐานบางส่วนเหล่านี้รวมถึงการติดแท็ก Part-of-Speech (POS) การสร้างแบบจำลองภาษาทางสถิติ การวิเคราะห์วากยสัมพันธ์ ความหมายและความรู้สึก การทำให้เป็นมาตรฐาน การทำให้เป็นโทเค็น การแยกวิเคราะห์การพึ่งพา และการแยกวิเคราะห์การเลือกตั้ง เป็นต้น
ในบทความนี้ เราจะดูพื้นฐานของการแยกวิเคราะห์การพึ่งพาเพื่อให้ได้มุมมองว่ามันถูกนำไปใช้ใน NLP อย่างไร
สารบัญ
การแยกวิเคราะห์การพึ่งพา
การแยกวิเคราะห์การพึ่งพา (DP) หมายถึงการตรวจสอบการพึ่งพาระหว่างคำในประโยคเพื่อวิเคราะห์โครงสร้างทางไวยากรณ์ ตามนี้ ประโยคแบ่งออกเป็นหลายองค์ประกอบ กลไกนี้มีพื้นฐานอยู่บนแนวคิดที่ว่ามีความเชื่อมโยงโดยตรงระหว่างทุกหน่วยภาษาของประโยค ลิงก์เหล่านี้เรียกว่าการพึ่งพา
ยกตัวอย่างประโยค “ ฉัน ชอบเที่ยวบินตอนเช้าที่ผ่านเดนเวอร์”
แผนภาพด้านล่างอธิบายโครงสร้างการพึ่งพาของประโยค:
แหล่งที่มา
ความสัมพันธ์ระหว่างทุกหน่วยภาษาหรือคำในประโยค ถูกระบุโดยใช้ส่วนโค้งกำกับในโครงสร้างการพึ่งพาที่พิมพ์ ตามที่ระบุไว้ในแผนภาพ ราก ของต้นไม้ "ชอบ" จะสร้างส่วนหัวของประโยคข้างต้น
ความสัมพันธ์ระหว่างคำสองคำถูกทำเครื่องหมายด้วยแท็กการพึ่งพา ตัวอย่างเช่น คำว่า "เที่ยวบิน" แก้ไขความหมายของคำนาม "เดนเวอร์" ดังนั้น คุณสามารถสังเกตเห็นการขึ้นต่อกันจากเที่ยวบิน -> เดนเวอร์ โดยที่เที่ยวบินเป็นหัวหน้า และเดนเวอร์เป็นเด็กหรือผู้อยู่ในอุปการะ มันถูกแสดงโดย nmod ซึ่งแสดงถึงตัวดัดแปลงเล็กน้อย
นี่เป็นกรณีของการพึ่งพาระหว่างทุก ๆ สองคำโดยที่คำหนึ่งทำหน้าที่เป็นหัวหน้าและอีกคำหนึ่งขึ้นอยู่กับคำ ในปัจจุบัน อนุกรมวิธาน Universal Dependency V2 ประกอบด้วย 37 ความสัมพันธ์ทางวากยสัมพันธ์สากลตามที่ระบุในตารางด้านล่าง:
แท็กการพึ่งพา | คำอธิบาย |
acl | clausal modifier ของคำนาม (adnominal clause) |
acl:relcl | ตัวแก้ไขข้อญาติ |
advcl | ตัวแก้ไขกริยาวิเศษณ์ |
advmod | ตัวแก้ไขคำวิเศษณ์ |
advmod:emph | เน้นคำ เพิ่มความแรง |
advmod:lmod | ตัวแก้ไขคำวิเศษณ์ตำแหน่ง |
อาโมด | ตัวแก้ไขคำคุณศัพท์ |
appos | ตัวดัดแปลงสมมุติฐาน |
aux | ตัวช่วย |
aux:pass | ตัวช่วยแบบพาสซีฟ |
กรณี | กรณีเครื่องหมาย |
cc | การประสานงานร่วม |
cc:preconj | บทนำ |
ccomp | องค์ประกอบเสริม |
clf | ลักษณนาม |
สารประกอบ | สารประกอบ |
สารประกอบ:lvc | การสร้างกริยาเบา |
สารประกอบ:prt | กริยาวลี อนุภาค |
สารประกอบ:redup | สารประกอบซ้ำ |
สารประกอบ:svc | สารประกอบกริยาอนุกรม |
conj | สารเชื่อม |
ตำรวจ | คอปปูล่า |
csubj | หัวข้อเรื่อง |
csubj:pass | clausal passive subject |
dep | การพึ่งพาที่ไม่ระบุรายละเอียด |
det | ตัวกำหนด |
det:numgov | ปริมาณสรรพนามที่ใช้บังคับกรณีของคำนาม |
det:nummod | ตัวระบุปริมาณสรรพนามเห็นด้วยกับคำนาม |
det: ครอบครอง | ตัวกำหนดความเป็นเจ้าของ |
วาทกรรม | องค์ประกอบวาทกรรม |
เคล็ด | องค์ประกอบเคล็ด |
อธิบาย | คำสบถ |
expl:impers | คำสบถไม่มีตัวตน |
expl:pass | สรรพนามสะท้อนกลับที่ใช้ในเชิงโต้ตอบ |
expl:pv | คลิติกสะท้อนกับกริยาสะท้อนโดยเนื้อแท้ |
แก้ไขแล้ว | นิพจน์หลายคำคงที่ |
แบน | นิพจน์หลายคำแบน |
แบน:ต่างประเทศ | คำต่างประเทศ |
แบน:ชื่อ | ชื่อ |
ไปกับ | ไปกับ |
iobj | วัตถุทางอ้อม |
รายการ | รายการ |
เครื่องหมาย | เครื่องหมาย |
nmod | ตัวแก้ไขเล็กน้อย |
nmod:poss | ตัวดัดแปลงนามแสดงความเป็นเจ้าของ |
nmod:tmod | ตัวดัดแปลงชั่วคราว |
นซับจ | เรื่องเล็กน้อย |
nsubj:pass | หัวเรื่องนามแฝง |
nummod | ตัวแก้ไขตัวเลข |
nummod:gov | ตัวแก้ไขตัวเลขที่ใช้กับกรณีของคำนาม |
วัตถุ | วัตถุ |
obl | ชื่อเฉียง |
obl:ตัวแทน | ตัวแก้ไขตัวแทน |
obl:arg | อาร์กิวเมนต์เฉียง |
obl:lmod | ตัวแก้ไขตำแหน่ง |
obl:tmod | ตัวดัดแปลงชั่วคราว |
เด็กกำพร้า | เด็กกำพร้า |
พาราแทกซิส | พาราแทกซิส |
เจาะ | เครื่องหมายวรรคตอน |
ประณาม | ความโกลาหลที่ถูกแทนที่ |
ราก | ราก |
อาชีวะ | อาชีวะ |
xcomp | ส่วนประกอบที่เปิดกว้าง |
การแยกวิเคราะห์การพึ่งพาโดยใช้NLTK
การแยกวิเคราะห์การพึ่งพาสามารถทำได้โดยใช้แพ็คเกจ Natural Language Toolkit (NLTK) ซึ่งเป็นชุดของไลบรารีและรหัสที่ใช้ในการประมวลผลภาษาธรรมชาติทางสถิติ (NLP) ของภาษามนุษย์
เราสามารถใช้ NLTK เพื่อแยกวิเคราะห์การพึ่งพาได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
- ตัวแยกวิเคราะห์การพึ่งพาโปรเจ็กต์และโปรเจ็กต์ : ตัวแยกวิเคราะห์เหล่านี้ใช้ความรู้ภาษามนุษย์ที่รวบรวมจากประโยคที่แยกวิเคราะห์ด้วยมือเพื่อทำนายประโยคใหม่ เป็นที่ทราบกันดีว่าพวกเขาทำผิดพลาดและทำงานกับชุดข้อมูลการฝึกอบรมที่จำกัด
- Stanford parser : นี่คือโปรแกรมแยกวิเคราะห์ภาษาธรรมชาติที่ใช้งานบน Java คุณต้องใช้ ตัวแยกวิเคราะห์ Stanford CoreNLP เพื่อดำเนินการแยกวิเคราะห์การขึ้นต่อกัน parser มีหลายภาษา ได้แก่ อังกฤษ จีน เยอรมัน และอาหรับ
คุณสามารถใช้ parser ได้ด้วยวิธีต่อไปนี้
จาก nltk.parse.stanford นำเข้า StanfordDependencyParser
path_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser.jar'
path_models_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models.jar'
dep_parser = StanfordDependencyParser (
path_to_jar = path_jar, path_to_models_jar = path_models_jar
)
result = dep_parser.raw_parse('ฉันยิงช้างขณะหลับ')
การพึ่งพา = result.next()
รายการ (การพึ่งพา. สามเท่า ())
ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้:
[
((u'shot', u'VBD'), u'nsubj', (u'I', u'PRP')),
((u'shot', u'VBD'), u'dobj', (u'elephant', u'NN')),
((u'elephant', u'NN'), u'det', (u'an', u'DT')),
((u'shot', u'VBD'), u'prep', (u'in', u'IN')),
((u'in', u'IN'), u'pobj', (u'sleep', u'NN')),
((u'sleep', u'NN'), u'poss', (u'my', u'PRP$'))
]
การแยกเขตเลือกตั้ง
การแยกวิเคราะห์การเลือกตั้งจะขึ้นอยู่กับไวยากรณ์ที่ปราศจากบริบท ในที่นี้ parse tree มีประโยคที่แบ่งออกเป็นวลีย่อย ซึ่งแต่ละประโยคอยู่ในหมวดหมู่ไวยากรณ์ ทุกหน่วยภาษาหรือคำในประโยคทำหน้าที่เป็นโหนดปลายทางซึ่งมีโหนดหลักและแท็กส่วนหนึ่งของคำพูด
ตัวอย่างเช่น วลี "a cat" และ "a box under the bed" เป็นคำนามวลี ในขณะที่ "write a letter" และ "drive a car" เป็นคำกริยาวลี
ลองพิจารณาประโยคตัวอย่าง “ ฉันยิงช้างในชุดนอน” นี่คือการแสดงกราฟิกของแผนผังการแยกวิเคราะห์การเลือกตั้ง:
แหล่งที่มา
ต้นไม้แยกทางซ้ายหมายถึงการยิงช้างที่สวมชุดนอน และต้นพาร์สทางด้านขวาแสดงว่าตัวแบบกำลังยิงช้างขณะอยู่ในชุดนอนของเขา
ประโยคทั้งหมดแบ่งออกเป็นขั้นตอนย่อยจนกว่าเราจะมีคำสุดท้ายที่เหลืออยู่ VP หมายถึงวลีคำกริยาและ NP หมายถึงวลีคำนาม
การแยกวิเคราะห์การพึ่งพาและการแยกวิเคราะห์การเลือกตั้ง
การแยกวิเคราะห์การเลือกตั้งสามารถดำเนินการได้โดยใช้ตัวแยกวิเคราะห์ของ Stanford โดยพื้นฐานแล้วจะแยกวิเคราะห์ประโยคที่กำหนดตาม parser ของการเลือกตั้ง และต่อมาแปลงแผนผังการแยกวิเคราะห์การเลือกตั้งเป็นแผนผังการพึ่งพา
หากเป้าหมายของคุณคือการแบ่งประโยคออกเป็นวลีย่อย คุณควรนำการแยกวิเคราะห์การเลือกตั้งไปใช้ อย่างไรก็ตาม หากคุณต้องการสำรวจการพึ่งพาระหว่างคำในประโยค คุณควรใช้การแยกวิเคราะห์การพึ่งพา
ชำระเงิน: แนวคิดและหัวข้อโครงการ NLP
บทสรุป
หากคุณพบว่าบทความนี้มีประโยชน์ คุณควรตรวจสอบการ รับรอง PG 6 เดือนของ upGrad ในการเรียนรู้ของเครื่องและ NLP ที่ให้คำปรึกษาส่วนบุคคลจากผู้เชี่ยวชาญในอุตสาหกรรมของ Flipkart, Gramener และ Zee5
โปรแกรมนี้ออกแบบมาสำหรับวิศวกร ซอฟต์แวร์/ IT, Data และมืออาชีพอื่นๆ ที่ต้องการตั้งหลักใน Data Science และ Machine Learning Post Graduate Certification จาก IIIT BBangalorethe เสนอการขึ้นเงินเดือนโดยเฉลี่ย 58% ทั้งหมดที่คุณต้องใช้เพื่อให้ได้ตำแหน่งขั้นสูงของ Data Analyst, Data Scientist, ML Engineer และ NLP Engineer ในบริษัทชั้นนำ ปิดกั้นที่นั่งของคุณวันนี้ ในราคาเพียง 399 บาท 3,034 ต่อเดือน!
การใช้การแยกวิเคราะห์การพึ่งพาใน NLP คืออะไร?
ในการประมวลผลภาษาธรรมชาติ การแยกวิเคราะห์การพึ่งพาอาศัยกันเป็นเทคนิคที่ใช้ในการระบุความสัมพันธ์ทางความหมายระหว่างคำในประโยค ตัวแยกวิเคราะห์การพึ่งพาใช้เพื่อแมปคำในประโยคกับบทบาทเชิงความหมาย ดังนั้นจึงระบุความสัมพันธ์ทางวากยสัมพันธ์ระหว่างคำ การแยกวิเคราะห์การพึ่งพาอาศัยกันเป็นแนวทางที่รู้จักกันดีสำหรับการวิเคราะห์วากยสัมพันธ์ของข้อความภาษาธรรมชาติที่ระดับโครงสร้างพื้นผิว ในวิธีนี้ โครงสร้างวากยสัมพันธ์ของประโยคจะถูกกู้คืนจากลำดับเชิงเส้นของโทเค็นคำ โดยการวิเคราะห์การพึ่งพาวากยสัมพันธ์ระหว่างคำและการระบุหมวดหมู่วากยสัมพันธ์ของแต่ละคำ
แอปพลิเคชันของการแยกวิเคราะห์การพึ่งพาคืออะไร?
ต่อไปนี้คือรายการของพื้นที่แอปพลิเคชันต่างๆ ที่ใช้การแยกวิเคราะห์การขึ้นต่อกัน การใช้งานที่สำคัญอย่างหนึ่งของการแยกวิเคราะห์การพึ่งพาคือการติดฉลากบทบาทเชิงความหมาย (SRL) และการดึงข้อมูลซึ่งเป็นส่วนประกอบของการประมวลผลภาษาธรรมชาติ การแยกวิเคราะห์การพึ่งพายังใช้สำหรับการแบ่งกลุ่มวากยสัมพันธ์และการแยกวิเคราะห์การเลือกตั้งนอกงาน NLP การแยกวิเคราะห์การพึ่งพาอาศัยกันโดยพื้นฐานแล้วแตกต่างจากการแยกวิเคราะห์โครงสร้างวลี ซึ่งจับคู่คำในประโยคกับเครื่องหมายวลีหรือโครงสร้างต้นไม้ที่สอดคล้องกัน
อะไรคือความแตกต่างพื้นฐานระหว่างการแยกวิเคราะห์วากยสัมพันธ์และการแยกวิเคราะห์การพึ่งพา?
ความแตกต่างระหว่างตัวแยกวิเคราะห์วากยสัมพันธ์และตัวแยกวิเคราะห์การพึ่งพาคือ ตัวแยกวิเคราะห์การขึ้นต่อกันสร้างแผนผังการแยกวิเคราะห์และตัวแยกวิเคราะห์วากยสัมพันธ์สร้างแผนผังไวยากรณ์ การแยกวิเคราะห์วากยสัมพันธ์เกี่ยวข้องกับการใช้กฎที่กำหนดไว้ล่วงหน้าเพื่อกำหนดวากยสัมพันธ์ และในทางกลับกัน ตัวแยกวิเคราะห์การพึ่งพาสามารถเข้าใจวลีทุกประเภทและยังสามารถจัดการกับอินพุตที่คลุมเครือได้ ตัวแยกวิเคราะห์การพึ่งพาสามารถใช้สำหรับการรู้จำวลี การแบ่งกลุ่ม การวิเคราะห์การพึ่งพา การแบ่งกลุ่ม และการแยกวิเคราะห์