Tutorial ini adalah kontribusi berharga dari komunitas kami dan telah diedit oleh DataCamp untuk kejelasan dan akurasi.
Tertarik berbagi keahlian Anda? Kami ingin mendengarnya! Silakan kirim artikel atau ide Anda melalui Formulir Kontribusi Komunitas.
Sebagai praktisi data, Anda kemungkinan sudah menyadari pentingnya membangun pipeline pembersihan dan persiapan data yang kuat dalam setiap proyek machine learning. Namun, saat berurusan dengan data tekstual, pentingnya pipeline semacam ini menjadi lebih besar karena tantangan unik yang dibawa oleh data teks. Masalah seperti data berisik, kesalahan ejaan, singkatan, bahasa gaul, dan kesalahan tata bahasa semuanya dapat berdampak negatif pada kinerja model machine learning.
Untuk memastikan data teks yang digunakan dalam model machine learning akurat, konsisten, dan bebas dari kesalahan, pipeline pembersihan dan persiapan data yang dirancang dengan baik sangatlah krusial. Ini biasanya melibatkan serangkaian tugas seperti normalisasi teks, tokenisasi, penghapusan stopword, stemming, lemmatisasi, dan masking data.
Walaupun pustaka populer seperti NLTK, gensim, dan spaCy menawarkan beragam alat untuk pemrosesan dan pembersihan teks, menangani data tekstual tetap dapat menghadirkan tantangan unik yang secara signifikan memengaruhi kinerja model machine learning. Tantangan ini dapat berkisar dari normalisasi karakter hingga masking data dan banyak lagi. Meskipun masalah tersebut dapat ditangani menggunakan pustaka di atas, sering kali diperlukan waktu dan upaya yang besar untuk menyelesaikannya.
Di sinilah Textacy bersinar. Textacy adalah pustaka Python yang menawarkan cara sederhana dan mudah untuk menangani berbagai masalah umum yang muncul saat berurusan dengan data teks. Meskipun pustaka lain menawarkan fungsionalitas serupa, fokus Textacy pada pemecahan masalah spesifik, seperti normalisasi karakter dan masking data, membedakannya dalam konteks ini.
Normalisasi Karakter dengan Textacy
Normalisasi karakter adalah proses mengonversi data teks ke dalam format standar, yang bisa sangat penting saat menangani data teks multibahasa.
Text = ‘ the cafe “Saint-Raphaël” is loca-/nted on Cote d’Azur.’
Karakter beraksen adalah masalah umum dalam normalisasi teks yang dapat berdampak besar pada akurasi model machine learning.
Masalah ini muncul karena orang tidak selalu menggunakan karakter beraksen secara konsisten, yang dapat menimbulkan inkonsistensi dalam data.
Sebagai contoh, token "Saint-Raphaël" dan "Saint-Raphael" dapat merujuk pada entitas yang sama, tetapi tanpa normalisasi, keduanya tidak akan dikenali sebagai identik. Selain itu, teks sering berisi kata-kata yang dipisahkan dengan tanda hubung, dan apostrof seperti yang digunakan pada teks di atas dapat menjadi masalah untuk tokenisasi. Untuk semua masalah ini, masuk akal untuk menormalisasi teks dan mengganti aksen serta karakter dekoratif dengan padanan ASCII.
Kita akan menggunakan Textacy untuk tujuan tersebut karena ia memiliki kumpulan fungsi pra-definisi yang bagus untuk menyelesaikan masalah ini dengan cara yang mudah dan efisien. Tabel berikut menunjukkan pilihan fungsi prapemrosesan Textacy yang dapat bekerja secara independen dari pustaka lain mana pun.
|
Fungsi |
Deskripsi |
|---|---|
|
normalize _hyphentated_words |
Menyusun kembali kata-kata yang terpisah karena pergantian baris |
|
normalize_quotation_marks |
Mengganti semua jenis tanda kutip dekoratif dengan padanan ASCII |
|
normalize_unicode |
Menyatukan kode berbeda untuk karakter beraksen dalam Unicode |
|
remove_accents |
Mengganti karakter beraksen dengan ASCII |
|
replace_emails |
Mengganti email dengan __EMAIL__ |
|
replace_urls |
Mengganti URL dengan __URL__ |
text = "The café "Saint-Raphaël" is loca-\nted on Cote dʼAzur."
import textacy
import textacy.preprocessing as tprep
def normalize(text):
text = tprep.normalize_hyphenated_words(text)
text = tprep.normalize_quotation_marks(text)
text = tprep.normalize_unicode(text)
text = tprep.remove_accents(text)
return text
Menggunakan fungsi normalize di atas, yang didasarkan pada fungsi prapemrosesan Textacy yang sudah didefinisikan, akan membantu kita menangani masalah normalisasi dengan upaya minimal.
print(normalize(text)
Keluaran:
The cafe Saint-Raphael is located in Cote d' Azure
Masking Data dengan Textacy
Data tekstual sering kali tidak hanya berisi kata-kata biasa tetapi juga berbagai jenis pengenal, seperti URL, alamat email, atau nomor telepon. Terkadang kita justru tertarik pada item-item tersebut. Namun, dalam banyak kasus, akan lebih baik untuk menghapus atau melakukan masking terhadap informasi ini, baik karena tidak relevan maupun karena alasan privasi.
Textacy memiliki beberapa fungsi replace yang praktis untuk masking data, seperti yang ditunjukkan pada tabel di atas. Fungsi replace ini sudah didefinisikan, sehingga memudahkan untuk melakukan masking terhadap informasi sensitif atau tidak relevan tanpa perlu menulis fungsi regular expression kustom.
text = "Check out https://spacy.io/usage/spacy-101"print(replace_urls(text))
Keluaran:
Check out __URL__
Ringkasan
Dalam artikel ini, kami menunjukkan bagaimana textacy dapat digunakan untuk menyederhanakan proses prapemrosesan data untuk data tekstual. Dengan beragam fungsi bawaan, Textacy memudahkan penanganan tantangan prapemrosesan umum, seperti normalisasi karakter dan masking data.
Dengan merampingkan proses prapemrosesan, Textacy membuka jalan untuk berfokus pada aspek yang lebih kompleks dan menantang dalam pemrosesan bahasa alami. Baik Anda mengerjakan analisis sentimen, topik modeling, atau tugas NLP lainnya, Textacy dapat membantu menyiapkan data Anda untuk analisis dengan cepat dan efisien.
Jadi, lain kali Anda menghadapi tantangan prapemrosesan, pertimbangkan untuk menggunakan Textacy guna menyederhanakan alur kerja dan menghemat waktu serta upaya berharga Anda.
Jika Anda merasa panduan tentang Textacy ini bermanfaat dan ingin memperdalam pemahaman tentang prapemrosesan data teks dan pemrosesan bahasa alami, pertimbangkan untuk mengikuti kursus DataCamp Natural Language Processing Fundamentals in Python.
