1. Home
  2. Docs
  3. Kelas Privat Python – 01
  4. Materi [Penerapan Python]
  5. NLP & Twitter

NLP & Twitter

Pada kesempatan kali ini kita akan berusaha untuk mengenal apa itu Natural Language Processing dan Data Science dan bagaimana mereka berdua berhubungan dengan Python sebagai bahasa pemograman yang akan kita gunakan.

Natural Language Processing [NLP]

Pertanyaan yang mungkin akan muncul adalah, apa itu NLP? seberapa pentingkah NLP untuk dipelajari? Natural Language Processing dapat kita pecah menjadi dua kata, yaitu Natural Language dan Processing.

  • Natural Language – Bahasa yang muncul dan terus berkembang sebagai cara agar setiap manusia bisa berkomunikasi. Contohnya adalah Bahasa Indonesia, Bahasa Jepang, dan Bahasa Inggris.
  • Processing – Bagaimana suatu sistem mengolah data sesuai instruksi/tujuan.

Jadi jika kita tarik kesimpulannya, maka pengertian dari Natural Language Processing adalah,

Bagaimana kita bekerja dengan data yang berbentuk teks

Contoh Kasus Sederhana

Kasus Pertama

Misalkan kita memposting sebuah foto seperti pada gambar di bawah pada akun sosial media yang kita miliki.

Setelah beberapa waktu kita mendapatkan beberapa komentar seperti di bawah ini.

  • Budi – Hasil tangkapan yang baik.
  • Nisa – Alam yang indah sekali.
  • Rudi – Komposisi yang yang terlalu gelap, dimana keindahan alam tertutupi oleh langit yang mendung.

Jika kita ingin mengetahui bagaimana orang-orang menilai foto kita maka kita dapat melihat masing-masing komentar yang diberikan dan menilai apakah itu opini postifi atau opini negatif. Akan tetapi, jika komentar yang didapatkan berjumlah ratusan maka melakukan penilaian secara mandiri akan memakan waktu dan tenaga. Maka dari itu kita bisa mengaplikasian teknik NLP pada setiap komentar dan mendapatkan apakah opini tersebut bernilai positif atau negatif (Pada kasus ini kita akan mendapatkan bahwa komentar Budi dan Nisa bernilai positif, sedangkan komentar Rudi bernilai negatif.)

Kasus Kedua

Misalkan kita memiliki ratusan surat pada kotak masuk email kita, beberapa contohnya seperti yang ditampilkan pada list dibawah ini

  • Rinda – Hi, Saya Rinda dan saya memiliki uang yang …
  • Nurina – Hi, ini pekerjaan saya minggu lalu. tolong di cek.
  • Phillip – Hi, jadwal liburan kita saya sematkan bersama email ini.

Kita ingin bisa memisahkan mana email yang termasuk spam, dan bukan. Bagaimana kita melakukannya? kita dapat melakukan labeling pada setiap email dengan mempelajari setiap isi dari email tersebut. Dengan menerapkan NLP teknik, kita dapat memberikan label spam pada email yang berisi kata uang misalnya. Hasil dari labeling kita dapat dilihat pada list di bawah ini,

  • Rinda – Hi, Saya Rinda dan saya memiliki uang yang [spam]
  • Nurina – Hi, ini pekerjaan saya minggu lalu. tolong di cek. [pekerjaan]
  • Phillip – Hi, jadwal liburan kita saya sematkan … [liburan][pribadi]

Kasus pertama adalah apa yang kita sebut dengan sentiment analysis atau text analysis. Pada kasus kedua adalah apa yang kita sebut dengan topic modeling.

Data Science

Pekerjaan kita dalam NLP akan menggunakan prinsip dalam Data Science karena dari itu akan lebih menyenangkan jika kita mengenal apa itu Data Science. Ada sebuah phrasa yang saya sangat sukai untuk menggambarkan apa itu Data Science

Mencari arti dari data

Jadi seorang Data scientist tidak hanya melakukan pengolahan pada data yang dimiliki. tapi juga haruslah mendapatkan sebuah informasi yang bermakna dalam data tersebut. Yang dimana informasi tersebut akan menjadi dasar dari pengambilan sebuah keputusan.

Diagram Venn yang dapat kita gunakan untuk mengerti apa itu Data Science ditunjukan pada gambar di bawah ini.

Data Science terdiri dari tiga komponen utama, yaitu Matematika, Komputasi, dan Komunikasi. Mengetahui ketiga hal tersebut merupakan hal utama dalam mempelajari Data Science. Hanya mengetahui komputasi dan matematika adalah apa yang kita sebut dengan Machine Learning Engineer, dan mengetahui Matematika dan Komunikasi saja adalah peneliti pada umumnya.

Jika kita jabarkan ketiga hal terhadap apa yang akan kita pelajari dan gunakan kedepannya, maka kita mendapatkan hasil sebagai berikut

  • Programming – Data (pandas, sklearn) NLP (nltk, sastrawi)
  • Math & Stats – Cleaning (corpus, document-term matrix) EDA (word count) NLP ( Sentiment Analysis, Topic Modeling)
  • Communication – Design (matplotlib, visualize, extract insight)

Data Science Workflow

Alur kerja seorang Data Scientist dapat dijabarkan menjadi 5 bagian, yaitu:

  • Start With the Question
  • Get & Clean Data
  • Perform EDA
  • Apply Technique
  • Share Insight

Start With the Question

Pada bagian kali ini kalian akan memulai untuk mencari suatu permasalahan yang akan kalian pecahkan atau analisis. Misalkan, Kalian ingin mengetahui bagaimana antusiasme masyarakat indonesia pada dunia otomotif di masa pandemi sekarang. Selalu mulai dengan latar belakang masalah, lalu berjalan menuju permasalahan yang dihadapi, dan tujuan dari analisis kalian.

Get & Clean Data

Ambil semua data yang kalian butuhkan, pada kesempatan kali ini kita akan menggunakan teknik webscraping dari beberapa media misalnya situs berita, atau wikipedia jika dibutuhkan. Kita jika akan menarik data menggunakan API dari twitter atau media lain yang menyediakan. Setelah itu kita akan melakukan pembersihan data dan penyimpanan data pada basis data yang kita inginkan.

Perform EDA

Exploratory Data Analysis (EDA) adalah saat kita mencoba mendalami data yang kita telah kita miliki. Kita akan mencoba mencari pola dan pattern khusus yang akan mengarahkan kita pada sebuah data insight.

Apply Technique

Disini kita akan mengimplementasikan teknik pada NLP, seperti Analisis Sentiment atau teknik machine learning seperti Unsupervised dan Supervised Learning.

Share Insight

Akhirnya kita sampai pada bagian kita akan berusaha mengkomunikasikan informasi kita pada audiens yang kita pilih. Disini kita perlu kemampuan untuk mengolah data menjadi bentuk-bentuk yang lebih mudah dipahami seperti tabel atau plot. Ditamplikan bisa berupa laporan (pdf, excel) atau presentasi (ppt).

Pada beberapa pekan kedepan kita akan mencoba melakukan penerapan teknik NLP dan Alur kerja Data Science untuk mempelajari sentimen analysis pada opini publik.

Twitter

Machine Learning dan juga data mining tidak pernah jauh dari yang dinamakan data. Semakin banyak data valid yang terkumpul tentu saja hasil analisis akan menjadi lebih terpercaya. Maka dari itu teknik pengumpulan data menjadi salah satu hal yang penting. Pertanyaannya adalah dari mana data itu bisa didapatkan? Media sosial. Media sosial memegang salah satu peranan penting dalam dinamisasi data saat ini. kita bisa mendapatkan banyak sekali data untuk kebutuhan analisis di sosial media. Salah satu sosial media yang dapat kita gunakan adalah twitter.

Kenapa Twitter?

Twitter merupakan sumber raksasa data. sifatnya yang memiliki mayoritas open user dan data yang dapat diambil merupakan nilai plus tersendiri. Twitter API juga memiliki banyak variasi endpoint yang membuat pengambilan data akan menjadi sangat menyenangkan bagi para analis.

Salah satu manfaat dari hal ini adalah kita dapat melihat sentimen publik terhadap suatu produk atau perusahaan yang kita miliki. Kita juga dapat mentarget cuitan dari satu user khusus dan menentukan lokasi pencarian kita secara spesifik.

Twitter, merupakan tambang emas dimana kita bisa melihat pandangan masyarakat secara umum.

Mempersiapkan Akun Twitter Developer

  • Masuk ke https://developer.twitter.com/
  • Log in dengan akun twitter kalian
  • Klik tombol apply di kanan atas
  • lalu klik tombol apply for a developer account seperti pada gambar di atas.
  • Lalu kalian bisa mengisi alasan kenapa kalian ingin mendaftar, pilih saja explore the API
  • Jangan Lupa untuk mengisi nomer telepon,
  • lalu pastikan kalian memilih individual developer account
  • Setelah itu kalian akan diberikan beberapa pertanyaan terkait motivasi mendaftar akun developer. Jawab dengan jujur dan menggunakan bahasa inggris.
  • Ikuti langkah-langkah selanjutnya hingga pendaftaran selesai.
  • Setelah selesai jangan lupa untuk masuk ke dashboard , dan lakukan konfigurasi API key & secret, Bearer token, dan Access Token & Secret. Simpan semuanya dalam sebuah file khusus agar tidak terlupa.
  • Kita akan membutuhkan semua data tersebut diatas, jadi diharapkan tidak lupa atau buka situs/file untuk kemudahan saat pengisian.

Postman & Twitter

Sekarang kita akan mencoba untuk memanfaatkan aplikasi postman untuk lebih mengenal API pada twitter. Kita dapat membaca keterangan lebih lengkap di,

https://developer.twitter.com/en/docs/twitter-api/early-access

Pada kesempatan kali ini kita akan mencoba satu API endpoint yaitu User. Sebelumnya mari kita konfigurasikan terlebih dahulu aplikasi postman kita.

  • Buat sebuah halaman baru
  • masuk pada tab Authorization lalu pada dropdown type pilih Bearer Token.
  • Isikan bearer token kalian pada isian di sebelah kanan.

Terdapat 4 jalur endpoint untuk mendapatkan data user yang kita inginkan, mereka adalah

https://api.twitter.com/2/users?ids= #1
https://api.twitter.com/2/users/:id #2
https://api.twitter.com/2/users/by?username= #3
https://api.twitter.com/2/users/by/username/:username #4

Penjelasan masing-masing endpoint sebagai berikut

  1. Digunakan untuk mengambil data banyak user menggunakan id mereka. Dalam hal ini id merupakan numerik. isi semua id di dalam query param dipisahkan oleh koma
  2. Digunakan untuk mengambil data satu user menggunakan id mereka.
  3. Digunakan untuk mengambil data banyak user menggunakan username mereka (biasanya dimulai dengan @). Isikan semua username di dalam query param dipisahkan oleh koma
  4. Digunakan untuk mengambil data satu user menggunakan username mereka (biasanya dimulai dengan @).

Query parameters (ditulis dibagian params)

  • user.fields – sub parameter yang ingin ditampilkan [ created_atdescriptionentitiesidlocationnamepinned_tweet_idprofile_image_urlprotectedpublic_metricsurlusernameverifiedwithheld ] #pilih yang kalian inginkan, batasi dengan koma

Contohnya disini kita akan mencoba mencari user id pak Jokowi dan kita ingin mengetahui deskripsi dan lokasi akun pak Jokowi maka tampilan postman kita menjadi,

Pada path variabel, isikan username yang ingin lihat pada kolom value baris key username. Pada query params, isian user.fields dimasukkan ke kolom key dan location,description dimasukkan ke kolom value.

Lalu akan didapatkan hasil,

{
    "data": {
        "description": "Akun Twitter resmi Presiden Republik Indonesia Joko Widodo 🇮🇩. \n#MenujuIndonesiaMaju",
        "username": "jokowi",
        "id": "366987179",
        "name": "Joko Widodo",
        "location": "Jakarta"
    }
}

Twitter & Python

Untuk dapat mengambil data dari twitter kita akan memanfaatkan sebuah library yang bernama tweepy. pertama kita instal terlebih dahulu library tersebut di mesin kita.

pip install tweepy

Pertama mari kita import library kita dan juga semua key yang kita butuhkan.

import tweepy
consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1"
consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh"
access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi"
access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"

Lalu kita buat variabel untuk autentikasi dan akses token

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

Sebagai contoh pertama mari kita lihat apa yang ada di timeline kita,

mytimeline = api.home_timeline()
for tweet in mytimeline:
   print (tweet.text)
  • home_timeline – akan memanggil tweet di dalam timeline kita
  • tweet.text – dipakai untuk mengambil teks seperti get_text() saat kita melakukan web scraping

Untuk mengambil data dari suatu user tertentu kita bisa dengan menggunakan user_timeline lalu kita bisa menentukan parameter id. Untuk mendapatkan jumlah tweet yang ingin kita ambil kita bisa menggunakan variabel count. Mari kita coba untuk mengambil tweet yang dikeluarkan pak Jokowi.

nama = "jokowi"
jumlahtweet = 20

hasil = api.user_timeline(id=nama, count=jumlahtweet)

for tweet in hasil:
   print (tweet.text)

Maka inilah hasil yang akan kita dapatkan,

Selamat bekerja Bapak Isdianto sebagai Gubernur Kepulauan Riau. https://t.co/Nnq13QJEWU
Target kita jelas: angka kematian serendah-rendahnya, angka kesembuhan setinggi-tingginya, dan kendalikan laju pert… https://t.co/8rnjG1gQXw
Kasus global Covid-19 sudah 15,8 juta dengan kematian 640 ribu jiwa. Kita harus menyikapinya dengan bekerja luar bi… https://t.co/kZrCu345rB
Di luar tantangan dan kesulitan yang datang bersama pandemi Covid-19, selalu ada peluang-peluang baru.

Hanya mere… https://t.co/kZyhybqAH9
Saya dan Ibu negara mengikuti pemeriksaan kesehatan berkala, termasuk uji swab Covid-19 yang kami jalani kemarin so… https://t.co/eWpVWJpBxv
Mengayuh sepeda di akhir pekan, di area seputar Istana Bogor, lumayan membuat tubuh berkeringat. Dengan berolahraga… https://t.co/bJlvkBHuQj
Setelah 42 tahun berdiri, Masjid Istiqlal kini bersolek lebih megah setelah direnovasi besar-besaran oleh Kementeri… https://t.co/YVJO9wHpwH
Demi mengurangi beban koperasi dan UMKM akibat pandemi Covid-19, pemerintah menyiapkan sejumlah kebijakan.

Di ant… https://t.co/hDMzisWBcT
Pesan untuk anak-anakku di seluruh Tanah Air: sabar. Sekarang ini, anak-anak sedang belajar hal baru: beradaptasi d… https://t.co/8a8zGYnjlj
Wishing good health for His Majesty King Salman bin Abdul Aziz, Custodian of the Two Holy Mosques. May Allah reward… https://t.co/cPcCPubOUq
Lebih 70 juta anak Indonesia merasakan dampak pandemi Covid-19. Mereka tak bebas bermain bersama kawan sebaya, dan… https://t.co/yjoxIb8NKB
Saya kembali bertemu dan menyerahkan secara langsung bantuan modal kerja kepada 60 pelaku usaha mikro dan kecil dar… https://t.co/udMwLgClSO
Kita akan melaksanakan uji klinis vaksin Covid-19 tahap ketiga dengan melibatkan 1.620 sukarelawan. Proses dan prot… https://t.co/N9x6LSf3le
Meski kita tengah disibukkan dengan penanganan pandemi Covid-19, saya tetap menginstruksikan agar layanan diagnosti… https://t.co/Bzyb9Tulf6
Tahun 2018, diperkirakan ada 845.000 penduduk Indonesia  mengidap TBC, dan 98.000 orang meninggal karena penyakit m… https://t.co/B52ffC89BB
Di tengah upaya penanganan Covid-19 serta dampak yang ditimbulkannya, kecepatan penggunaan anggaran yang diperoleh… https://t.co/gUpdfZjC65
Selama 4 tahun berturut-turut pemerintah pusat berhasil mempertahankan opini Wajar Tanpa Pengecualian dari BPK.

K… https://t.co/rgon2zp5RK
Dengan tim terpadu ini, perencanaan dan eksekusi program-program penanganan Covid dan pemulihan ekonomi bisa berjal… https://t.co/LVSDtH4Vv6
Pemerintah membentuk satu tim terpadu Penanganan Covid-19 dan Pemulihan Ekonomi Nasional yang bertugas merumuskan k… https://t.co/K7yMY1AmlG
Mau keluar rumah?
Pakai masker.

Hendak jogging atau bersepeda?
Pakai masker.

Tak ada ruang untuk melenggang t… https://t.co/58R9TXYgIL