Kategori
Multimedia Python

Natural Language Processing (NLP)

NLP adalah cabang dari Artificial Intelligence yang berhubungan dengan interaksi antara mesin dan manusia menggunakan bahasa natural. •Informasi yang akan digali berisi data-data yang strukturnya “sembarang” atau tidak terstruktur. Oleh karena itu, diperlukan proses pengubahan bentuk menjadi data yang terstruktur untuk kebutuhan lebih lanjut (sentiment analysis, topic modelling, dll). Secara sederhana, Natural Language Processing (NLP) dapat didefinisikan sebagai kemampuan suatu komputer untuk memproses bahasa, baik lisan maupun tulisan yang digunakan oleh manusia dalam percakapan sehari-hari.

“Text data needs to be cleaned and encoded to numerical values before giving them to machine learning models, this process of cleaning and encoding is called as text preprocessing.”

Jenis NLP

  • Rule-based Natural Language Processing : Menggunakan penalaran akal sehat untuk memproses tugas. Misalnya, suhu beku dapat menyebabkan kematian, atau kopi panas dapat membakar kulit orang. Namun, proses ini dapat memakan banyak waktu, dan membutuhkan upaya manual.
  • Statistical Natural Language Processing : Menggunakan sejumlah besar data dan menarik kesimpulan. NLP statistik menggunakan algoritme machine learning untuk melatih model NLP. Setelah pelatihan yang berhasil pada sejumlah besar data, model yang dilatih akan memiliki hasil positif dengan pengurangan.
Tabel Perbandingan NLP

Komponen NLP

  • Lexical Analysis : Dengan analisis leksikal, membagi seluruh potongan teks menjadi paragraf, kalimat, dan kata-kata. Melibatkan mengidentifikasi dan menganalisis struktur kata.
  • Syntactic Analysis : Analisis sintaksis melibatkan analisis kata-kata dalam kalimat untuk tata bahasa dan mengatur kata-kata dengan cara yang menunjukkan hubungan antara kata-kata.
  • Semantic Analysis : Analisis semantik menarik makna yang tepat untuk kata-kata, dan menganalisis makna teks.
  • Disclosure Integration : Integrasi konteks teks. Ini mempertimbangkan arti kalimat sebelum berakhir. Misalnya: “Dia bekerja di Google.” Dalam kalimat ini, “dia” harus dirujuk dalam kalimat sebelumnya.
  • Pragmatic Analysis : Analisis pragmatik berkaitan dengan komunikasi dan interpretasi bahasa secara keseluruhan. Ini berkaitan dengan memperoleh penggunaan bahasa yang bermakna dalam berbagai situasi.

Dari komponen NLP yang ada, kita bahas terkait dengan analisis sintaksis lebih detail

  1. Stemming – Proses yang melibatkan pemotongan akhir atau awal kata yang diubah ke bentuk akarnya dengan tujuan menghilangkan imbuhan. e.g. “bi” di awal kata “bicycle”, “er” di akhir kata “lighter”.
  2. Lemmatization – Proses pengurangan berbagai bentuk kata yang berubah menjadi satu bentuk untuk memudahkan analisis. e.g. kata dari “swim”, “swimming”, “swims”, “swam”, adalah semua bentuk dari “swim”. Nah jadi lemma dari semua kata-kata tersebut adalah “swim”.
  3. Tokenization – Proses pembagian sebagian besar teks berkelanjutan menjadi unit-unit yang berbeda. e.g. “Kalimat ini adalah sebuah contoh tokenization”. Setiap katanya akan dipisah menjadi 1 unit masing-masing. “Kalimat”, “ini”, “adalah”, “sebuah”, “contoh”, “tokenization”. Unit-unit ini biasanya disebut sebagai token.
  4. Parsing – Proses analisis teks menjadi komponen sintaksis logis, biasanya untuk menguji kesesuaian dengan tata bahasa. Contoh dari parsing adalah memecah kalimat untuk menjelaskan setiap elemen kepada seseorang. Atau seperti yang kita sering dengar sebagai contoh, “Budi”. Ketika kita ingin mengajar anak kecil, kita sering kali memecahkan kalimat atau kata per elemennya. “B, U, BU”. “D, I, DI”, “Budi”.

Aplikasi dari NLP

  • Machine Translation.
  • Speech Recognition.
  • Sentiment Analysis.
  • Question Answering.
  • Summarization of Text.
  • Chatbot.
  • Intelligent Systems.
  • Character Recognition.
  • Spell Checking.
  • Spam Detection.
  • Autocomplete.
  • Named Entity Recognition.
  • Predictive Typing.
  • Text Classifications.

Contoh NLP

  1. “Hey siri, tolong setel lagu hits 2020”. Personal Assistant Online seperti OK Google, Siri, Cortana, dan Alexa menggunakan NLP untuk merespon petunjuk-petunjuk vokal.
  2. Penamaan lokasi. Aplikasi seperti Gojek dan Grab sudah menguasai NLP sehingga dapat memberi nama yang terdengar sangat natural di telinga manusia untuk sebuah lokasi. Misalnya saat kamu memesan Gojek di Menara Standard Chartered, akan muncul lagi pilihan titik jemput yang lebih mendetail, seperti lobby atas atau parkir motor.
  3. Aplikasi terjemahan bahasa seperti Google Translate juga menggunakan NLP untuk menerjemahkan bukan lagi kata per kata tetapi sesuai konteks dan grammar bahasa.
  4. Aplikasi Email seperti Gmail, Hotmail, Ymail memfilter dan mengklasifikasikan email kamu dengan NLP sebelum ada email masuk ke dalam inbox sehingga bisa mendeteksi spam dan memindahkannya ke folder spam agar kamu tidak perlu membacanya.
  5. Aplikasi Interactive Voice Response (IVR) yang digunakan di call center untuk menanggapi permintaan user tertentu. Contohnya ketika kita menelpon customer service Telkomsel, kita akan diberi petunjuk dari awal seperti “Tekan 1 untuk menggunakan Bahasa Inggris,” dan nanti akan terputar recorder untuk bahasa inggris. •

Tantangan NLP

  • Memecah kalimat menjadi token.
  • Menandai part of speech (POS).
  • Membangun kosakata yang tepat.
  • Menghubungkan komponen kosa kata yang dibuat.
  • Memahami konteksnya.
  • Menggali makna semantik.
  • Named Entity Recognition (NER).
  • Mengubah data tidak terstruktur menjadi data terstruktur.
  • Ambiguitas dalam ucapan.

Ref : [1][2][3][4][5]