Implementasi Studi Kasus Chatbot Part 3

MOHAMAD FRANANDA ADIEZWARA RAMADHAN

Sosial Media


0 orang menyukai ini
Suka

Summary

Portofolio ini merupakan tugas akhir pembelajaran terjadwal nlp msib batch 3

Description

AI Chatbot in Python
Chatbot sederhana ini menggunakan konsep sederhana penerapan Cosine Similarity

Disini program Chatbot dibuat dengan sesuai kebutuhan pengguna, jadi kita bisa memilih apakah harus membuat program ini bisa bekerja pada topik tertentu, misalnya untuk Chatbot berbasis Covid-19, atau yang lainnya yang sedang relevan.

sumber materi : https://towardsdatascience.com/making-a-simple-and-fast-chatbot-in-10-minutes-2d84a4ba35e

Tools scraping Artikel

Pada program kali ini kita akan mengambil teks dari internet menggunakan tools newspaper3k, dimana tools ini memiliki beberapa kelebihan yaitu:

1. Kerangka kerja dalam mengunduh artikel yang multi-thread

2. Dapat mengidentifikasi URL baru

3. Mampu mengekstraksi teks dari HTML

4. Terbaik dalam hal ekstraksi gambar dari HTML

5. Mampu mengekstraksi semua gambar dari HTML

6. Dapat mengekstraksi kata kunci dari teks

7. Dapat mengekstrak ringkasan teks

8. Dapat mengekstraksi nama penulis suatu artikel

9. Dapat mengekstraksi istilah yang sedang trend di mesin pencarian Google

10. Dapat bekerja lebih dari 10 bahasa (termasuk Inggris, Jerman, Arab, China, dll)

 

  • Lakukan Scraping Artikel pada web, Web scraping merupakan proses pengumpulan data dan informasi yang ada dalam sebuah website secara otomatis dan spesifik. Dikatakan spesifik karena data yang diambil hanya di bagian tertentu saja sesuai dengan kebutuhan

  • Import library yang dibutuhkan

  • Untuk menggunakan data tekstual untuk pemodelan prediktif, teks harus diurai untuk menghapus kata-kata tertentu - proses ini disebut tokenisasi . Kata-kata ini kemudian perlu dienkode sebagai bilangan bulat, atau nilai floating-point, untuk digunakan sebagai masukan dalam algoritme pembelajaran mesin. Proses ini disebut ekstraksi fitur (atau vektorisasi) .
  • Scikit-learn's CountVectorizer digunakan untuk mengonversi kumpulan dokumen teks menjadi vektor jumlah istilah / token. Ini juga memungkinkan pra-pemrosesan data teks sebelum menghasilkan representasi vektor. Fungsionalitas ini menjadikannya modul representasi fitur yang sangat fleksibel untuk teks.
  • Tokenizing
    Tokenizing merupakan proses pemisahan teks atau kalimat menjadi potongan kata yang disebut 
    token yang kemudian di analisa. Tokenizing juga dibagi menjadi 2 jenis, yaitu tokenizing kata dan
    tokenizing kalimat. Tokenizing kata memisah sebuah kalimat dengan hasil potongan-potongan kata dari kalimat yang dipotong yang kemudian dijadikan token, sedangkan tokenizing kalimat digunakan memisah 
    kalimat-kalimat yang ada dalam sebuah paragraf.

  • Proses 1 (Membuat korpus dengan mendownload artikel dari sebuah link)

Corpus, jamak dari corpora; Sebuah koleksi data linguistik, baik disusun sebagai teks-teks tertulis atau sebagai sebuah transkripsi rekaman suara. Tujuan utama dari corpus adalah untuk memverifikasi sebuah hipotesis tentang bahasa - misalnya, untuk menentukan bagaimana penggunaan suara tertentu, kata atau ragam susunan sintaksis. Linguistik Corpus berkaitan dengan prinsip-prinsip dan praktik menggunakan corpora dalam studi bahasa. Korpus komputer adalah bagian besar teks-teks yang dapat dibaca mesin.

(Crystal, David. 1992. An Encyclopedic Dictionary of Language and Languages. Oxford: Blackwell.)

  • Hal pertama yang perlu kita lakukan untuk bekerja dengan NLTK adalah mengunduh NLTK corpora. Berikut langkah-langkah dalam mendapatkan corpora. Link dapat diganti dengan link teks berbhasa Indonesia, tetapi kali ini kita mencoba menggunakan teks berbahasa Inggris terlebih dahulu. 

  • Proses 2 Tokenization

  • Proses 3 Bot Response 

Bot respon digunakan untuk membuat sebuah percakapan awal antara pengguna dengan bot, jadi disini user dapat menyapa bot, nah untuk kata-kata dapat diganti sesuai dengan kebutuhan, misalnya bahasa indonesia. Pada percakapan awal tidak menggunakan ML atau metode lainnya, program hanya menjawab dengan kata yang di cocokkan sebagai input.

1. Pada list kode bot_greetings itu bentuk kata sapaan bot terhadap sapaan yang kita berikan, dan dapat diganti dengan bahasa Indonesia atau lainnya.
2. Sedangkan, pada list user_greetings itu kata sapaan input dari user dan dapat diganti dengan bahasa lainnya.

  • Sorting List

  • Chatbot Respon Menggunakan Cosine Similarity

Pada respon bot menggunakan teknis Cosine Similarity untuk menghitung kata yang cocok dengan yang di input user terhadap respon dari Bot

  • Daftar kalimat (Sentence List)

  • Create Bot Response

Pada listing kode >bot_response=bot_response+" "+"I apologize, I dont understand" pada list kode ini kata I apologize tujuannya untuk memberikan respon karena sistem tidak mengenali kata yang kita input, jadi sebagai bentuk respon bot kepada user. Kata tersebut bisa diganti dengan bahasa Indonesia, misalnya "Maaf saya tidak mengetahui arti atau tidak mengenali kata-kata yang di input".

  • Proses 4 End Process Making Chatbot

Doc Bot ganti dengan ini atau sesuai dengan topik yang lagi di bahas, print("Doc Bot: Mau nanya apa kamu tentang kabel laut?")

  • AI CHATBOT VERSI INDONESIA
  • Proses 1 (Making Corpus with Download an Article)

  • Proses 2 Tokenization. Tokenization adalah proses pembagian teks yang panjang menjadi bagian yang lebih kecil. Bagian-bagian yang lebih kecil ini biasa dikenal dengan token. Pemrosesan akan dilanjutkan saat kalimat-kalimat tersebut telah menjadi token. Proses tokenization juga disebut dengan segmentasi teks atau analisis leksikal

  • Create Bot Response

  • Proses 4, End Process , Making Chatbot)

INPUT , input merupakan data yang dimasukkan dalam komputer lewat input device. Nantinya, data tersebut akan diolah oleh unit pemrosesan dan menghasilkan output.

OUTPUT, Output merupakan data berupa file maupun cetakan yang dihasilkan dari proses pengolahan data input

 

Informasi Course Terkait
  Kategori: Natural Language Processing
  Course: Dasar Pemrograman Natural Language Programming dengan Python