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:
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
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
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.
- "
- 7
- Semua
- analisis
- analisis
- aplikasi
- sekitar
- artikel
- artikel
- kecerdasan buatan
- Blog
- Sarapan
- mobil
- kode
- kedatangan
- Umum
- Komputer Ilmu
- data
- ilmu data
- Teknik
- Inggris
- ekstraksi
- Pertama
- pertama kali
- bentuk
- Gratis
- gigi
- baik
- merebut
- Tatabahasa
- Kelompok
- di sini
- Disorot
- Seterpercayaapakah Olymp Trade? Kesimpulan
- HTTPS
- ide
- mengenali
- Termasuk
- India
- informasi
- ekstraksi informasi
- Intelijen
- bunga
- IT
- bahasa
- Bahasa
- BELAJAR
- pengetahuan
- Perpustakaan
- baris
- Daftar
- cinta
- tanda
- Cocok
- Media
- Paling Populer
- bioskop
- yaitu
- Bahasa Alami
- Pengolahan Bahasa alami
- nLP
- Lainnya
- Lainnya
- pola
- frase
- Populer
- PoS
- menyajikan
- Profil
- Ular sanca
- RE
- pembaca
- ISTIRAHAT
- Sekolah
- Ilmu
- Pendek
- Potret
- So
- MEMECAHKAN
- Spot
- tinggal
- mahasiswa
- mendukung
- Teknologi
- waktu
- Tokenisasi
- us
- Apa itu
- dalam
- kata
- tahun
- nol