Parsing Ketergantungan di NLP [Dijelaskan dengan Contoh]

Diterbitkan: 2021-03-10

Pemrosesan 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:

  1. 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.
  2. 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.