Dalam cerita ini, kita akan mempelajari cara kerja pemrosesan bahasa alami dengan beberapa contoh. Kisah ini adalah bagian dari seri yang sedang berlangsung. Di Bagian 1, kita belajar tentang pengenalan dan aplikasi dasar NLP.

Bagi seseorang yang baru mengenal bidang Ilmu Data, pasti sering mendengar kata-kata seperti “cocok”, “bertransformasi”, dan masih banyak lagi. Meskipun sumber informasi yang tersedia memungkinkan pemahaman istilah-istilah tersebut, tidak selalu jelas bagaimana berbagai alat tersebut pada akhirnya bergabung untuk membentuk sistem berbasis pembelajaran mesin produksi untuk data baru.

Kumpulan tahapan berurutan yang harus dilalui mulai dari kumpulan data berlabel hingga membuat pengklasifikasi yang dapat diterapkan ke sampel baru (klasifikasi pembelajaran mesin yang diawasi AKA) disebut pipeline NLP.

Membangun Pipeline NLP langkah demi langkah
untuk klasifikasi pembelajaran mesin yang diawasi

Seperti alur teks pembelajaran mesin pada umumnya, kita akan memulai dengan dokumen apa pun yang berisi teks mentah di dalamnya. Kami akan menggunakan kumpulan data yang merupakan kumpulan pesan teks, masing-masing diberi label spam atau ham.

Pipeline kami akan memiliki tahapan sebagai berikut:

1. Menjelajahi dataset

Sebelum mendalami analisis mendalam, pembersihan data, kami ingin melakukan eksplorasi tingkat tinggi terhadap data kami untuk memahami apa yang sedang kami kerjakan. Jadi kita mungkin mengajukan pertanyaan seperti -

  • Apa bentuk data kita — Ini akan membantu kita memahami berapa banyak data yang kita miliki untuk membuat model dan berapa banyak kolom yang ada.
  • Berapa banyak ham atau spam dalam kumpulan data kami-Ini sangat berguna saat kita beralih ke pembelajaran mesin. Jika sekitar 5.560 dari 5.568 adalah spam, maka kami akan menangani masalah ini dengan cara yang sangat berbeda dibandingkan jika pembagiannya 50/50.
  • Apakah ada nilai yang hilang? — Jika ada teks yang hilang, kita tidak akan dapat menggunakannya untuk membuat model jika teks isi sebenarnya hilang. Jadi kami ingin mengetahuinya sebelumnya.

Menjelajahi data sangat penting untuk tahapan selanjutnya, karena eksplorasi paling mendasar ini akan membantu menentukan cara kami melakukan pendekatan terhadap pembersihan data dan pembuatan model lainnya.

2. Pembersihan atau Pra-pemrosesan data

Membersihkan data teks diperlukan untuk menyorot atribut yang ingin digunakan oleh pembelajaran mesin Anda. Pembersihan(atau pra-pemrosesan) data biasanya terdiri dari beberapa langkah:

  • Hapus Tanda Baca — Tanda baca dapat memberikan konteks tata bahasa pada kalimat yang mendukung pemahaman kita, tetapi untuk Python, tanda baca terlihat seperti karakter lain. Jadi, misalnya, bagi kita, “Saya suka NLP.” sama dengan “Saya suka NLP”. Mereka mempunyai arti yang sama bagi kita, tetapi Python mengatakan itu bukanlah hal yang setara ketika Anda memberikannya kepada Python. Jadi, kami akan menghapus semua karakter khusus, tanda kurung dari teks kami.
  • Tokenisasi — Tokenisasi adalah pemisahan beberapa string atau kalimat menjadi daftar kata untuk menyusun teks tidak terstruktur kita.
    Misalnya, ambil kalimat, saya sedang belajar NLP. Setelah tokenisasi, akan ada daftar dengan empat token, “Saya”, “saya”, “belajar”, ​​“NLP”.
  • Hapus kata-kata penghenti— Kata-kata penghenti adalah kata-kata yang umum digunakan seperti, namun, jika, kata-kata tersebut tidak berkontribusi banyak terhadap makna sebuah kalimat. Kami menghapusnya untuk membatasi jumlah token yang harus dilihat Python saat membangun model kami. Misalnya, setelah tokenisasi, kita mempunyai “Saya”, “saya”, “belajar”, ​​“NLP”. Kemudian setelah menghapus stopwords, yang tersisa hanyalah “belajar” dan “NLP”.
  • Lemmatize/Stemming
    * Stemming — Definisi formal dari stemming adalah proses mereduksi kata-kata yang dipengaruhi atau diturunkan menjadi kata dasar atau akar kata. Sederhananya, proses stemming sering kali berarti memotong akhir sebuah kata secara kasar sehingga hanya menyisakan kata dasarnya saja. Ini berarti mengambil kata-kata dengan sufiks yang berbeda dan memadatkannya di bawah akar kata yang sama. Misalnya, stemming dan stemmed adalah dua kata berbeda yang akan di-stem menjadi kata dasarnya, yaitu stem.
    * Lemmatize — Definisi formalnya adalah proses pengelompokan kata-kata yang diinfleksikan bentuk suatu kata sehingga dapat dianalisis sebagai satu istilah, diidentifikasi dengan lemma kata tersebut (bentuk kanonik dari sekumpulan kata). Misalnya, mengetik, mengetik, dan mengetik semuanya merupakan bentuk lemma yang sama. Lemmatizing menggunakan analisis kosakata kata-kata untuk menghilangkan akhiran infleksional dan kembali ke bentuk kamus sebuah kata.

Lemmatisasi memanfaatkan analisis yang lebih tepat untuk membuat kelompok kata dengan makna serupa berdasarkan konteks di sekitar kata, jenis kata, dan faktor lainnya, bukan hanya memotong akhir kata menggunakan heuristik.

3. Membuat Vektor Data Mentah

Untuk mengubah teks apa pun menjadi bentuk yang dapat digunakan oleh model pembelajaran mesin dan Python untuk memahami dan melatih model disebut vektorisasi. Ini didefinisikan sebagai proses pengkodean teks sebagai bilangan bulat untuk membuat vektor fitur.

Jika Anda tidak memiliki banyak pengalaman pembelajaran mesin, Anda mungkin bertanya-tanya apa itu vektor fitur. vektor fitur adalah vektor fitur numerik berdimensi n yang mewakili suatu objek. Jenis vektorisasinya adalah -
Jumlah vektorisasi, N-gram, dan Frekuensi dokumen invers frekuensi term (TF-IDF).

  • Hitung vektorisasi — Membuat matriks term dokumen yang entri setiap selnya akan dihitung berapa kali kejadian tersebut terjadi dalam dokumen tersebut.
  • N-gram— Proses n-gram juga membuat matriks istilah dokumen. Kami masih memiliki satu baris per pesan teks, dan kami masih memiliki jumlah yang menempati masing-masing sel, namun alih-alih kolom yang mewakili istilah tunggal, kolom tersebut mewakili semua kombinasi panjang kata yang berdekatan.
    Dalam n-gram, jika n sama dengan dua, itu disebut bigram, dan itu akan menarik semua kombinasi dua kata yang berdekatan dalam string kita. Misalnya, jika kita menggunakan string seperti “Saya sedang belajar tentang NLP” maka string tersebut akan mengeluarkan empat token, yaitu, “Saya”, “sedang belajar”, ​​“belajar tentang”, “tentang NLP”.

Untuk menghubungkan ini kembali dengan apa yang kita bicarakan sebelumnya, NLP dalam kehidupan sehari-hari, pelengkapan otomatis Google menggunakan pendekatan seperti n-gram. Jika Anda mengetikkan bahasa alami ke Google, ia mengetahui bahwa trigram yang sering digunakan dimulai dengan bahasa alami adalah pemrosesan bahasa alami. Ini mungkin menyarankan keseluruhan frasa yang ingin Anda telusuri.

  • TF-IDF
    TF-IDF membuat matriks istilah dokumen, yang mana masih terdapat satu baris per pesan teks, dan kolom-kolomnya masih mewakili satu istilah unik. Namun alih-alih sel mewakili jumlah, sel mewakili bobot yang dimaksudkan untuk mengidentifikasi seberapa penting sebuah kata bagi sebuah pesan teks. Rumus ini menjelaskan bagaimana bobot ini ditentukan.

TF-IDF adalah topik yang sangat luas sehingga mungkin ada postingan tersendiri tentangnya. Apa yang saya sebutkan di sini hanyalah perkenalan saja. Saya akan mendorong Anda untuk menggali lebih banyak tentang topik ini untuk pemahaman lebih lanjut.

4. Rekayasa Fitur

Rekayasa fitur adalah proses membuat fitur baru dan/atau mengubah fitur yang sudah ada untuk mendapatkan hasil maksimal dari data Anda. Hingga titik ini, model akan melihat kata-kata dalam teks diwakili oleh vektorisasi, tetapi tidak ada yang lain.

Apa lagi yang dapat kita ekstrak dari teks tersebut yang dapat berguna bagi model untuk menguraikan spam dari ham? Misalnya, mungkin kita bisa memasukkan panjang kolom teks. Mungkin spam cenderung lebih panjang dibandingkan pesan teks sebenarnya. Atau mungkin kita bisa menghitung berapa persen karakter dalam pesan teks yang merupakan tanda baca.

Dengan menggunakan fitur baru ini atau fitur lain yang sudah ada, Anda mungkin perlu menerapkan beberapa transformasi pada data Anda agar lebih berperilaku baik. Namun apa itu transformasi? Transformasi adalah proses yang secara sistematis mengubah setiap titik data dalam kolom tertentu, sehingga lebih rapi untuk digunakan model. Misalnya, hal ini berarti mengkuadratkan setiap nilai atau mengambil akar kuadrat dari setiap nilai dalam kolom tertentu.

Salah satu jenis transformasi yang populer disebut transformasi kekuatan. Jadi ini termasuk mengkuadratkan data Anda, mengambil akar kuadrat, dan lain-lain.

5. Membangun Pengklasifikasi ML: Pemilihan model

Kami menggunakan metode pembelajaran mesin ansambel yang merupakan teknik yang membuat beberapa model dan kemudian menggabungkannya untuk menghasilkan hasil yang lebih baik daripada model tunggal mana pun. Hutan acak membuat kumpulan pohon keputusan dan kemudian menggabungkan prediksi setiap pohon untuk menentukan prediksi akhir. Ini dapat digunakan untuk masalah klasifikasi atau regresi (respons kategoris atau respons berkelanjutan).

  • Penelusuran kisi: Pencarian menyeluruh untuk semua kombinasi parameter dalam kisi tertentu untuk menentukan model terbaik.
  • Validasi silang: Ini membagi kumpulan data menjadi k subkumpulan dan mengulangi metode ketidaksepakatan sebanyak k kali dengan subkumpulan berbeda digunakan sebagai kumpulan ketidaksepakatan di setiap iterasi.

Referensi -

Kami telah membahas banyak bagian teori. Pada bagian selanjutnya dari seri ini, kita akan melihat implementasi praktis dari pipeline yang dibahas di atas.