Apa yang dimaksud dengan Chunking dalam pemrosesan Bahasa Alami?

Node Sumber: 1878431

Pembaca yang terhormat,

Di blog ini, saya akan membahas chunking baik secara teoritis maupun praktis dengan Python.

Jadi, mari kita mulaiโ€ฆ

CATATAN: Untuk implementasinya, lebih baik menggunakan Python IDLE karena outputnya adalah gambar pohon yang muncul di jendela terpisah.

Agenda

  • Apa itu chunking?
  • Di mana chunking digunakan?
  • Jenis-jenis chunking
  • Implementasi chunking dengan Python
  • Hasil

Apa itu chunking?

Chunking didefinisikan sebagai proses pemrosesan bahasa alami yang digunakan untuk mengidentifikasi bagian-bagian ucapan dan frasa pendek yang ada dalam kalimat tertentu.

Mengingat kelas tata bahasa Inggris lama kita yang baik di sekolah, perhatikan bahwa ada delapan bagian ucapan yaitu kata benda, kata kerja, kata sifat, kata keterangan, preposisi, konjungsi, kata ganti, dan kata seru. Juga, dalam definisi chunking di atas, frasa pendek merujuk pada frasa yang dibentuk dengan memasukkan salah satu bagian dari pidato ini.

Misalnya, chunking dapat dilakukan untuk mengidentifikasi dan dengan demikian mengelompokkan frase nomina atau nomina saja, adjektiva atau frase adjektiva, dan sebagainya. Perhatikan kalimat di bawah ini:

โ€œSaya punya burger dan kue kering untuk sarapan.โ€

Dalam hal ini, jika kita ingin mengelompokkan atau memotong frase kata benda, kita akan mendapatkan โ€œburgerโ€, โ€œkue keringโ€ dan โ€œmakan siangโ€ yang merupakan kelompok kata benda atau kata benda dari kalimat tersebut.

Di mana chunking digunakan?

Mengapa kita ingin mempelajari sesuatu tanpa mengetahui di mana itu digunakan secara luas?! Melihat aplikasi yang dibahas di bagian blog ini akan membantu Anda tetap penasaran sampai akhir!

Chunking digunakan untuk mendapatkan frase yang diperlukan dari kalimat yang diberikan. Namun, penandaan POS hanya dapat digunakan untuk melihat bagian-bagian ucapan yang dimiliki setiap kata dalam kalimat.

Ketika kami memiliki banyak deskripsi atau modifikasi di sekitar kata atau frasa tertentu yang kami minati, kami menggunakan chunking untuk mengambil frasa yang diperlukan saja, mengabaikan sisanya di sekitarnya. Oleh karena itu, chunking membuka jalan untuk mengelompokkan frasa yang diperlukan dan mengecualikan semua pengubah di sekitarnya yang tidak diperlukan untuk analisis kami. Kesimpulannya, chunking membantu kita mengekstrak kata-kata penting saja dari deskripsi yang panjang. Dengan demikian, chunking adalah langkah dalam ekstraksi informasi.

Menariknya, proses chunking di NLP ini diperluas ke berbagai aplikasi lain; misalnya, untuk mengelompokkan buah-buahan dari kategori tertentu, katakanlah, buah-buahan yang kaya protein sebagai satu kelompok, buah-buahan yang kaya vitamin sebagai kelompok lain, dan seterusnya. Selain itu, chunking juga dapat digunakan untuk mengelompokkan mobil-mobil sejenis, katakanlah, mobil-mobil yang mendukung auto-gear ke dalam satu kelompok dan yang lainnya yang mendukung gigi manual ke dalam chunk yang lain dan seterusnya.

Jenis Chunking

Secara umum, ada dua jenis chunking:

  • Memotong
  • Memotong

Memotong:

Di sini, kita tidak menyelam terlalu dalam; sebagai gantinya, kami senang hanya dengan ikhtisar informasi. Itu hanya membantu kita mendapatkan gambaran singkat tentang data yang diberikan.

Memotong:

Tidak seperti jenis chunking sebelumnya, chunking down membantu kita mendapatkan informasi yang detail.

Jadi, jika Anda hanya ingin wawasan, pertimbangkan untuk "membongkar" atau lebih suka "membongkar".

Implementasi chunking dengan Python

Bayangkan situasi di mana Anda ingin mengekstrak semua kata kerja dari teks yang diberikan untuk analisis Anda. Jadi, dalam hal ini, kita harus mempertimbangkan chunking frase verba. Ini karena tujuan kami adalah mengekstrak semua frasa kata kerja dari bagian teks yang diberikan. Chunking dilakukan dengan bantuan ekspresi reguler.

Jangan khawatir jika ini pertama kalinya Anda menemukan istilah, "ekspresi reguler". Tabel di bawah ini ada di sini, siap membantu Anda:

ะกะธะผะฒะพะป

Arti

Contoh

*

Karakter sebelumnya dapat muncul nol kali atau lebih yang berarti bahwa karakter sebelumnya mungkin ada atau tidak ada.

ab* cocok dengan semua input yang dimulai dengan ab dan kemudian diikuti oleh nol atau lebih jumlah b. Polanya akan cocok dengan ab, abb, abbb dan seterusnya.

+

Karakter sebelumnya harus muncul setidaknya sekali.

a+ cocok dengan a,aa,aaa, dan seterusnya.

?

Karakter sebelumnya mungkin tidak muncul sama sekali atau hanya muncul sekali artinya karakter sebelumnya bersifat opsional.

ab? cocok dengan ab,abb tetapi tidak abbb dan seterusnya.

Tabel di atas mencakup ekspresi reguler yang paling umum digunakan. Ekspresi reguler sangat berguna di baris perintah terutama saat menghapus, menemukan, mengganti nama, atau memindahkan file.

Bagaimanapun, untuk implementasi ini, kami hanya akan menggunakan *. Jangan ragu untuk melihat tabel di atas untuk membiasakan diri dengan simbol!

Kami akan melakukan chunking menggunakan nltk, perpustakaan NLP paling populer. Jadi, mari kita impor dulu.

impor nltk

Mari kita perhatikan contoh teks di bawah ini yang saya buat sendiri. Jangan ragu untuk mengganti di bawah ini dengan teks sampel apa pun yang Anda suka untuk menerapkan chunking!

sample_text=""" Rama membunuh Rahwana untuk menyelamatkan Sita dari Lanka.Legenda Ramayan adalah epik India paling populer.Banyak film dan serial telah dibuat dalam beberapa bahasa di India berdasarkan Ramayana. """

Jelasnya, data harus di-token-kan kalimat dan kemudian di-token-kan kata sebelum kita melanjutkan. Tokenisasi tidak lain adalah proses memecah bagian teks yang diberikan menjadi unit-unit yang lebih kecil seperti kalimat, dalam kasus tokenisasi kalimat dan kata-kata, dalam kasus tokenisasi kata.

Diikuti dengan tokenization, penandaan POS(part-of-speech) dilakukan untuk setiap kata, di mana part-of-speech dari setiap kata akan diidentifikasi. Sekarang, kami hanya tertarik pada kata kerja part-of-speech dan ingin mengekstrak yang sama.

Oleh karena itu, tentukan part-of-speech dari minat kami menggunakan ekspresi reguler yang diperlukan sebagai berikut:

VB: {}

tokenized=nltk.sent_tokenize(sample_text) untuk saya dalam tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}" "" chunkParser=nltk.RegexpParser(chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()

Ekspresi reguler(RE) diapit oleh tanda kurung sudut() yang pada gilirannya diapit oleh tanda kurung kurawal({ dan }).

CATATAN:  Tentukan RE sesuai POS yang dibutuhkan

VB adalah singkatan dari kata kerja POS. Titik yang menggantikan VB berarti mencocokkan karakter apa pun yang mengikuti VB. Tanda tanya setelah titik menentukan bahwa setiap karakter setelah B harus muncul hanya sekali atau tidak boleh muncul sama sekali. Namun, dari tabel yang kita lihat sebelumnya, karakter ini opsional. Kami telah membingkai ekspresi reguler dengan cara ini karena, di NLTK, frasa kata kerja menyertakan tag POS berikut:

POS

Arti

VB

Kata kerja dalam bentuk dasarnya

VBD

kata kerja dalam bentuk lampau

GBV

kata kerja dalam present tense

VBN

kata kerja dalam bentuk past participle

VBP

Kata kerja dalam present tense tetapi tidak dalam bentuk orang ketiga tunggal

VBZ

Kata kerja dalam present tense dan merupakan orang ketiga tunggal

Dengan demikian, frase kata kerja dapat menjadi milik salah satu dari POS di atas. Itu sebabnya ekspresi reguler dibingkai sebagai VB.? yang mencakup semua kategori di atas. Paket RegexpParser digunakan untuk memeriksa apakah POS memenuhi pola yang kami butuhkan yang telah kami sebutkan menggunakan RE sebelumnya.

Seluruh kode dapat dilihat sebagai berikut:

import nltk nltk.download('averaged_perceptron_tagger') sample_text=""" Rama membunuh Rahwana untuk menyelamatkan Sita dari Lanka.Legenda Ramayan adalah epik India paling populer.Banyak film dan serial telah dibuat dalam beberapa bahasa di sini di India berdasarkan Ramayana. =r"""VB: {}""" chunkParser=nltk.RegexpParser(chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()

Hasil

hasil potongan
hasil potongan

Akhirnya, kami memperoleh bentuk pohon POS dari kata-kata bersama dengan kata-kata yang POS-nya cocok dengan RE yang diberikan. Cuplikan dari output yang diperoleh untuk contoh teks yang kami lewati dapat dilihat pada gambar di atas.

Perhatikan bahwa kata-kata yang memenuhi RE kami untuk frasa kata kerja saja disorot dengan jelas dalam output. Oleh karena itu, chunking frase kata kerja telah berhasil dilakukan.

Semoga Anda menemukan artikel saya bermanfaat.

Terima Kasih!

Referensi

1. Menerapkan chunking dengan Python

2. Teori di balik chunking

3. Daftar lengkap POS tersedia di NLP

Tentang Saya

Saya Nithyashree V, mahasiswa BTech tahun terakhir Ilmu Komputer dan Teknik. Saya suka mempelajari teknologi keren seperti itu dan mempraktikkannya, terutama mengamati bagaimana teknologi itu membantu kita memecahkan masalah masyarakat yang menantang. Bidang minat saya meliputi Kecerdasan Buatan, Ilmu Data, dan Pemrosesan Bahasa Alami.

Ini profil LinkedIn saya: LinkedIn saya

Anda dapat membaca artikel saya yang lain di Analytics Vidhya dari di sini.

Media yang ditampilkan dalam artikel ini bukan milik Analytics Vidhya dan digunakan atas kebijaksanaan Penulis.

Sumber: https://www.analyticsvidhya.com/blog/2021/10/what-is-chunking-in-natural-language-processing/

Stempel Waktu:

Lebih dari Analisis Vidhya