Meningkatkan Keterampilan Agen Perjalanan Anda Melalui NLP (Bagian II) – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Navish

Pemrosesan Bahasa Alami

Apakah Anda sampai pada artikel ini setelah melihat Bagian I’m Betapa mengasyikkannya Anda ingin terus membaca!

Jika Anda tidak datang dari Bagian that I artikel ini, yang dapat Anda baca di sini, ini membahas mengapa prapemrosesan NLP bahkan diperlukan, beberapa cara paling umum untuk memproses information teks, dan pemahaman intuitif tentang praproses teknik untuk diterapkan berdasarkan kasus penggunaan pemrosesan bahasa alami (NLP) Anda. Ini juga memperkenalkan kasus penggunaan khusus saya – sistem rekomendasi berdasarkan preferensi wisata, yang dibuat menggunakan ulasan yang ditulis oleh orang-orang di Tripadvisor. Untuk memuat ruang lingkup, saya berkonsentrasi pada Taman Nasional Yosemite.

Taman Nasional Yosemite. Foto oleh Drahomír Diposting oleh-Mach di Unsplash

Pindah ke Memahami Pemodelan Topik!

Ide dasar dalam NLP adalah untuk menemukan cara berbeda untuk mengubah info teks menjadi info numerik (sambil tetap mempertahankan arti basic dari information teks itu sendiri) yang kemudian dapat ditindaklanjuti oleh komputer untuk berbagai tujuan hilir. Cara paling sederhana untuk melakukan ini adalah dengan membuat sekumpulan kata menggunakan Period Frequency atau vektor TF-IDF. Kolom dalam salah satu kasus ini terdiri dari setiap kata n-gram (alias token) yang ditemukan di seluruh korpus. Jika Anda memiliki 1000 dokumen, vektor unigram (setiap kata unik adalah kolom) dapat dengan mudah berisi 5000 kolom (satu kata di setiap kolom), vektor bigram (satu kolom untuk setiap pasangan kata unik yang muncul bersamaan) dapat berisi 100.000 kolom! ! Ini terlalu banyak untuk digunakan secara praktis dalam banyak kasus.

Pemodelan topik mengambil sejumlah besar kolom dan menguranginya menjadi beberapa kolom (alias dimensi), biasanya 5 hingga 30 kolom. Hal ini dilakukan dengan menggunakan teknik reduksi dimensionalitas yang menangkap “pola berulang dari istilah yang muncul bersamaan” dalam kumpulan dokumen. Tujuannya adalah untuk dapat menggunakan beberapa topik kecil yang dapat digunakan untuk merepresentasikan dokumen dan kolom token dengan kehilangan informasi yang minimal.

Contoh Topik

Katakanlah jika kita mendapatkan 30 topik. Proses pemodelan topik memberikan skor seberapa banyak masing-masing dari 30 topik tersebut berkaitan dengan setiap dokumen (ulasan dalam kasus saya). Setiap topik itu sendiri akan diwakili oleh kumpulan kata-kata asli (token) disertai dengan skor seberapa banyak kata-kata tersebut berkaitan dengan topik. Dalam istilah teknis, ini masing-masing dikenal sebagai matriks topik dokumen dan matriks topik kata.

Skor Word untuk topik & Skor topik untuk dokumen

Pemodelan topik adalah topik yang sangat melibatkan (permainan kata-kata), dan jika Anda ingin mendalami aspek teknisnya lebih dalam, saya sarankan untuk memulai dengan mendalami pengurangan dimensi terlebih dahulu dari artikel ini dan kemudian menindaklanjutinya dengan artikel ini di Pemodelan topik.

T: Jadi, apakah ada algoritme khusus yang dapat kami gunakan untuk Pemodelan Topik?

NMF dan LDA adalah two dari algoritma pemodelan topik tanpa pengawasan yang lebih terkenal. Dengan keduanya, jumlah topik yang dihasilkan adalah parameter paling berpengaruh yang dapat Anda kendalikan. Namun di luar itu, mereka cukup “tidak diawasi” terhadap hasil mereka. Tidak ada jawaban apakah topik yang mereka hasilkan benar atau salah – hanya jika topik tersebut masuk akal dalam konteks tujuan Anda.

Biasanya, NMF telah menunjukkan hasil yang lebih baik ketika info lebih sedikit (ukuran dokumen kecil, lebih sedikit dokumen) dan LDA mulai menghasilkan topik yang lebih masuk akal ketika ada lebih banyak information untuk dilalui.

Kami dapat menggunakan dokumen & kata-kata dengan skor tertinggi di setiap topik untuk memastikan apakah topik tersebut masuk akal.

Jika semua 5 teratas (dapat memeriksa 10 teratas juga – tidak ada angka pasti) memiliki menilai dokumen di bawah topik tertentu memiliki tema yang konsisten dan berkerumun di sekitar sesuatu yang Anda pedulikan, maka topik tersebut masuk akal. Logika yang sama juga berlaku untuk memeriksa kata-kata dengan skor tertinggi.

Berdasarkan intuisi domainname, dalam kasus saya, saya mengharapkan ulasan di taman nasional berulang kali menyebutkan apakah suatu tempat mudah atau sulit untuk didaki, apakah Anda bisa mendapatkan foto yang bagus dari objek wisata itu, dll.

Contoh ulasan dengan topik yang membahas tentang pemandangan yang menakjubkan

Berikut adalah beberapa tantangan yang dapat Anda temui selama proses pemodelan topik itu sendiri untuk sampai pada sesuatu yang”masuk akal”:

Algoritme mengambil kata-kata berulang tertentu yang menghabiskannya dari konteks yang Anda butuhkan dalam kasus penggunaan Anda. Dalam hal ini, Anda perlu terus memproses information Anda hingga masuk akal untuk mencapai tujuan yang diinginkan. Ini bisa berarti menambahkan lebih banyak kata henti khusus karena topiknya berpusat di sekitar kata-kata tertentu yang mengarah ke topik yang tidak membantu, atau memisahkan kata menjadi token bigram / trigram, atau pemfilteran berbasis POS. Dalam kasus saya, nama objek wisata digunakan secara mencolok dalam information teks asli dan topiknya tetap berpusat di sekitarnya. Mereka harus dibuang secara siklis dalam langkah-langkah pra-pemrosesan untuk mendapatkan hasil yang diinginkan. Parameter yang digunakan untuk menginisialisasi proses pemodelan topik itu sendiri mungkin perlu diubah. Model harus diizinkan untuk menemukan lebih banyak (atau lebih sedikit topik), atau memerlukan jumlah iterasi yang lebih tinggi untuk mengabstraksi pola yang lebih masuk akal. Algoritme pilihan bukanlah yang paling tepat untuk konteks yang disediakan dan yang lain harus digunakan.

Yang terpenting, ingatlah pemodelan topik adalah proses berulang dan terkadang bisa membuat frustrasi. Topik Anda mungkin tidak masuk akal; terutama pada awalnya.

Tetapi Anda harus mengulang melalui langkah-langkah pra-pemrosesan DAN langkah-langkah pemodelan topik untuk melihat apa yang berhasil bagi Anda untuk sampai pada koleksi akhir topik yang”masuk akal”.

T: Algoritme apa yang Anda gunakan? Apakah Anda sampai pada topik yang “masuk akal”?

Saya akhirnya menggunakan algoritma Corex, karena saya menyukai pendekatan semi-supervisednya. Artinya, Anda dapat menentukan “kata jangkar” untuk membantu algoritme membuat topik yang berpusat di sekitar kata-kata ini secara khusus. Setiap topik yang diinginkan dapat memiliki beberapa kata tautan yang ditentukan di bawahnya. Ini berfokus pada menemukan kata-kata itu dan kata-kata lain yang hampir muncul untuk menemukan kumpulan topik terakhir, bersama dengan dokumen yang berkaitan erat dengan topik-topik ini.

Anda bahkan dapat menentukan kata tautan untuk secara eksplisit memisahkan topik yang digabungkan bersama.

Menentukan kata jangkar juga merupakan proses berulang sampai Anda mendapatkan hasil yang masuk akal (ya, lebih banyak iterasi! ) ) .

Saya akhirnya sampai pada 12 place kata jangkar (beberapa di antaranya dapat dilihat di bawah), dan 18 topik. Disarankan untuk menyimpan beberapa topik tambahan dibandingkan dengan jumlah daftar kata jangkar, sehingga algoritme dapat menangkap pola berulang lainnya yang belum ditentukan secara eksplisit melalui kata jangkar itu sendiri.

Contoh daftar Kata Jangkar

Sebagai aturan praktis, Anda ingin memastikan setiap topik Anda memiliki ~ 5 percent atau lebih tinggi% dari complete dokumen di bawahnya (Satu dokumen biasanya berada di bawah beberapa topik). Ketika sebuah topik memiliki sangat sedikit dokumen, Anda berpotensi dapat menghilangkan topik tersebut, baik dengan menghapus kata tautan yang secara eksplisit sesuai dengannya atau mengurangi jumlah keseluruhan topik.

Corex juga memiliki skor yang dikenal sebagai TC (Total Correlation) yang diukur pada tingkat topik agregat & individu. Anda dapat membaca lebih lanjut tentang ini dan aspek lain dari Corex di sini.

T: Objek wisata apa yang Anda rekomendasikan? )

Tergantung pada apa yang Anda suka!

Untuk bagian akhir dari proyek ini, pertama-tama saya memberi tag untuk menangkap makna setiap topik dengan melihat kata-kata jangkar, kata-kata / ulasan skor tertinggi dari korpus untuk setiap topik.

Dari jumlah tersebut, saya fokus hanya menggunakan 12 topik untuk membuat sistem rekomendasi.

Topik Berlabel

Untuk membuat sistem rekomendasi, saya menghitung rata-rata skor topik di semua ulasan pada tingkat nama objek wisata, sehingga setiap nama objek wisata memiliki skor yang sesuai pada”Pemandangan menakjubkan”,”pendakian mudah”, dll. Jadi saya memiliki vektor 12 dimensi untuk setiap atraksi.

Skor Topik untuk setiap ulasan, di bawah titik atraksi tertentu
Rata-rata dari semua skor topik di bawah setiap titik atraksi

Dari sini, saya membangun sistem rekomendasi di mana pengguna dapat memasukkan 3 preferensi teratas mereka untuk perjalanan tersebut. Preferensi ini diberi nilai 1 sedangkan 9 preferensi lainnya diberi nilai 0, untuk membuat vektor”enter pengguna” 12 dimensi.

Menggunakan kesamaan kosinus, vektor enter pengguna dibandingkan dengan vektor skor topik rata-rata dari setiap atraksi untuk menemukan kesamaan skor tertinggi. Hasil skor 3 teratas (nama atraksi) dikembalikan, diberi peringkat dalam urutan menurun menurut skor kosinus mereka.

Skor dari setiap titik tarikan, yang peringkatnya 1–3, adalah keluaran bagi pengguna

Setelah semuanya dikatakan dan dilakukan, saya sangat mengagumi NLP. Saya tidak pernah terlalu terpikat oleh gagasan itu ketika saya mulai terjun ke Ilmu Data, tetapi sekarang saya mengerti mengapa banyak yang terpikat olehnya. Terutama mengingat kemajuan mutakhir di NLP hanyalah terobosan dalam kedahsyatan mereka. Contoh luar biasa dari hal ini dapat dilihat dengan melihat salah satu proyek saya yang lain, berjudul ‘Menciptakan “Berita yang Tidak Memihak” Menggunakan Ilmu Data’.

Waiiit! Bisakah saya mendapatkan beberapa rekomendasi?

Ya tentu saja! Saya menerapkan sistem rekomendasi online menggunakan streamlit dan Anda dapat mengklik di sini untuk menggunakannya.

Beri komentar di bawah tentang bagaimana perjalanan Anda! Dan jika Anda ingin menghubungi untuk pertanyaan atau diskusi apa pun, saya dapat dihubungi di Linkedin. Kode proyek dapat ditemukan di Shop Github saya.

Meningkatkan Keterampilan Agen Perjalanan Anda Melalui NLP (Bagian II) awalnya diterbitkan di Limit AI on Moderate, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Towards AI

Leave a Reply