Nicholas Rayden
Mata Kuliah temu kembali informasi (information retrieval) adalah mata kuliah peminatan di Universitas Pembangunan Nasional “Veteran” Jakarta. Mata kuliah ini secara garis besar membahas tentang pengolahan data seperti feature extraction speech, speech classification, deep neural network, text processing, dan lain sebagainya.
Deep Neural Network (DNN) adalah salah satu teknologi dalam bidang deep learning yang memungkinkan mesin untuk belajar dan membuat keputusan secara otomatis dari data yang diberikan. DNN terdiri dari beberapa lapisan neuron yang saling terhubung dan dapat mempelajari representasi data yang semakin kompleks, sehingga dapat menghasilkan prediksi yang lebih akurat.
DNN memiliki arsitektur yang berupa sekumpulan neuran yang teroganisir dalam lapisan-lapisan layer yang terbagi menjadi 3 bagian, yaitu:
Dari layer-layer tersebut terdapat perhitungan di dalamnya. Langkah-langkah perhitungan terdiri dari:
EDA atau Exploration Data Analysis adalah suatu metode dalam analisis data yang bertujuan untuk memahami karakteristik dan pola yang ada dalam dataset secara visual maupun deskriptif. Tujuan dari EDA adalah untuk menganalisis informasi penting dalam data, mengidentifikasi hubungan antara variabel, serta mendeteksi anomali atau pencilan (outlier) yang mungkin ada dalam dataset. EDA juga membantu dalam memahami distribusi data, mengeksplorasi korelasi antara variabel, dan menemukan pola menarik yang dapat memberikan wawasan atau intuisi awal tentang data.
Metode yang digunakan dalam EDA antara lain meliputi visualisasi data menggunakan grafik, diagram, dan plot seperti histogram, scatter plot, box plot, dan sebagainya. Selain itu, EDA juga melibatkan perhitungan statistik deskriptif seperti rata-rata, median, simpangan baku, korelasi, dan persentil untuk memberikan pemahaman yang lebih mendalam tentang dataset.
Summary statistic dari EDA terdiri dari:
Data Normalisasi
Data normalisasi adalah proses untuk mengubah skala atau rentang nilai variabel dalam dataset ke rentang yang lebih standar atau normal. Tujuan dari normalisasi adalah untuk memastikan bahwa variabel-variabel dalam dataset memiliki skala yang serupa, sehingga memudahkan perbandingan dan analisis antara variabel tersebut.
Data normalisasi sendiri memiliki hubungan yang erat dengan EDA. Normalisasi membantu menyederhanakan visualisasi data dengan mengubah variabel-variabel dengan skala yang berbeda menjadi skala yang serupa, sehingga mempermudah pembacaan dan pemahaman visualisasi. Selain itu, normalisasi juga memfasilitasi perbandingan antara variabel-variabel dengan skala yang berbeda, memungkinkan analisis hubungan yang lebih langsung. Dengan normalisasi, interpretasi hasil EDA juga ditingkatkan karena variabel yang diubah ke skala yang serupa memperjelas pola dan hubungan yang ada dalam data. Dalam EDA, normalisasi berperan penting dalam mengoptimalkan visualisasi, memudahkan perbandingan yang akurat, dan memperkuat interpretasi analisis data.
Terdapat beberapa metode yang digunakan untuk melakukan normalisasi data:
Korelasi
Korelasi adalah salah satu konsep penting dalam Exploratory Data Analysis (EDA). Dalam konteks EDA, korelasi mengacu pada hubungan statistik antara dua atau lebih variabel dalam dataset. Korelasi mengukur sejauh mana perubahan dalam satu variabel terkait dengan perubahan dalam variabel lainnya. Korelasi juga dapat memberikan informasi tentang kekuatan dan arah hubungan antara variabel, apakah hubungannya kuat atau lemah.
Korelasi dapat membantu dalam memahami hubungan antara variabel-variabel tersebut, apakah hubungannya positif (ketika nilai satu variabel naik, nilai variabel lainnya juga naik) atau negatif (ketika nilai satu variabel naik, nilai variabel lainnya turun). Korelasi dengan nilai positif 1 berarti korelasi yang diperoleh adalah Perfect Positive Correlation. Sedangkan, korelasi dengan nilai negatif 1 berarti korelasi yang diperoleh adalah Perfect Negative Correlation. Tetapi jika korelasi yang diperoleh bernilai 0, maka pada variabel yang dibandingkan tidak terdapat korelasi sama sekali.
Untuk mengukur korelasi antara dua variabel numerik, salah satu metode yang umum digunakan adalah koefisien korelasi Pearson. terdapat langkah-langkah untuk melakukan Pearson Correlation:
Speech Processing adalah suatu bidang yang berfokus pada pemrosesan dan analisis sinyal suara manusia. Tujuan utama dari Speech Processing adalah mengubah sinyal suara menjadi informasi yang dapat dipahami atau diinterpretasikan oleh mesin. Bidang ini mencakup beberapa tugas seperti pengenalan suara (speech recognition), sintesis suara (speech synthesis), pemahaman bahasa alami (natural language understanding), dan lain-lain. Pengolahan suara dapat melibatkan tahap pemrosesan awal seperti pembersihan dan normalisasi sinyal suara, serta tahap ekstraksi fitur seperti pengenalan pola suara, identifikasi pembicara, ekstraksi emosi dari suara, dan pemodelan linguistik. Metode yang umum digunakan dalam Speech Processing meliputi teknik pengolahan digital, pembelajaran mesin, pengolahan bahasa alami, dan pengolahan sinyal suara.
Music Information Retrieval (MIR) adalah suatu bidang pemrosesan, analisis, dan pengambilan informasi dari data musik. Tujuannya adalah untuk mengembangkan algoritma dan teknik yang dapat mengidentifikasi, mengklasifikasikan, dan mengekstrak informasi penting dari data musik. Dalam Music Information Retrieval, beberapa tugas utama meliputi pengenalan musik (music recognition), pemodelan genre musik, pemilihan dan rekomendasi musik, analisis melodi dan ritme, identifikasi instrumen musik, dan banyak lagi. Metode yang digunakan dalam MIR mencakup teknik pengolahan sinyal, analisis spektral, pembelajaran mesin, pengenalan pola, dan statistik.
Contoh Speech Processing dan Music Information Retrieval pada Dataset Speech Classification:
Melakukan koneksi google colaboratory dengan drive
Melakukan import library python yang diperlukan
Melakukan deklarasi variabel spektogram dan labels untuk menyimpan data dari folder 'OAF_Sad', 'OAF_happy', dan 'OAF_angry'
Melakukan iterasi melalui daftar folder, membaca file audio dalam format .wav, mengubahnya menjadi spektogram, dan menyimpan spektogram serta label folder dalam sebuah dataframe.
Menghitung jumlah instansi untuk setiap label dalam dataframe, kemudian membuat diagram batang yang menampilkan distribusi label
Melakukan pemuatan dan memvisualisasikan data audio dari file "OAF_cool_sad.wav" dengan menggunakan beberapa representasi seperti waveform, spektrogram, dan chromagram
Menggunakan fungsi ipd.Audio() untuk memutar audio yang telah dimuat (sad) dengan tingkat sampel (fs_sad)
Menampilkan rentang data audio, menghitung tingkat lintasan nol (zero crossing rate) dari audio, dan memvisualisasikan perubahan tingkat lintasan nol dari waktu ke waktu
Menghitung energi root-mean-square (RMSE) dari audio sad dengan menggunakan frame sepanjang frame_length
Menghitung centroid spektral dari audio sad menggunakan fungsi librosa.feature.spectral_centroid(). Kemudian, nilai centroid spektral tersebut divisualisasikan dalam bentuk plot dengan skala logarithmic
Menghitung koefisien cepstral frekuensi Mel (MFCC) dari audio sad menggunakan fungsi librosa.feature.mfcc(). Setelah itu, koefisien MFCC tersebut diubah skala menggunakan sklearn.preprocessing.scale() pada sumbu yang sesuai. Kemudian, hasil MFCC divisualisasikan dalam bentuk spektrogram menggunakan librosa.display.specshow(), dengan sumbu x sebagai waktu.
Text processing adalah proses manipulasi dan analisis teks menggunakan komputer untuk memperoleh tujuan tertentu. Text processing sendiri terdiri dari beberapa tahap yaitu tokenisasi, Stopword removal, Stemming dan Lemmatization, Part-of-Speech Tagging, Natural Language Processing, Pattern Matching, serta Klasifikasi dan Pemodelan.
Tokenisasi
Tokenisasi dalam pemrosesan teks adalah proses membagi teks menjadi unit-unit yang lebih kecil yang disebut "token." Token tersebut bisa berupa kata, frasa, atau entitas lainnya seperti simbol atau karakter khusus. Tokenisasi merupakan tahap awal yang penting dalam banyak tugas pemrosesan bahasa alami (Natural Language Processing/NLP).
Tujuan utama tokenisasi adalah mengubah teks menjadi bentuk yang lebih terstruktur dan dapat diolah oleh komputer. Tokenisasi diperlukan untuk:
Dalam praktiknya, ada beberapa pendekatan yang berbeda untuk tokenisasi, termasuk tokenisasi berbasis aturan (rule-based) dan tokenisasi berbasis mesin pembelajaran (machine learning). Pendekatan berbasis aturan menggunakan aturan pemisahan yang telah ditentukan sebelumnya, sementara pendekatan berbasis mesin pembelajaran menggunakan model statistik atau algoritme pembelajaran mesin untuk mempelajari pola pemisahan dari data pelatihan.
Stopword Removal
Stopword removal atau penghapusan stopwords adalah proses dalam pemrosesan teks yang melibatkan penghapusan kata-kata umum yang memiliki sedikit kontribusi terhadap makna dan pemahaman teks. Kata-kata ini biasanya adalah kata fungsi seperti "dan," "atau," "saya," "kamu," dan sebagainya. Penghapusan stopwords dapat membantu mengurangi dimensi data, meningkatkan efisiensi pemrosesan, dan meningkatkan kualitas analisis teks. Berikut adalah penjelasan lebih terperinci mengenai penghapusan stopwords:
Penghapusan stopwords memiliki beberapa manfaat dalam pemrosesan teks:
Dalam text processing sendiri, terdapat beberapa pendekatan yang digunakan untuk mengidentifikasi stopword:
Stemming dan Lemmatization
Stemming dan lemmatization adalah dua teknik yang digunakan dalam pemrosesan bahasa alami (Natural Language Processing/NLP) untuk mereduksi kata-kata ke bentuk dasarnya. Tujuan dari kedua teknik ini adalah untuk mengurangi variasi kata yang mungkin terjadi dalam teks sehingga kata-kata dengan bentuk dasar yang sama dapat diperlakukan secara seragam. Namun, kedua teknik ini memiliki pendekatan yang berbeda. Berikut penjelasan terperinci mengenai stemming dan lemmatization:
Part-of-Speech Tagging
Part-of-Speech (POS) Tagging, atau pelabelan kelas kata, adalah proses dalam pemrosesan bahasa alami yang menentukan kelas kata untuk setiap kata dalam sebuah teks. Tujuan utamanya adalah memberikan informasi tentang peran gramatikal setiap kata dalam kalimat. Dengan POS tagging, setiap kata diberi label dengan kelas kata seperti kata benda, kata kerja, kata sifat, kata keterangan, dan lain-lain. Metode yang digunakan dalam POS tagging dapat berupa aturan linguistik, model statistik, atau kombinasi keduanya. Tantangan dalam POS tagging termasuk kata-kata dengan makna ganda, kata-kata tak lazim, dan bahasa asing. POS tagging sangat penting dalam analisis sintaksis, pemahaman teks, dan aplikasi NLP lainnya, karena memberikan dasar yang kuat untuk pemrosesan dan pemahaman teks secara lebih mendalam.
Natural Language Processing
Natural Language Processing (NLP) adalah cabang dari ilmu komputer dan kecerdasan buatan yang berfokus pada interaksi antara komputer dan bahasa manusia alami. NLP melibatkan pengolahan, pemahaman, dan generasi teks yang dilakukan oleh komputer. Tujuan utama NLP adalah memungkinkan komputer untuk memahami, menganalisis, dan menghasilkan teks yang setara dengan kemampuan manusia. NLP digunakan dalam berbagai aplikasi seperti pemrosesan teks otomatis, pencarian informasi, sistem rekomendasi, analisis sosial media, deteksi spam, dan lain sebagainya.
Pattern Matching
Pattern matching adalah proses mencari pola atau kesamaan tertentu dalam sebuah teks atau rangkaian karakter. Dalam konteks pemrosesan bahasa alami (Natural Language Processing/NLP), pattern matching sering digunakan untuk mencari pola kata-kata atau frasa yang sesuai dengan pola yang ditentukan. Hal ini berguna dalam berbagai tugas seperti pencarian informasi, ekstraksi entitas, analisis sentimen, dan lain-lain.
Ada beberapa pendekatan yang dapat digunakan untuk melakukan pattern matching:
Pattern matching dapat sangat berguna dalam pemrosesan bahasa alami untuk mengidentifikasi pola, mencocokkan entitas, melakukan ekstraksi informasi, atau memvalidasi format teks yang diinginkan. Dalam banyak kasus, kombinasi dari berbagai metode dan teknik pattern matching digunakan untuk mencapai hasil yang optimal.
Klasifikasi dan Pemodelan
Klasifikasi dan pemodelan dalam pemrosesan teks adalah teknik-teknik yang digunakan untuk mengkategorikan atau mengelompokkan teks berdasarkan pola atau karakteristik tertentu, serta untuk membangun model statistik atau pembelajaran mesin yang dapat memprediksi atau menggeneralisasi pola tersebut. Klasifikasi dan pemodelan dalam text processing terdiri dari:
Contoh Text Processing dan Text Mining ada data Sentiment Labelled Sentences:
Melakukan koneksi google colaboratory dengan drive
Melakukan import library nltk dan melakukan download package punkt, stopwords, vader_lexicon, dan wordnet
Melakukan import library pandas, nltk, string, dan re (reguler).
Membaca file CSV yang menyimpan data imdb, amazon, dan yelp
Melakukan penggabungan setiap data menjadi satu kolom dan mengecualikan pengambilan nilai NaN. Setelah data bersih diperoleh, gabungkan menjadi satu dataframe dengan nama kolom Amazon, IMDB, dan Yelp.
Melakukan Tokenisasi pada setiap data di dalam dataframe
Melakukan penghapusan terhadap stopwords pada setiap data di dataframe
Melakukan Lemmatisasi data pada setiap data di dalam dataframe
Melakukan penghapusan pada tanda baca yang tidak penting
Melakukan penghapusan terhadap kata yang tidak perlu (ini merupakan langkah opsional dikarenakan data sudah melakukan penghapusan stop word)
Melakukan penghapusan element list kosong pada data (ini juga merupakan langkah opsional, tetapi alangkah baiknya melakukan untuk menghindari terdapat element yang kosong pada list)
Melakukan penggabungan kata-kata yang telah diolah untuk menjadi sebuah kalimat utuh
Output: