Bagaimana Mengubah Data Tidak Terstruktur menjadi Data Terstruktur dengan REGEX R?

Bagaimana Mengubah Data Tidak Terstruktur menjadi Data Terstruktur dengan REGEX R?

How to make structured data from unstructured data (text) using REGEX R?

Dalam dunia Data Science, kehadiran Big Data menjadi tantangan besar. Bagaimana sebuah data yang berukuran besar, berkecepatan update yang tinggi, memerlukan piranti penyimpan besar, bervariasi, dan mengandung kompleksitas di dalamnya mampu untuk diolah secara benar agar menghasilkan insight sekaligus nilai tambah (value added) bagi perencanaan pembangunan berbasis data.

Sebagaimana bahasan-bahasan sebelumnya mengenai pemanfaatan salah satu elemen Natural Language Processing (NLP), yaitu gsub(), sub(), grep(), setidaknya kita telah mempunyai bekal minimal untuk dapat menangani aspek kompleksitas dan variasi dari Big Data. Bagi sahabat yang hendak mempelajari bahasana mengenai 3 fungsi yang telah disebutkan dapat berkunjung pada tautan berikut [1], [2], [3], [4].

Pada bagian ini, kita akan mencoba mempraktikkan kombinasi dari berbagai jenis Regular Expression (REGEX) R. Adapun tujuan dari praktik kali ini adalah untuk mentransformasi atau mengkonversi data tidak terstruktur (unstructured data) menjadi data terstruktur (structured data). Kita cukup memakai fungsi gsub() namun dengan berbagai bentuk kombinasi REGEX untuk memperoleh informasi dari data teks.

Kita ambil sebuah data teks yang berasal dari Twitter. Data ini sebenarnya merupakan data update situs Pusat Informasi Harga Pangan Strategis Nasional (PIHPS Nasional). Sebuah situs besutan Bank Indonesia sebagai upaya pemerintah menyediakan data-data terkini mengenai perkembangan harga sejumlah komoditas strategis baik menurut wilayah maupun waktu. Data update PIHPS ini kemudian disebarkan oleh sebuah robot di Twitter sehingga hanya berbentuk teks. Bagaimana keseruannya? Yuk check this out!!!....

teks <- "30/01/2023: Harga Minyak Goreng Kemasan Bermerk 1 (kg) di :

⛺ Pasar Tradisional : Rp21.700,-
🏪 Pasar Modern : Rp22.850,-
🎪 Pedagang Besar : Rp19.500,-
👨🏻‍🌾 Produsen : Rp16.149,-"

teks
## [1] "30/01/2023: Harga Minyak Goreng Kemasan Bermerk 1 (kg) di :\n\n<U+26FA> Pasar Tradisional : Rp21.700,-\n<U+0001F3EA> Pasar Modern : Rp22.850,-\n<U+0001F3AA> Pedagang Besar : Rp19.500,-\n<U+0001F468><U+0001F3FB><U+200D><U+0001F33E> Produsen : Rp16.149,-"
#Mendapatkan tanggal
gsub(":.*", "",teks) -> tgl
tgl
## [1] "30/01/2023"
#Mendapatkan komoditas
gsub(".*Harga | 1 .*", "", teks) -> komoditas
komoditas
## [1] "Minyak Goreng Kemasan Bermerk"
#Mendapatkan satuan
gsub(".*1 [(]|[)].*","", teks) -> satuan
satuan
## [1] "kg"
#Mendapatkan Harga Pasar Tradisional
gsub(".*di :| : R.* |\n\n\u26fa Pasar Tradisional : Rp|,-.*", "", teks) -> HPT
HPT
## [1] "16.149"
#Mendapatkan Harga Pasar Moderen
gsub(".*di :| : R.*|.*,-\n\U0001f3ea Pasar Modern : Rp|,-.*", "", teks) -> HPM
HPM
## [1] "22.850"
#Mendapatkan Harga Pedagang Besar
gsub(".*di :| : R.*|.*,-\n\U0001f3aa Pedagang Besar : Rp|,-.*", "", teks) -> HPB
HPB
## [1] "19.500"
#Mendapatkan Harga Produsen
gsub(".* : Rp|,-.*", "", teks) -> HP
HP
## [1] "16.149"
#Merekap dalam sebuah dataframe
dataharga <- data.frame(cbind(Tanggal = tgl,Komoditas = komoditas, Satuan = satuan,  
                              PT = HPT, PM = HPM, PB = HPB, P = HP))
dataharga
data frame hasil olah dengan regex R

Dari teks tersebut, terlihat yang awalnya merupakan data tidak terstruktur, kini berubah menjadi data terstruktur dan rapih. Insight-nya pun juga lebih mudah dibaca dan dipahami. Bahwa pada tanggal 30 Januari 2023, harga komoditas minyak goreng kemasan bermerek paling murah di tingkat produsen hanya seharga Rp. 16.149,- per kgnya, lalu sampai di konsumen yang terpantau pada pasar modern mencapai Rp. 22.850,-. Terdapat selisih harga sebesar Rp. 6.701,- per kilogramnya yang tersedia untuk biaya transportasi hingga ruang keuntungan penjualan minyak goreng bermerek.

Demikian sedikit sharing kita kali ini. Semoga sedikit ini dapat bermanfaat bagi pembaca setia blog sederhana ini. Jangan lupa untuk tetap stay tune menantikan sajian artikel menarik lainnya. Selamat memahami dan mempraktikkan!

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

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

Regular Expression (REGEX) dengan R

Pada artikel sebelumnya, kita telah belajar bersama mengenai penggunakan fungsi Natural Language Processing (NLP) berupa gsub() dan grep(). Pada artikel kali ini, kita akan membahas fungsi NLP yang berguna dalam ekstraksi teks juga, yaitu sub().

Perbedaan mendasar penggunaan fungsi sub() adalah mematchkan karakter, teks, atau kata pertama kali untuk kemudian diubah ke karakter, teks, atau kata lain. Selain itu, manfaat lain dari fungsi sub() ini adalah untuk menyisipkan karakter, teks, atau kata dalam karakter, teks, atau kata yang telah ada. Untuk lebih memahami bagaimana menggunakan fungsi sub() dalam ekstraksi teks, berikut beberapa langkah praktis yang dapat diterapkan.

#Teks
x <- c("Saya", "mengolah (data) sebanyak 15 GB", "pada 04-03-2023", "Big Data",
       "menggunakan \\R bukan r", "versi @ 4.0.2")
x
## [1] "Saya"                           "mengolah (data) sebanyak 15 GB" "pada 04-03-2023"               
## [4] "Big Data"                       "menggunakan \\R bukan r"        "versi @ 4.0.2"
#Menyisipkan kata sebuah sebelum kata data
sub("d", "sebuah d", x)
## [1] "Saya"                                  "mengolah (sebuah data) sebanyak 15 GB"
## [3] "pasebuah da 04-03-2023"                "Big Data"                             
## [5] "menggunakan \\R bukan r"               "versi @ 4.0.2"
#Mengganti tanda \\ dengan blank
sub("[\\]", "", x)
## [1] "Saya"                           "mengolah (data) sebanyak 15 GB" "pada 04-03-2023"               
## [4] "Big Data"                       "menggunakan R bukan r"          "versi @ 4.0.2"
#Mengganti huruf R besar dan r kecil menjadi r kecil
sub("[Rr]", "r", x)
## [1] "Saya"                           "mengolah (data) sebanyak 15 GB" "pada 04-03-2023"               
## [4] "Big Data"                       "menggunakan \\r bukan r"        "versi @ 4.0.2"
#Mengganti angka digit pertama dengan blank 
sub("[[:digit:]]", "", x)
## [1] "Saya"                          "mengolah (data) sebanyak 5 GB" "pada 4-03-2023"               
## [4] "Big Data"                      "menggunakan \\R bukan r"       "versi @ .0.2"
#Mengganti angka digit pertama dengan blank 
sub("[)]", " www.bigdata.com)", x)
## [1] "Saya"                                           "mengolah (data www.bigdata.com) sebanyak 15 GB"
## [3] "pada 04-03-2023"                                "Big Data"                                      
## [5] "menggunakan \\R bukan r"                        "versi @ 4.0.2"
#Mengganti huruf a pertama di setiap teks dengan tanda *
sub("a", "*", x)
## [1] "S*ya"                           "mengol*h (data) sebanyak 15 GB" "p*da 04-03-2023"               
## [4] "Big D*ta"                       "menggun*kan \\R bukan r"        "versi @ 4.0.2"

Demikian sedikit sharing kita kali ini. Jangan lupa untuk terus menyimak unggahan-unggahan menarik lainnya. Selamat memahami dan mempraktikkan!

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

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

 

Regular Expression (REGEX) dengan R

Selain penggunaan fungsi gsub(), untuk mendapatkan insight data teks dengan ekstrasi dapat pula menggunakan fungsi grep(). Era Data Science menuntut kita mempunyai skill mentransformasi data tidak terstruktur seperti teks, video, suara, dan gambar menjadi data yang terstruktur untuk kemudian diolah menjadi sebuah informasi bermanfaat bagi pengguna.

Perbedaan dari gsub() dan grep() cukup mudah kita bedakan. Fungsi gsub() lebih untuk mengekstraksi teks dengan cara menghapus teks yang tidak diinginkan. Sedangkan fungsi grep() digunakan untuk secara tepat mengekstraksi teks secara langsung. Sebagai contoh, bila kita ingin mengekstraksi teks "lato-lato", kalau menggunakan gsub() kita perlu hapus teks selain kata tersebut, sementara bila menggunakan grep, kita langsung menargetkan teks "lato-lato" untuk diambil dari dalam teks. Untuk lebih memahami, kita perlu praktikkan dengan beberapa kasus sebagai berikut:

#Membuat Data Teks
x <- c("Saya suka mengolah.", "(Big Data)", "baik: ","dengan Python versi \\3.", "maupun", "R versi @ 4.0.2")
x
## [1] "Saya suka mengolah."      "(Big Data)"               "baik: "                  
## [4] "dengan Python versi \\3." "maupun"                   "R versi @ 4.0.2"
#Mendapatkan teks yang diawali oleh huruf pertama d
grep("^d", x, value = T)
## [1] "dengan Python versi \\3."
#Mendapatkan teks yang diawali oleh tanda kurung dan huruf pertama B dan huruf pertama b
grep("^[(]B|^b", x, value = T)
## [1] "(Big Data)" "baik: "
#Mendapatkan teks yang diakhiri dengan tanda titik (.)
grep("[.]$", x, value = T)
## [1] "Saya suka mengolah."      "dengan Python versi \\3."
#Mendapatkan teks yang diakhiri dengan tanda titik dua (:) (spasi)
grep("[:] $", x, value = T)
## [1] "baik: "
#Mendapatkan teks yang mengandung tanda @
grep("@", x, value = T)
## [1] "R versi @ 4.0.2"
#Teks
y <- c("I am", "very", "well", "thank you", "It' OK")
y
## [1] "I am"      "very"      "well"      "thank you" "It' OK"
#Mendapatkan teks yang mengandung huruf a dimana pun letaknya
grep("?a", y, value = T)
## [1] "I am"      "thank you"
#Mendapatkan teks yang mengandung huruf e diikuti huruf l hingga r
grep("e[l-r]", y, value = T)
## [1] "very" "well"
#Mendapatkan teks yang mengandung huruf e diikuti tepat 1 huruf l
grep("el{1}", y, value = T)
## [1] "well"
#Mengubah y menjadi data frame dengan nama kolom (variable) text
y <- data.frame(text = y)
y
##        text
## 1      I am
## 2      very
## 3      well
## 4 thank you
## 5    It' OK
#Mendapatkan teks yang mengandung kata thank pada dataframe
y[grep("thank", y$text),]
## [1] "thank you"

Demikian sedikit sharing kita kali ini. Jangan lupa untuk terus menyimak setiap unggahan menarik berikutnya dalam blog ini. Terima kasih, selamat memahami dan mempraktikkan!


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

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!

Visualisasi Data dengan Peta sebagai Pendukung Analisis Spasial (Spatial Analysis)

Visualisasi Data dengan Peta sebagai Pendukung Analisis Spasial (Spatial Analysis)

Visualisasi data dengan peta spasial

Analisis spasial atau berbasis kewilayahan akhir-akhir ini semakin banyak diminati. Selain mempunyai daya tarik karena enak dipandang mata, visualisasi spasial dengan peta ini juga dinilai meningkatkan kecepatan pemahaman pengguna informasi yang disajikan.

Bila data yang kita miliki memiliki variabel lokasi atau kontur, visualisasi spasial bisa jadi menjadi pilihan tepat. Dengan berbekal peta berekstensi *shp dan sebuah data lokasi atau kontur, visualisasi spasial dapat diterapkan secara mudah.

Namun kenyataannya, tidak mudah bagi kita untuk melakukan visualisasi data secara spasial. Beberapa data yang diperlukan adalah garis lintang dan bujur, juga data yang akan divisualkan. Misalkan data Angka Kematian Bayi (AKB). Sebelum praktikum, ada baiknya kita pahami dulu apa itu AKB.

Menurut Badan Pusat Statistik (BPS), Angka Kematian Bayi adalah banyaknya bayi yang meninggal sebelum mencapai umur 1 tahun pada waktu tertentu per 1.000 kelahiran hidup pada waktu yang sama. Nilai normatif dari AKB sendiri terbagi menjadi beberapa, < 20 dikatakan rendah, 20 - 39 dikatakan sedang, dan 40 - 70 dikatakan tinggi.

Dalam kesempatan ini, kita akan mempraktikkan bagaimana memvisualisasikan data dengan peta untuk mendukung analisis spasial. Data yang kita gunakan kali ini bersumber dari Dinas Kesehatan Kementerian Kesehatan Provinsi Jawa Timur berupa Angka Kematian Bayi menurut kabupaten dan kota tahun 2021.

Data Angka Kematian Bayi (AKB) Jawa Timur tahun 2021 menurut kabupaten dan kota dapat diunduh pada tautan berikut. Sedangkan peta Jawa Timur dengan ekstensi *shp dapat diunduh pada tautan berikut. Setelah datanya diunduh, lalu kita akan mempraktikkan bagaimana cara memvisualisasikan data secara spasial (spatial) berdasarkan peta (maps) dengan tahapan sebagai berikut:

#Aktivasi package yang digunakan dalam visualisasi spasial
library(sf)
library(ggspatial)
#Import peta jatim shp
nc <- st_read(dsn="E:/JOKO ADE/R", layer = "jatim")
## Reading layer `jatim' from data source `E:\JOKO ADE\R' using driver `ESRI Shapefile'
## Simple feature collection with 38 features and 17 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 110.8984 ymin: -8.780764 xmax: 116.2634 ymax: -5.527337
## CRS:           NA
#Import data yang divisualisaikan
library(readxl)
akb <- read_excel("akb.xlsx")
head(akb)
## # A tibble: 6 x 4
##   Kako          AKB   Lat  Long
##   <chr>       <dbl> <dbl> <dbl>
## 1 Pacitan        72 -8.18  111.
## 2 Ponorogo      120 -7.87  111.
## 3 Trenggalek     35 -8.08  112.
## 4 Tulungagung   115 -8.10  112.
## 5 Lumajang      110 -8.13  113.
## 6 Bondowoso     144 -7.92  114.
#Attach data
attach(akb)
## The following objects are masked from akb (pos = 4):
## 
##     AKB, Kako, Lat, Long
## The following objects are masked from akb (pos = 5):
## 
##     AKB, Kako, Lat, Long
## The following objects are masked from akb (pos = 11):
## 
##     AKB, Kako
#Visualisasi AKB
par(mfrow=c(1, 2))
plot(AKB)
boxplot(AKB)
plot of chunk unnamed-chunk-12
Visualisasi plot dan box plot data AKB Jawa Timur tahun 2021

#Menambahkan data dalam peta
nc$AKB2021 <- akb$AKB
nc$lon <- akb$Long
nc$lat <- akb$Lat
nc$nm <- akb$Kako
#Visualisasi spasial
library(maps)
library(ggplot2)
library(ggsn)
ggplot(nc, aes(x = lon, y = lat, fill = AKB2021)) +
  geom_sf() + scale_fill_continuous(low = "#7F0000", high = "#fff7ec", breaks = c(0, 0.1, 0.5, 1)) + #breaks untuk mengatur cut point gradasi
  blank() +
  north(nc, symbol = 3) + #symbol untuk memilih jenis symbol, cek jenisnya di northSymbols()
  scalebar(nc, dist = 50, dist_unit = "km", #dist adalah skala
           transform = TRUE, model = "WGS84") +
  geom_text(aes(label = nm), size = 2)
plot of chunk unnamed-chunk-14
Visualisasi spasial (spatial / maps) AKB menurut kabupaten dan kota Jawa Timur tahun 2021

Demikian sedikit sharing kita semoga sedikit banyak dapat membantu dan bermanfaat bagi seluruh pembaca setia blog sederhana ini. Jangan lupa untuk terus menyimak unggahan menarik dari blog ini. Selamat memahami dan mempraktikan!

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

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

Ekstraksi Teks dengan Regex R

Pembahasan mengenai data preprocessing dalam konteks Data Science dan Big Data selalu menjadi perhatian utama. Terlebih, bila yang kita punyai merupakan data tidak terstruktur berbentuk teks. Data ini sering kita jumpai atau peroleh, baik dari hasil web scraping atau web crawling data-data teks.

Data teks biasanya kita temui di media sosial, website, portal, atau sejenisnya. Sebagai bagian dari data tidak terstruktur, tentunya untuk menghasilkan insight data teks, kita perlu tahapan yang sangat kompleks dengan segala tantangan yang ada. Apalagi data teks berbahasa khusus sebuah negara, katakanlah teks berbahasa Indonesia.

Mulai dari unggahan ini, nantinya akan kita ulas secara perlahan mengenai bagaimana melakukan data preprocessing teks dengan R. Mengingat dalam sebuah teks yang tersebar di internet terdapat karakter-karakter yang unik, spesifik, bahkan campur aduk dengan teks, maka kita akan mencoba praktik ekstraksi-ekstraksi teks spesifik menggunakan regular expression (regex).

Dalam pengertiannya, regex merupakan sekumpulan karakter berpola berbahasa mesin untuk dicocokan dengan inputan karakter dalam teks. Jenis regex yang akan kita jadikan sarana ekstraksi teks kali ini terdiri atas 4 jenis, yaitu koma (,), atau (|), bintang (*), serta titik dua tanda tanya kurung (:?).

Regex koma (,) digunakan untuk mencocokkan karakter koma mesin dengan karakter koma dalam teks. Regex atau (|) digunakan untuk menentukan pilihan-pilihan karakter yang akan dicocokkan, misal karakter koma atau titik dua, kalau ditulis ",|:". Regex bintang (*) digunakan untuk mencocokkan karakter dimana pun letak atau posisinya, baik sebelum maupun sesudahnya. Sedangkan regex titik dua tanda tanya kurung (:?) digunakan untuk mencocokkan bagian yang menjadi kelompok karakter dalam kurung, misalkan bila kita ingin mengekstraksi teks yang mengandung kata "sayang" maka dituliskan "(:?sayang)".

Untuk lebih jelas perbedaan dari masing-masing regex, kita akan mempraktikkannya menggunakan sebuah kalimat berikut:

#menyiapkan data teks
y <- "Pendaftaran di sekolah dasar, sekolah privat"
y
## [1] "Pendaftaran di sekolah dasar, sekolah privat"
#menghapus teks "Pendaftaran di(tanpa spasi)"
gsub("Pendaftaran di", "", y)
## [1] " sekolah dasar, sekolah privat"
#menghapus teks "Pendaftaran di (dengan spasi)"
gsub("Pendaftaran di ", "", y)
## [1] "sekolah dasar, sekolah privat"
#menghapus teks "Pendaftaran di(tanpa spasi)" dan sebelum spasi
gsub("Pendaftaran di |.*,", "", y)
## [1] " sekolah privat"
#menghapus teks "Pendaftaran di (dengan spasi)" dan sebelum spasi
gsub("Pendaftaran di |.*, ", "", y)
## [1] "sekolah privat"
#ekstrak teks yang dimulai dengan tanda koma "," dengan 1 spasi
#ekstrak teks setelah tanda koma ","
gsub(".*, ", "", y)
## [1] "sekolah privat"
#ekstrak teks yang diakhiri dengan tanda koma ","
#ekstrak teks sebelum tanda koma
gsub(",.*", "", y)
## [1] "Pendaftaran di sekolah dasar"
#ekstrak teks selain teks "sekolah dasar"
gsub("(?:sekolah dasar)", "", y)
## [1] "Pendaftaran di , sekolah privat"
#ekstrak teks selain teks "sekolah dasar" termasuk tanda koma ","
gsub("(?:sekolah dasar)|,", "", y)
## [1] "Pendaftaran di  sekolah privat"
#Ekstrak teks yang diikuti oleh teks "sekolah"
gsub("sekolah*", "", y)
## [1] "Pendaftaran di  dasar,  privat"

Demikian sedikit sharing kita kali ini. Jangan lupa untuk terus menyimak setiap unggahan spesial di blog sederhana ini. Semoga sedikit atau banyak memberi manfaat kepada semua pembaca. Selamat memahami dan mempraktikkan!

Preprocessing Data Tweet Twitter tentang Permainan Lato-Lato dengan Python

Preprocessing Data Tweet Twitter tentang Permainan Lato-Lato dengan Python

Preprocessing data tweet permainan lato-lato

Siapa yang belum kenal dengan permainan lato-lato? Ya, permainan tradisional yang telah lama dilupakan anak-anak ini kini kembali viral dengan sejumlah pro dan kontranya. Dua bola plastik padat yang dihubungkan oleh sebuah tali dan pengait di tengahnya ini kini banyak digemari oleh anak-anak. Tak hanya itu, permainan murah ini juga banyak dimainkan oleh orang dewasa karena dulunya pernah memainkannya.

Entah siapa yang mulai memviralkan permainan lato-lato ini. Yang jelas, berdasarkan penelurusan melalui Google Trends, permainan ini mulai banyak dicari sejak Desember 2022 lalu. Kemudian melejit di awal 2023, meski sekarang telah mengalami penurunan intensitas pencariannya.

Google Trend Index pencarian kata kunci "lato"

Pro dan kontra yang ditimbulkan permainan ini sungguh beragam. Selain ada yang berpendapat tidak membahayakan, pendapat lain juga menyatakan bahwa permainan lato-lato membahayakan dan bahkan dilarang di beberapa negara. Pro dan kontra tersebut banyak terekam melalui media sosial, khususnya Twitter. Fenomena viralnya permainan lato-lato ini tentu menarik bila diangkat dan dianalisis.

Oleh karena itulah, pada kesempatan kali ini, kita akan mencoba mempraktikkan bagaimana cara menerapkan preprocessing data tidak terstruktur berupa teks yang bersumber dari Twitter dengan topik permainan lato-lato. Adapun data yang kita angkat ini diperoleh dengan teknik crawling Twitter API. Dengan menentukan sampel data teks sebanyak 30 record atau tweet.

Adapun data sebagai bekal praktikum kita kali ini bisa diunduh pada link berikut. Setelah data sudah siap, preprocessing data teks terkait topik permainan Lato-Lato dapat mengikuti langkah-langkah berikut:


Preprocessing Tweet Topik Lato-lato

Demikian sedikit sharing kita kali ini, semoga sedikit banyak memberi manfaat kepada seluruh pembaca setia blog ini. Selamat memahami dan mempraktikkan!