Ekstraksi Teks Spesifik dengan Regular Expression (REGEX) R Bagian II

Regular Expression Regex dengan R

Regular Expression atau yang biasa disingkat Regex merupaan elemen penting yang perlu dipahami dalam Natural Languge Processing (NLP). Apalagi di era Big Data saat ini banyak data yang masih dalam kondisi yang "kotor" karena tercampur aduk antara data tidak terstruktur, data terstruktur, bahkan teraduk pula dalam data semi terstruktur, seperti HTML, XML, XHTML, JSON, dan lainnya.

Bahasan penggunaan regex kali ini merupakan kali kedua yang secara khusus kita bahas. Bahasan sebelumnya, dapat teman-teman baca pada link berikut. Adapun praktik ekstraksi teks kali ini kita menggunakan 1 jenis fungsi dalam base yang dimiliki oleh R, yaitu gsub().

Adapun tujuan dari praktik kita kali ini adalah memahami bagaimana menghapus teks atau karakter tertentu sesuai kebutuhan analisis teks menggunakan regex. Dengan menguasai penggunaan regex ini, kita setidaknya mengantongi satu syarat dari sekian syarat disebut sebagai Data Scientist. Pada akhirnya, dari sebuah teks pun, kita akan mampu mendapatkan sebuah data terstruktur rapi untuk kemudian memberikan sejumlah insight termasuk informasi baru yang kita peroleh. Pada praktik regex kali ini akan kita ambil 2 contoh kalimat dengan langkah ekstraksi berikut:

#Membuat Data Teks
x <- "Saya suka mengolah. (Big Data) baik: dengan Python versi \\3. maupun R versi @ 4.0.2"
x
## [1] "Saya suka mengolah. (Big Data) baik: dengan Python versi \\3. maupun R versi @ 4.0.2"
#Menghapus seluruh angka
gsub("[[:digit:]]", "", x)
## [1] "Saya suka mengolah. (Big Data) baik: dengan Python versi \\. maupun R versi @ .."
#Menghapus seluruh huruf
gsub("[[:alpha:]]", "", x)
## [1] "  . ( ) :    \\3.    @ 4.0.2"
#Menghapus seluruh huruf kecil
gsub("[[:lower:]]", "", x)
## [1] "S  . (B D) :  P  \\3.  R  @ 4.0.2"
#Menghapus seluruh huruf besar
gsub("[[:upper:]]", "", x)
## [1] "aya suka mengolah. (ig ata) baik: dengan ython versi \\3. maupun  versi @ 4.0.2"
#Menghapus seluruh huruf yang mengandung R maupun r
gsub("[Rr]", "", x)
## [1] "Saya suka mengolah. (Big Data) baik: dengan Python vesi \\3. maupun  vesi @ 4.0.2"
#Menghapus karakter ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
gsub("[[:punct:]]", "", x)
## [1] "Saya suka mengolah Big Data baik dengan Python versi 3 maupun R versi  402"
#Menghapus tanda kurung Big Data
gsub("[()]", "", x)
## [1] "Saya suka mengolah. Big Data baik: dengan Python versi \\3. maupun R versi @ 4.0.2"
#Menghapus tanda \\
gsub("[\\]", "", x)
## [1] "Saya suka mengolah. (Big Data) baik: dengan Python versi 3. maupun R versi @ 4.0.2"
#Menghapus tanda \\ dan titik (.)
gsub("[\\.]", "", x)
## [1] "Saya suka mengolah (Big Data) baik: dengan Python versi 3 maupun R versi @ 402"
#Menghapus tanda \\, titik (.), dan titik dua (:)
gsub("[\\.:]", "", x)
## [1] "Saya suka mengolah (Big Data) baik dengan Python versi 3 maupun R versi @ 402"
#Menghapus kata di antara (:) dan (\\)
gsub(".*: |[\\].*", "", x)
## [1] "dengan Python versi "
#Membuat kalimat dengan satuan
y <- "Saya memiliki sebuah balok dengan panjang 3.5 cm, lebar 2.78 cm, dan tinggi 5 cm"
y
## [1] "Saya memiliki sebuah balok dengan panjang 3.5 cm, lebar 2.78 cm, dan tinggi 5 cm"
#Memperoleh angka
gsub("[[:alpha:]]", "", y)
## [1] "      3.5 ,  2.78 ,   5 "
#Memperoleh angka panjang
#hilangkan seluruh huruf, kemudian hilangkan kata (spasi)cm kemudian hilangkan spasi
gsub("[[:alpha:]]| cm.*| ", "", y)
## [1] "3.5"
#Memperoleh angka lebar
#hilangkan huruf sampai kata lebar (spasi), lalu hilangkan setelah kata cm
gsub(".*lebar | cm.*", "", y)
## [1] "2.78"
#Memperoleh angka tinggi
#hilangkan huruf sampai kata tinggi, kemudian hilangkan spasi dan spasi cm
gsub(".*tinggi| | cm", "", y)
## [1] "5"
#Menghitung volume balok dengan mendapatkan masing-masing ukuran rusuk
p <- as.numeric(gsub("[[:alpha:]]| cm.*| ", "", y))
l <- as.numeric(gsub(".*lebar | cm.*", "", y))
t <- as.numeric(gsub(".*tinggi| | cm", "", y))
print(paste("volume dari balok adalah", p*l*t, "cm kubik"))
## [1] "volume dari balok adalah 48.65 cm kubik"

Demikian sedikit sharing kita ini. Meski sedikit, semoga tetap memberi manfaat bagi seluruh pembaca dan penggemar bahasa pemrograman R. Selamat memahami dan mempraktikkan!

Add Comments


EmoticonEmoticon