Cara menggunakan impor kamus bahasa inggris python

Dalam pemrosesan bahasa alami (NLP), informasi yang akan ditambang berisi data yang strukturnya "acak" atau tidak terstruktur. Oleh karena itu, perlu dilakukan perubahan bentuk menjadi data terstruktur untuk keperluan lebih lanjut (analisis sentimen, pemodelan topik, dll.)

Data teks perlu dibersihkan dan dikodekan ke nilai numerik sebelum diberikan ke model pembelajaran mesin, proses pembersihan dan pengodean ini disebut sebagai pemrosesan awal teks

Foto oleh Edho Pratama pada Persiapan Unsplash. Perpustakaan yang dibutuhkan

Salah satu kelebihan python adalah mendukung banyak pustaka sumber terbuka. Ada banyak library python yang bisa digunakan untuk mengerjakan dan mengimplementasikan masalah di NLP

Perangkat Bahasa Alami (NLTK)

Natural Language Toolkit atau singkatnya NLTK, adalah pustaka python untuk bekerja dengan pemodelan teks. NLTK menyediakan alat yang baik untuk menyiapkan teks sebelum digunakan dalam pembelajaran mesin atau algoritma pembelajaran mendalam. Cara termudah untuk menginstal NLTK adalah dengan menggunakan "pip" pada baris perintah/terminal

pip install nltk

Langkah pertama yang perlu Anda lakukan setelah menginstal NLTK adalah mengunduh paket NLTK

import nltk
nltk.download()
_

NLTK

Anda dapat membaca dokumentasi lengkap dari NLTK di sini

Python Sastra (Bahasa Indonesia Stemming)

Sastrawi Python adalah perpanjangan dari proyek PHP Sastrawi. Sastrawi Python adalah library sederhana yang dapat mengubah sufiks bahasa Indonesia menjadi bentuk dasarnya. Sastrawi juga dapat diinstal melalui "pip"

pip install Sastrawi

Penggunaan Sastrawi Python sangat sederhana seperti baris kode di bawah ini

# import StemmerFactory class
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
# create stemmer
factory = StemmerFactory()
stemmer = factory.create_stemmer()
# stemming process
sentence = 'Perekonomian Indonesia sedang dalam pertumbuhan yang membanggakan'
output = stemmer.stem(sentence)print(output)
# ekonomi indonesia sedang dalam tumbuh yang bangga
print(stemmer.stem('Mereka meniru-nirukannya'))
# mereka tiru

Anda dapat membaca dokumentasi lengkap dari Sastrawi Python di sini

1. Kasus lipat

Case folding adalah salah satu bentuk text preprocessing yang paling sederhana dan efektif meskipun sering diabaikan. Tujuan dari case folding adalah untuk mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf 'a' hingga 'z' yang diterima. Karakter selain huruf dihilangkan dan diperlakukan sebagai pembatas. Pada tahap ini kami tidak menggunakan pustaka eksternal apa pun, kami dapat memanfaatkan modul yang tersedia di python

Ada beberapa metode yang bisa digunakan dalam tahap case folding, bisa menggunakan sebagian atau menggunakan semuanya, tergantung dari tugas yang dihadapi.

Ubah teks menjadi huruf kecil

Salah satu contoh penting penggunaan huruf kecil adalah untuk mesin pencari. Bayangkan Anda sedang mencari dokumen yang berisi "indonesia" tetapi tidak ada hasil yang muncul karena "indonesia" diindeks sebagai "INDONESIA". Siapa yang harus kita salahkan? . I. perancang yang mengatur antarmuka pengguna atau pengembang yang mengatur sistem dalam indeks pencarian?

Contoh di bawah ini menunjukkan bagaimana python mengubah teks menjadi huruf kecil

kalimat = "Berikut ini adalah 5 negara dengan pendidikan terbaik di dunia adalah Korea Selatan, Jepang, Singapura, Hong Kong, dan Finlandia."lower_case = kalimat.lower()
print(lower_case)
# output
# berikut ini adalah 5 negara dengan pendidikan terbaik di dunia adalah korea selatan, jepang, singapura, hong kong, dan finlandia.
_

Hapus angka

Hapus nomor jika tidak relevan dengan apa yang akan Anda analisis, misalnya seperti nomor rumah, nomor telepon, dll. Ekspresi reguler (regex) dapat digunakan untuk menghapus karakter numerik. Python memiliki modul

pip install Sastrawi
_0 untuk melakukan hal-hal yang berhubungan dengan regex

Contoh di bawah ini menunjukkan bagaimana python menghapus angka dalam sebuah kalimat

import re # impor modul regular expressionkalimat = "Berikut ini adalah 5 negara dengan pendidikan terbaik di dunia adalah Korea Selatan, Jepang, Singapura, Hong Kong, dan Finlandia."
hasil = re.sub(r"\d+", "", kalimat)
print(hasil)
# ouput
# Berikut ini adalah negara dengan pendidikan terbaik di dunia adalah Korea Selatan, Jepang, Singapura, Hong Kong, dan Finlandia.
_

Hapus tanda baca

Sama halnya dengan angka, tanda baca dalam kalimat tidak memiliki pengaruh pada text preprocessing. Menghapus tanda baca seperti [!”#$%&’()*+,-./:;<=>?@[\]^_`{|}~] dapat dilakukan di pyhton seperti dibawah ini :

kalimat = "Ini &adalah [contoh] kalimat? {dengan} tanda. baca?!!"
hasil = kalimat.translate(str.maketrans("","",string.punctuation))
print(hasil)
# output
# Ini adalah contoh kalimat dengan tanda baca

Hapus spasi putih (karakter kosong)

Untuk menghapus spasi di awal dan akhir, Anda dapat menggunakan fungsi

pip install Sastrawi
1 dengan python. Lihatlah kode di bawah ini

kalimat = " \t ini kalimat contoh\t "
hasil = kalimat.strip()
print(hasil)
# output
# ini kalimat contoh
_2. Tokenisasi

Tokenizing adalah proses memisahkan teks menjadi potongan-potongan yang disebut token untuk analisis selanjutnya. Kata, angka, simbol, tanda baca, dan entitas penting lainnya dapat dianggap sebagai token. Dalam NLP, token diartikan sebagai "kata-kata" meskipun tokenisasi juga dapat dilakukan pada paragraf dan kalimat

Fungsi

pip install Sastrawi
_2 di python dapat digunakan untuk memisahkan teks. Lihatlah contoh di bawah ini

kalimat = "rumah idaman adalah rumah yang bersih"
pisah = kalimat.split()
print(pisah)
# output
# ['rumah', 'idaman', 'adalah', 'rumah', 'yang', 'bersih']

Sayangnya, level tokenisasi tidak sesederhana itu. Dari keluaran kode di atas, kita akan mengolah kata "home" dan "home" sebagai 2 entitas yang berbeda. Masalah ini tentunya akan mempengaruhi hasil analisis teks itu sendiri

Untuk mengatasi masalah ini kita bisa menggunakan modul dari NLTK yang sudah diinstal sebelumnya

Tokenisasi kata-kata

Sebuah kalimat atau data dapat dipecah menjadi kata-kata dengan kelas

pip install Sastrawi
3 pada modul NLTK

# impor word_tokenize dari modul nltk
from nltk.tokenize import word_tokenize

kalimat = "Andi kerap melakukan transaksi rutin secara daring atau online."

tokens = nltk.tokenize.word_tokenize(kalimat)
print(tokens)
# ouput
# ['Andi', 'kerap', 'melakukan', 'transaksi', 'rutin', 'secara', 'daring', 'atau', 'online', '.']

Dari keluaran kode diatas terdapat tampilan tanda baca (. ) dan koma (,) serta tanda "Andi" yang masih menggunakan huruf kapital di awal kata. Hal ini nantinya dapat mengganggu proses perhitungan pada penerapan algoritma tersebut. Jadi, sebaiknya teks sudah melewati tahap case folding sebelum diberi token agar menghasilkan hasil yang lebih konsisten

Kita dapat menambahkan fungsi case folding untuk menghilangkan tanda baca dan mengubah teks menjadi huruf kecil

import nltk
nltk.download()
_0

Kita juga bisa mendapatkan informasi frekuensi kemunculan setiap token dengan kelas

pip install Sastrawi
4 yang sudah tersedia di modul NLTK

import nltk
nltk.download()
_1

Untuk memvisualisasikannya secara grafis, kita perlu menginstal library Matplotlib

import nltk
nltk.download()
_2

Grafik frekuensi kemunculan kata dalam dokumen

Tokenisasi kalimat

Prinsip yang sama dapat diterapkan pada kalimat terpisah dalam paragraf. Anda dapat menggunakan kelas

pip install Sastrawi
_5 pada modul NLTK. Saya telah menambahkan kalimat ke contoh di bawah ini

import nltk
nltk.download()
_33. Penyaringan (Penghapusan Stopword)

Filtering adalah tingkatan pengambilan kata-kata penting dari hasil token dengan menggunakan algoritma stoplist (membuang kata-kata yang kurang penting) atau wordlist (menjaga kata-kata penting)

Stopwords adalah kata-kata umum yang biasanya muncul dalam jumlah banyak dan dianggap tidak memiliki arti. Contoh kata henti dalam bahasa Indonesia adalah "yang", "dan", "di", "dari", dll. Makna di balik penggunaan stopwords adalah dengan menghilangkan kata-kata yang memiliki informasi rendah dari sebuah teks, kita dapat fokus pada kata-kata penting saja.

Contoh penggunaan filter dapat ditemukan dalam konteks mesin pencari. Jika kueri penelusuran Anda adalah "apa arti manajemen?" . Ini dapat dilakukan dengan mencegah kata-kata dari daftar stopword dianalisis

Memfilter dengan NLTK

import nltk
nltk.download()
_4

Menyaring dengan literatur

Selain stemming, library Sastrawi juga mendukung proses filtering. Kita dapat menggunakan

pip install Sastrawi
_6 dari modul literatur

Untuk melihat daftar stopword yang sudah didefinisikan di library Sastrawi, Anda dapat menggunakan kode berikut

import nltk
nltk.download()
_5

Kode di atas akan menampilkan stopword yang tersedia di library Sastrawi. Proses penyaringan pada Sastrawi dapat dilihat pada baris kode di bawah ini

import nltk
nltk.download()
_6

Kita dapat menambah atau mengurangi kata pada daftar stopword sesuai dengan kebutuhan analisis. Pada dasarnya daftar stopword yang ada di perpustakaan Sastrawi tersimpan dalam daftar yang Anda lihat. Jadi sebenarnya kita hanya perlu merubah register yang ada di list. Tapi itu bisa menjadi masalah jika dalam suatu kasus kita diharuskan menambahkan stopword secara dinamis

Perpustakaan Sastrawi dapat mengatasi masalah tersebut, perhatikan kode di bawah ini

import nltk
nltk.download()
_7

Menurut Jim Geovedi dalam artikelnya menjelaskan bahwa penyesuaian daftar stopword perlu dilakukan setiap kali proyek analisis pertama kali dilakukan. Memang bukan sesuatu yang melelahkan, namun jika tidak dilakukan maka akan mengakibatkan salah interpretasi data

4. Berasal

Stemming adalah proses menghilangkan infleksi suatu kata ke bentuk dasarnya, tetapi bentuk dasarnya tidak berarti sama dengan kata dasarnya. Misalnya, kata "dengarkan", "dengarkan", "dengarkan" akan diubah menjadi kata "dengarkan"

Idenya adalah ketika Anda mencari dokumen "cara membuka lemari", Anda juga ingin melihat dokumen yang menyebutkan "cara membuka lemari" atau "cara membuka lemari" meskipun kedengarannya buruk. Tentu Anda ingin mencocokkan semua variasi kata untuk memunculkan dokumen yang paling relevan

Stemming dengan NLTK (Bahasa Inggris)

Ada banyak algoritma yang digunakan untuk stemming. Salah satu algoritma tertua dan terpopuler adalah algoritma Porter. Algoritme ini tersedia dalam modul NLTK melalui class

pip install Sastrawi
7

import nltk
nltk.download()
_8

Selain Porter, NLTK juga mendukung algoritma Lancester, WordNet Lemmatizer, dan SnowBall. Sayangnya proses stemming Bahasa Indonesia pada modul NLTK belum didukung

Stemming Bahasa Indonesia menggunakan Sastrawi Python

Proses stemming antara satu bahasa dengan bahasa lain tentu saja berbeda. Misalnya pada teks bahasa Inggris, proses yang diperlukan hanyalah proses menghilangkan akhiran. Sedangkan dalam teks bahasa Indonesia, semua imbuhan, baik sufiks maupun awalan, juga dihilangkan

Untuk melakukan stemming bahasa Indonesia kita bisa menggunakan library Sastrawi Python yang sudah kita siapkan di awal. Perpustakaan Sastrawi menerapkan Algoritma Nazief dan Adriani dalam melakukan stemming Bahasa Indonesia

import nltk
nltk.download()
_9

Apakah kita memerlukan semua tahapan preprocessing teks?

Tidak ada aturan pasti yang membahas setiap tahap preprocessing teks. Tentunya untuk memastikan hasil yang lebih baik dan konsisten semua tahapan harus dilakukan. Untuk memberikan gambaran minimal apa yang harus dilakukan, saya telah menjelaskan tahapan yang harus dilakukan, harus dilakukan, dan tergantung tugasnya. Perlu diingat, less is more, Anda ingin menjaga pendekatan seindah mungkin. Semakin banyak fitur atau tahapan yang Anda tambahkan, semakin banyak lapisan yang harus Anda kupas

  • Harus dilakukan pelipatan casing penutup (dapat bergantung pada tugas dalam beberapa kasus)
  • Yang terbaik adalah memasukkan normalisasi sederhana — misalnya, membakukan kata-kata yang serupa
  • Bergantung pada tugasnya termasuk normalisasi tingkat lanjut — misalnya mengatasi kata-kata yang tidak biasa, penghapusan stopword, dan stemming

Jadi, untuk mengatasi tugas apapun setidaknya Anda harus melakukan case folding. Selanjutnya, beberapa normalisasi dasar dapat ditambahkan untuk mendapatkan hasil yang lebih konsisten dan secara bertahap menambahkan tahapan lain sesuai keinginan

Penutupan

Pada artikel ini kita telah mempelajari langkah-langkah dasar dan praktis dalam preprocessing teks bersama dengan pustaka yang digunakan dalam python. Lebih lanjut, hasil text preprocessing dapat digunakan untuk analisis NLP yang lebih rumit, misalnya terjemahan mesin. Tidak semua kasus memerlukan tingkat pemrosesan awal yang sama. Dalam beberapa kasus, Anda dapat menggunakan salah satu tahapan preprocessing yang paling sederhana, yaitu pelipatan case. Namun semua level akan dibutuhkan saat Anda memiliki dataset dengan level noise yang sangat tinggi

Masih ada teknik-teknik yang dapat dilakukan dalam text preprocessing, namun sesuai dengan pendahuluan di atas, artikel ini hanya mengulas langkah-langkah dasar dan praktis dalam text preprocessing.
Semoga berhasil dan bersenang-senang dengan NLP. )

Anda dapat menemukan baris kode di atas di github saya. https. //github. com/ksnugroho/basic-text-preprocessing