Cara menggunakan natural number python

Hello, dikesempatan kali ini kita akan coba bahas topik tentang Natural Language Processing [NLP]. Pada bidang NLP, informasi yang akan diolah perlu dilakukan preprocessing data untuk menghasilkan data yang lebih terstruktur. Hal ini bertujuan agar saat proses pengolahan NLP dapat berjalan dengan baik. Preprocessing pada NPL disebut dengan test preprocessing, dalam tahap ini akan dilakukan beberapa teknik diataranya, Case Folding, Tokenizing, Filtering & Stemming [1].

Text preprocessing meggunakan Library NLTK [Natural Language Tool Kit]. NLTK merupakan python library yang sangat powerfull untuk digunakan dalam pemrosessan human language data. Memberikan kemudahan interfacing ke lebih dari 50 corpora dan lexial resources[2].

Prerequisites

  • Laptop terinstal Anaconda + Jupyter Notebook, dapat ditemukan di tutorial berikut.

#4 Alat dan Bahan untuk Machine Learning

Hardware, Software & Library

medium.com

  • Memahami dasar pemrograman python, kita juga dapat mempelajarinya dari link berikut.

#5 Basic Python Programming

Variable, Operator, Flow Control dan Struktur Data

medium.com

  • Install library NLTK melalui Anaconda Prompt,
conda install nltk

Download NLTK Package

  • Test hasil install, buka Notebook Baru beri nama “Preprocessing” , import library NLTK dan download package NLTK dengan cara berikut,
import nltknltk.download[]

Notebook ‘Preprocessing’

Setelah itu akan muncul NLTK downloader , klik download dan tunggu sampai prosess selesai,

NLTK DownloaderText Preprocessing

Sekarang kita akan coba implementasikan NLTK untuk text preprocessing. Proses preprocessing ini meliputi [1] case folding, [2] tokenizing, [3] filtering, dan [4] stemming.

Case Folding

Case Folding adalah tahap untuk konversi text menjadi suatu bentuk yang standar. Pada tahap ini biasanya dipilih lowercase untuk membuat huruf kapital menjadi lowercase [3]. Contoh sederhana,

Text input :

Pemerintah mnerapkan PSBB untuk menangani Virus Corona.

hasil Case Folding akan menjadi :

pemerintah menerapkan psbb untuk menangani virus corona.

implementasinya pada python tidak perlu menggunakan library NLTK, cukup menggunakan fungsi .lower[] ,

result pada jupyter notebook,

Tokenizing

Pada tahap ini, text yang telah melewati tahap Case Folding akan dilakukan proses pemecahan perkata menggunakan fungsi .word_tokenize[] pada library NLTK. Selain itu pada tahap inijuga akan dilakukan proses removing number, whitespace dan puctuation [tanda baca].

  • Removing number, akan menggunakan fungsi re.sub[pattern, replace_string, string] untuk replace angka dengan “” ada library
    import nltknltk.download[]
    0 [regex] menggunakan pattern
    import nltknltk.download[]
    1 . Dimana
    import nltknltk.download[]
    2 untuk matching digit [0–9] dan
    import nltknltk.download[]
    3 sebagai quantifier untuk menemukan 1 atau lebih matching
    import nltknltk.download[]
    2 . Sehingga penggunaanya akan seperti berikut,
    import nltknltk.download[]
    5 yang akan menghasilkan
    import nltknltk.download[]
    6 .
  • Removing punctuation, akan menggunakan fungsi
    import nltknltk.download[]
    7 yang akan memetakan teks kedalam character yang sesuai pada mapping table
    import nltknltk.download[]
    8 . untuk mengganti
    import nltknltk.download[]
    9 berupa [
    Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
    0] dengan
    Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
    1 .
  • Removing whitespace, akan menggunakan fungsi
    Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
    2 untuk menghapus whitespace leading dan trailing, dan menggunakan fungsi regex substraction re.sub[pattern, replace_string, string] dengan pattern
    Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
    4 untuk matching whitespace dengan quantifier matching 1 atau lebih whitespace.

Berikut adalah implementasinya pada python,

result pada jupyter notebook,

selanjutnya kita bisa menghitung jumlah kemunculan tiap kata pada text yang kita proses menggunakan fungsi

Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
5 pada library NLTK, dan melihat hasilnya dengan menggunakan method
Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
6 , sehingga implementasinya pada python menjadi seperti berikut,

result pada jupyter notebook,

Kita akan memvisualisasikan

Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
7 menggunakan library Pandas. Terlebih dahulu kita convert
Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
7 dictionary ke Pandas Dataframe dengan menggunakan fungsi
Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
9 dengan parameter
pemerintah menerapkan psbb untuk menangani virus corona.
0 akan menjadikan key pada dictionary menjadi row Dataframe. Setelah itu gunakan fungsi
pemerintah menerapkan psbb untuk menangani virus corona.
1 dengan
pemerintah menerapkan psbb untuk menangani virus corona.
2 untuk plot dataframe kedalam bar plot,

resut pada jupyter notebook,

grafik dataframe frequency tokens dengan key sebagai row

jika kalian tertarik memahami lebih jauh library Pandas, dapat diikuti ditulisan berikut,

Python Data Science : Pandas — Part 1

Advantages Library and Read/Write Files CSV/ Excel/JSON

medium.com

Python Data Science : Pandas — Part 2

Filtering, Sorting dan Grouping Dataframe

medium.com

Python Data Science : Pandas — Part 3

Time Series Analysis & Data Visualization

medium.com

Filtering [Stopword Removal]

Filtering bertujuan untuk mengambil kata-kata penting pada

pemerintah menerapkan psbb untuk menangani virus corona.
3 yang dihasilkan oleh proses sebelumnya. Kata umum yang biasanya muncul dalam jumlah besar dan dianggap tidak memiliki makna disebut Stopword. Contoh stopword dalam bahasa Indonesia adalah “yang”, “dan”, “di”, “dari”, dll [1].

Kita akan coba gunakan fungsi

pemerintah menerapkan psbb untuk menangani virus corona.
4 pada library NLTK untuk mendapatkan list Indonesian stopwords. Berikut adalah list Indonesian stopword yang dihasilkan fungsi
pemerintah menerapkan psbb untuk menangani virus corona.
4 ,

berikut adalah implementasinya pada python,

result pada jupyter notebook,

jika kita perhatikan hasil filtering tersebut dan bandingkan dengan

Pemerintah mnerapkan PSBB untuk menangani Virus Corona.
7 sebelumnya, kata
pemerintah menerapkan psbb untuk menangani virus corona.
7 telah dihilangkan karena termasuk Stopword.

Stemming

Tahap ini akan menghilangkan suffix dan prefix pada token/kata [reduce inflected], sehingga sebuah kata yang memiliki suffix maupun prefix akan kembali kebentuk dasarnya, contohnya :

kesembuhan : sembuh
pertolongan : tolong
membersikan : bersih

Pada library NLTK sudah tersedia algoritma untuk proses stemming, mulai dari ,

  • Porter algorithm
  • Lancester algorithm
  • WordNet Lemmatizer algorithm
  • SnowBall algorithm

namun sayangnya belum mensupport bahasa indonesia, berikut adalah implementasinya pada bahasa inggris,

untuk kebutuhn stemming dalam bahasa Indonesia, maka kita akan gunakan library

pemerintah menerapkan psbb untuk menangani virus corona.
8 yang dapat diinstall melalui
pemerintah menerapkan psbb untuk menangani virus corona.
9 ,

pip install Sastrawi

kesembuhan : sembuh
pertolongan : tolong
membersikan : bersih
0 merupakan hasil porting dari library
kesembuhan : sembuh
pertolongan : tolong
membersikan : bersih
1 . Penggunaanya pada python, sebagai berikut,

result pada jupyter notebook,

dari hasil Stemming menggunakan library Sastrawi, kita dapat melihat bahwa kata

kesembuhan : sembuh
pertolongan : tolong
membersikan : bersih
2 dikembalikan kebentuk dasarnya menjadi
kesembuhan : sembuh
pertolongan : tolong
membersikan : bersih
3 .

Sampai tahap ini kita sudah melakukan text preprocessing menggunakan library NLTK mulai dari Case Folding, Tokenizing, Filtering sampai Stemming menggunakan library Sastrawi. Selanjutnya akan coba dilakukan contoh realcase text preprocessing untuk data hasil crawling twitter API, penerapanya tentusaja akan menggunakan Pandas, NLTK dan Sastrawi.

Bài mới nhất

Chủ Đề