Parsing Ketergantungan di NLP [Dijelaskan dengan Contoh]
Diterbitkan: 2021-03-10Pemrosesan Bahasa Alami adalah konsep interdisipliner yang mengambil dasar-dasar linguistik komputasi dan Kecerdasan Buatan untuk memahami bagaimana bahasa manusia berinteraksi dengan teknologi.
NLP membutuhkan pemahaman mendalam tentang berbagai terminologi dan konsep untuk menerapkannya secara nyata ke skenario dunia nyata. Beberapa dari konsep dasar ini antara lain adalah Part-of-Speech(POS) Tagging, Statistical Language Modeling, Syntactic, Semantic and Sentiment Analysis, Normalization, Tokenization, Dependency Parsing, dan Constituency Parsing, antara lain.
Pada artikel ini, kita akan melihat dasar-dasar Dependency Parsing untuk mendapatkan perspektif tentang bagaimana penerapannya di NLP.
Daftar isi
Penguraian Ketergantungan
Dependency Parsing (DP) mengacu pada pemeriksaan ketergantungan antara kata-kata dalam sebuah kalimat untuk menganalisis struktur gramatikalnya. Berdasarkan hal ini, sebuah kalimat dipecah menjadi beberapa komponen. Mekanismenya didasarkan pada konsep bahwa ada hubungan langsung antara setiap unit linguistik dari sebuah kalimat. Tautan ini disebut dependensi.
Mari kita ambil contoh kalimat “ Saya lebih suka penerbangan pagi melalui Denver.”
Diagram di bawah ini menjelaskan struktur ketergantungan kalimat:
Sumber
Hubungan antara setiap unit linguistik, atau kata, dari kalimat, ditunjukkan dengan menggunakan busur berarah dalam struktur ketergantungan yang diketik. Seperti yang tertera pada diagram, akar pohon “lebih suka” membentuk kepala kalimat di atas.
Hubungan antara dua kata ditandai dengan tag ketergantungan. Misalnya, kata "penerbangan" memodifikasi arti kata benda "Denver." Oleh karena itu, Anda dapat melihat ketergantungan dari penerbangan -> Denver di mana penerbangan adalah kepala dan Denver adalah anak atau tanggungan. Ini dilambangkan dengan nmod yang mewakili pengubah nominal.
Ini membentuk kasus ketergantungan antara setiap dua kata di mana yang satu bertindak sebagai kepala dan yang lainnya adalah yang bergantung. Saat ini, taksonomi Ketergantungan Universal V2 terdiri dari 37 hubungan sintaksis universal seperti yang ditentukan dalam tabel di bawah ini:
Tag Ketergantungan | Keterangan |
acl | pengubah klausa kata benda (klausa adnominal) |
acl:relcl | pengubah klausa relatif |
advcl | pengubah klausa adverbial |
advmod | pengubah kata keterangan |
advmod: emph | kata penekanan, intensifier |
advmod:lmod | pengubah adverbial lokatif |
amod | pengubah kata sifat |
kira-kira | pengubah aposisional |
tambahan | bantu |
aux: lulus | bantu pasif |
kasus | penandaan kasus |
cc | konjungsi koordinatif |
cc:preconj | prakonjungsi |
comp | pelengkap klausa |
klf | penggolong |
menggabungkan | menggabungkan |
senyawa: lvc | konstruksi kata kerja ringan |
senyawa: prt | partikel kata kerja phrasal |
senyawa: redup | senyawa terduplikasi |
senyawa:svc | senyawa kata kerja seri |
konjungsi | yg diperbantukan |
polisi | kata kerja penghubung |
csubj | subjek klausa |
csubj: lulus | subjek pasif klausa |
dalam | ketergantungan yang tidak ditentukan |
det | penentu |
det:numgov | kuantifier pronominal yang mengatur kasus kata benda |
det:nummod | quantifier pronominal setuju dalam kasus dengan kata benda |
det:poss | penentu posesif |
ceramah | elemen wacana |
terkilir | elemen terkilir |
penjelasan | kata lontaran |
contoh: impers | sumpah serapah impersonal |
contoh: lulus | kata ganti refleksif digunakan dalam pasif refleksif |
contoh: pv | klitik refleksif dengan kata kerja refleksif yang inheren |
tetap | ekspresi multikata tetap |
datar | ekspresi multikata datar |
datar: asing | kata-kata asing |
datar: nama | nama |
Pergi dengan | Pergi dengan |
iobj | objek tidak langsung |
Daftar | Daftar |
tanda | penanda |
nmod | pengubah nominal |
nmod:poss | pengubah nominal posesif |
nmod:tmod | pengubah temporal |
nsubj | subjek nominal |
nsubj: lulus | subjek nominal pasif |
nummod | pengubah numerik |
nummod:gov | pengubah numerik yang mengatur kasus kata benda |
obj | obyek |
obl | nominal miring |
obl:agen | pengubah agen |
obl:arg | argumen miring |
obl:lmod | pengubah lokasi |
obl:tmod | pengubah temporal |
anak yatim | anak yatim |
parataksis | parataksis |
tepat | tanda baca |
jaminan | ketidaklancaran yang ditimpa |
akar | akar |
menarik | menarik |
xcomp | pelengkap klausa terbuka |
Parsing Ketergantungan menggunakan NLTK
Dependency Parsing dapat dilakukan dengan menggunakan paket Natural Language Toolkit (NLTK) yang merupakan kumpulan library dan kode yang digunakan dalam statistik Natural Language Processing (NLP) bahasa manusia.
Kita dapat menggunakan NLTK untuk mencapai penguraian ketergantungan melalui salah satu metode berikut:
- Pengurai ketergantungan probabilistik, proyektif : Pengurai ini menggunakan pengetahuan bahasa manusia yang diperoleh dari kalimat yang diurai dengan tangan untuk memprediksi kalimat baru. Mereka diketahui membuat kesalahan dan bekerja dengan kumpulan data pelatihan yang terbatas.
- Stanford parser : Ini adalah parser bahasa alami yang diimplementasikan di Java. Anda memerlukan pengurai Stanford CoreNLP untuk melakukan penguraian ketergantungan. Parser mencakup beberapa bahasa termasuk Inggris, Cina, Jerman, dan Arab.
Inilah cara Anda dapat menggunakan parser:
dari nltk.parse.stanford impor 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('Saya menembak seekor gajah dalam tidur saya')
ketergantungan = hasil.berikutnya()
daftar(ketergantungan.tiga kali lipat())
Output dari program di atas adalah sebagai berikut:
[
((u'shot', u'VBD'), u'nsubj', (u'I', u'PRP')),
((u'shot', u'VBD'), u'dobj', (u'gajah', u'NN')),
((u'gajah', 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$'))
]
Penguraian Daerah Pemilihan
Penguraian Konstituen didasarkan pada tata bahasa bebas konteks. Di sini, pohon parse menyertakan kalimat yang dipecah menjadi sub-frasa, masing-masing termasuk dalam kategori tata bahasa. Setiap unit linguistik atau kata dalam kalimat bertindak sebagai simpul terminal, yang memiliki simpul induknya dan tag bagian ucapan.
Misalnya, frasa "kucing" dan "kotak di bawah tempat tidur" adalah frasa kata benda, sedangkan "menulis surat" dan "mengendarai mobil" adalah frasa kata kerja.
Mari kita perhatikan contoh kalimat “ Saya menembak gajah dengan piyama saya.” Berikut adalah representasi grafis dari pohon parse konstituen:
Sumber
Pohon parse di sebelah kiri mengacu pada menembak gajah yang mengenakan piyama dan pohon parse di sebelah kanan menunjukkan subjek yang menembak gajah saat mengenakan piyama.
Seluruh kalimat dipecah menjadi sub-fase sampai kita memiliki kata-kata terminal yang tersisa. VP menunjukkan frase kata kerja dan NP menunjukkan frase kata benda.
Penguraian Ketergantungan vs Penguraian Konstituen
Penguraian konstituen juga dapat diimplementasikan menggunakan pengurai Stanford. Ini pada dasarnya mem-parsing kalimat yang diberikan sesuai dengan parser konstituen dan kemudian mengubah pohon parse konstituen menjadi pohon dependensi.
Jika tujuan Anda adalah memecah kalimat menjadi sub-frasa, Anda harus menerapkan penguraian konstituen. Namun, jika Anda ingin menjelajahi ketergantungan antara kata-kata dalam sebuah kalimat, Anda harus menggunakan penguraian ketergantungan.
Lihat: Ide & Topik Proyek NLP
Kesimpulan
Jika Anda merasa artikel ini bermanfaat, Anda harus melihat Sertifikasi PG 6 bulan di Pembelajaran Mesin dan NLP upGrad yang menawarkan bimbingan pribadi dari pakar industri Flipkart, Gramener, dan Zee5.
Program ini dirancang untuk para insinyur, perangkat lunak/TI, Data & profesional lainnya yang ingin mendapatkan pijakan dalam Ilmu Data dan Pembelajaran Mesin. Sertifikasi Pasca Sarjana dari IIIT BBangalorethe ini menawarkan kenaikan gaji rata-rata 58% yang Anda butuhkan untuk mendapatkan posisi lanjutan sebagai Analis Data, Ilmuwan Data, Insinyur ML, dan Insinyur NLP di perusahaan-perusahaan top. Blokir kursi Anda hari ini hanya dengan Rs. 3.034 per bulan!
Apa gunanya penguraian ketergantungan di NLP?
Dalam pemrosesan bahasa alami, penguraian ketergantungan adalah teknik yang digunakan untuk mengidentifikasi hubungan semantik antara kata-kata dalam sebuah kalimat. Pengurai ketergantungan digunakan untuk memetakan kata-kata dalam kalimat ke peran semantik, sehingga mengidentifikasi hubungan sintaksis antara kata-kata. Penguraian ketergantungan adalah pendekatan yang terkenal untuk analisis sintaksis teks bahasa alami pada tingkat struktur permukaan. Dalam metode ini, struktur sintaksis sebuah kalimat diperoleh dari urutan linier token kata, dengan menganalisis ketergantungan sintaksis antara kata-kata dan mengidentifikasi kategori sintaksis dari setiap kata.
Apa aplikasi penguraian ketergantungan?
Berikut adalah daftar beberapa area aplikasi di mana penguraian ketergantungan digunakan. Salah satu kegunaan utama dari penguraian ketergantungan adalah dalam pelabelan peran semantik (SRL) dan ekstraksi informasi, yang merupakan komponen pemrosesan bahasa alami. Penguraian ketergantungan juga digunakan untuk penguraian sintaksis dan penguraian konstituen di luar tugas NLP. Penguraian ketergantungan pada dasarnya berbeda dari penguraian struktur frasa, yang memetakan kata-kata dalam kalimat ke penanda frasa atau struktur pohon yang sesuai.
Apa perbedaan mendasar antara penguraian sintaksis dan penguraian ketergantungan?
Perbedaan antara pengurai sintaksis dan pengurai ketergantungan adalah, pengurai ketergantungan membangun pohon pengurai dan pengurai sintaksis membangun pohon sintaksis. Penguraian sintaksis melibatkan penggunaan aturan yang telah ditentukan sebelumnya untuk mendefinisikan sintaks dan pengurai ketergantungan, di sisi lain, dapat memahami semua jenis frasa dan juga dapat menangani input yang ambigu. Pengurai ketergantungan dapat digunakan untuk pengenalan frase, chunking, analisis ketergantungan, chunking dan parsing.