[Share][Diskusi] Mengenai NLP(Natural Language Processing)
TS
voidd
[Share][Diskusi] Mengenai NLP(Natural Language Processing)
Quote:
Dear NLP…
Hallo pembaca yang budiman(si budi dan superman)… apa kabarnya??
Spoiler for README:
sebetulnya ini ilmu kanuragan jadul punya gan, tapi masih tetap menarik sampe nanti suatu hari ada yang punya winning formula
Prakteknya ane menggunakan Python sama C++.
diluaran sana udah banyak sebetulnya tutor2 tentang ini gan, so ane share disini berdasar apa yang sudah dan sampe sekarang ane praktekkan saja, teknik2 yang ane pake pasti tetap berkembang, jadi isi thread ini juga pasti akan ane update terus
Ane bukan master ato suhu di bidang NLP gan, baru 4 tahun belakangan ini aja ngulik di bidang ini karena memang dari lahir sudah tergila-gila dengan apa itu Artificial Intelligence A.k.A kecerdasan buatan(sekarang jadi gila beneran gara-gara belajar ginian)..
NLP juga punya istilah lain yaitu Text Analytic atau Text Mining(berkaitan dengan Data Mining)
Apa itu NLP? NLP(Natural Language Processing) adalah pemrosesan bahasa alami (hasil google translate)
Kalem gan.. jangan buru-buru, belanda masih tetep diseberang kok
Kita mundur dikit kebelakang yuk…
Bahasa merupakan alat yang sangat penting dalam menunjang keberlangsungan hidup manusia, ane gak bisa bayangin gan, kalo manusia lahir tanpa kemampuan ini.. ya walaupun pada akhirnya setiap jenis entitas yang memiliki intelegensia pasti bisa nemuin cara untuk berkomunikasi (telepati mungkin.. )
Makanya ane agak maklum klo PitheCantropusErectus dulu suka bunuh-bunuh sesamanya, lhaa wong bahasa nyaa “aaaakk..ukkkk..akkkkk…pkkiiikkk” gimana gak pada salah paham gan
Bahasa mempermudah kita untuk memperoleh informasi ataupun bertukar informasi, mengekspresikan emosi, curcol (curhat colongan), ngegosip banyak lagi deh gan.
Saya bukan seorang dokter saraf atau ahli bedah otak, atau ahli bahasa yang pandai merangkai kata (gak ada hubungannya yak )
tapi ane hanya tukang bikin program yang menikmati proses dalam pembuatan software atau suatu system (pembuatan anak apa lagi ahhkkk ), karena itu ane merasa perlu untuk menyelami detail segala sesuatunya gan, dalam hal ini pembuatan A.I yang berkaitan dengan pemrosesan bahasa, sooo kita mundur dikiiittt lagi kebelakang oke
Quote:
when programming meet natural language…
Pemrosesan Bahasa di dalam otak
Pada tahun 1861 seorang ahli bedah saraf Paul Broca memiliki pasien yang memiliki cacat dalam mengucapkan kata-kata dimana sang pasien tersebut ternyata memiliki cedera di bagian hemisphere kiri pada otaknya, dan area pada otak tersebut kemudian diberi nama Broca, yang selama masanya Broca area bertanggung jawab dalam memproduksi bahasa di otak kita.
Satu decade kemudian seorang ahli saraf Carl Wernicke, menemukan area pada otak(masih di sayap kiri (di kata CR-7 apa.. )) sedikit kebelakang Broca area yang kemudian disebut Wernick’s area, dimana area tersebut bertanggung jawab dalam memproses bahasa yang kita dengar.
Spoiler for Broca and Wernicke:
Nah.. jadi yang lagi pada galau malem mingguan gak ada yang dateng, jangan suka jedotin pala bagian kiri ke tembok yak…hehehehe
Untuk lebih menariknya nanti ane post bagian horror-horor gininya di post Neural Network aja yak, biar lebih nyambung, sekalian kita bahas masalah Natural Language Understanding, biar gak pada berantem macam PitheCantropusErectus. kebetulan ane udah maen sampe sini, masih dasar sih… kalem gan
Seperti yang ane udah bilang tadi diatas, kalao setiap entitas yang memiliki intelegensia pasti dapat menemukan cara berkomunikasi(produksi bahasa contohnya, morse code, jangkrik dengan kriikk..kriikk-nya), begitu pula dengan computer, ya memang computer itu benda mati, tapi kalau kita bisa meletakkan intelegensia didalamnya?? bukan hal mustahil kalau si computer bisa belajar bahasa.
Quote:
Respect the process…
Jadi bagaimana itu pemrosesan bahasa?
Dari namanya “proses” yang pasti didalamnya ada suatu aktivitas pembelajaran yang berkelanjutan, bahkan sampai agan mati pun pasti ada aktivitas pembelajaran itu. kalau kita perhatikan lagi, coba agan renungkan…coba agan pikirkan… Apa yang kau inginkan telah aku lakukan… eaaalahh kok malah nyanyi tooh piyeS E N S O R
pasti semakin berkembang aktivitas agan dengan manusia ataupun rajin membaca dan hal-hal lainnya yang memerlukan keahlian Broca dan Wernicke, pasti disitu pula keahlian agan dalam menghasilkan bahasa untuk digunakan semakin bagus, dan semakin pandai dalam merangkai untaian kata-kata indah yang ditujukan kepada mantan.. nah lhooo…
Sebanyak yang udah ane pelajari dan ane terapkan dalam system yang sedang ane kembangkan, pemrosesan bahasa itu dapat dilakukan cukup dengan 3 hal dasar:
mohon ditambahkan atau dikoreksi kalau ada kekurangan dan kesalahan ya gan
Spoiler for 3 hal dasar pada NLP:
Spoiler for 1.Syntatic Process:
Beberapa hal dasar yang perlu kita fahami, didalamnya ada:
Spoiler for Part-of-Speech Tagging(POS Tagging):
Melabeli kata dengan aturan grammar bahasa yang diyakini.
Contoh:
kata:
[‘meja’, ‘hitam’]
POS Tag Processing result:
[(‘meja’,’Verba’),(‘hitam’,’Verba’)
Spoiler for Spell Checking:
Koreksi kata agar sesuai aturan bahasa masing-masing alam
Memenggal setiap kata pada kalimat menjadi vector tersendiri
Contoh: [‘saya orang gantenk’] => [‘saya’,’orang’,’gantenk’]
Spoiler for Morphology Analysis:
Secara harafiah, morfologi berarti 'pengetahuan tentang bentuk' (morphos)
Pada cabang linguistik morfologi analysis adalah proses mengidentifikasi satuan-satuan dasar bahasa sebagai satuan gramatikal.
Morfologi mempelajari seluk-beluk bentuk kata serta pengaruh perubahan-perubahan bentuk kata terhadap golongan dan arti kata. Atau dengan kata lain dapat dikatakan bahwa morfologi mempelajari seluk-beluk bentuk kata serta fungsi perubahan-perubahan bentuk kata itu, baik fungsi gramatik maupun fungsi semantik.
Proses dasarnya ada beberapa salah satunya mencari root kata atau kata dasar:
Contoh: ['menggagahi'] => ['gagah']
Spoiler for Lexical Analysis:
Menggabungkan hasil dari POS menjadi suatu kalimat ataupun frasa yang bermakna sesuai aturan bahasa.
Contoh :
Kata:
[‘meja’, ‘hitam’]
POS Tag Processing result:
[(‘meja’,’Verba’),(‘hitam’,’Verba’)]
Lexical Analysis result:
Verba+Verba = Frasa Verba
Spoiler for beberapa hal yang perlu dipahami tentang lexical::
Lexicon: lexicon adalah koleksi informasi akan suatu kata terhadap letaknya akan aturan grammar pada suatu bahasa (berkaitan dengan POS Tagging)
Contoh:
kata ['hitam'] selain memiliki Tag ['Verba'] juga memiliki Tag lainnya yaitu ['Noun'] dan ['Adjektiva']
karena itu struktur lexicon untuk kata ['hitam']
menjadi => [('hitam'), (V, N, Adj)]
Spoiler for 2.Semantic Process:
Nah nyang satu ini cukup berguna nih gan, ane saranin gali yang dalem ni satu
Apasih itu Semantic Process?
Semantic atau bisa dilakukan juga Semantic Analysis, merupakan suatu metode untuk mengekstrak ataupun merepresentasikan arti atau makna dari suatu kalimat atau kata.
Makna atau arti dari kata juga dapat diperoleh melalui metode statistik. Dalam prosesnya juga Semantic dapat diperoleh dari hasil proses Syntatic Analysis yang kemudian dibentuk menjadi Logical Forms(LFs) baik menggunakan Features Based Grammar atau beberapa lainnya.
bisa kita Sebut juga proses Semantic dari Semantic Analysis sebagai Explicit Semantic Analysis (ESA).
lebih serunya, tentu saja kalau kita implementasikan metode Unsupervised yang akan menghasilkan LSA atau Latent Semantic Analysis.
Perbedaan mendasar ESA dan LSA menurut ane berasal dari metode nya, kita sebut Latent karena parameter-parameter yang digunakan berada dalam state undefined dan masih harus ditemukan, berbeda dengan ESA yang parameternya bisa kita dapatkan melalui proses Syntatic Analysis.
LSA sendiri banyak melibatkan proses matematika dan statistik, yang menyatakan bahwa informasi semantik dari suatu kata atau kalimat dapat diperoleh dari word-document(kata pada dokument/kalimat) merupakan co-occurence matrix, dimana word dan document berada pada suatu titik (high-dimensional) Euclidian Space.
cem mana… seru ya gan LSA,, heheheh, nanti kita bahas lagi gan
Spoiler for 3.Heuristic Process:
Kata heuristic itu sendiri dapat diartikan membantu untuk mencari atau menemukan sesuatu (parameter maksimal) untuk mencapai hal yang diinginkan melalui proses trial and error.
Proses heuristic, menurut ane lebih kepada common sense dari pada proses matematika.
Nanti ane buat post tersendiri buat bahas proses ajaib yang satu ini gan..heheh
Ingat ke 3 hal tersebut hanya mampu di level proses ya gan, belum sampai ke level Understanding, Intuition atau Perception atau pengertian, paham, ngehS E N S O Ran sebangsanya. Terkecuali untuk si nomor 3 “Heuristic Process”, menurut ane itu proses yang cukup vital disemua area.
Dari ke 3 hal dasar tersebut masih sangat banyak lagi gan hal-hal atau algoritma-algoritma pendukung ataupun inti lainnya.
Ada baiknya juga agak banyak meng-utak-atik tentang Regex(Regular Expression), kalo bisa di masterin gan, itu satu menurut ane verryy veryyy usefull.
Spoiler for Renungkan:
Otak kita adalah suatu black-box yang sungguh luar biasa kemampuannya, dan sampai saat ini belum ada satu halpun yang mampu menyamainya, walaupun ane mengakui kalau mesin masih superior dalam hal pemrosesan data dalam sekala besar dalam satu waktu, tapi dalam ke-superioran mesin, ia masih sangat kecil dibandingkan dengan kemampuan otak kita yang tak terbatas. Soo, bersyukurlah atas karunia-Nya,, Cheerss…
oh iya, semua hasil kegilaan ini ane tuangkan kedalam ide yang siap pakaigan, kalo agan tertarik
Spoiler for My Startup:
ni startup ane gan, baru mulai tahun lalu sih, kebetulan ane jg butuh semua dukunganyang ada..
kebetulan Language Processing ane Fokus buat Bahasa Indonesia aja gan, karena menurut ane bahasa lain sudah banyak diluaran
tapi berhubung pemrosesan yang ane pake menggunakan Deep Learning dan Deep Neural Network berjalan di Character Level Processing, jadi untuk bahasa yang lainya gak terlalu banyak masalah, mungkin China, Jepang sama Arab yang agak susah (Non ASCII).