Menggambar tidak pernah menjadi karir yang murah untuk dikejar orang, atau bahkan hobi yang dapat Anda nikmati tanpa harus menghabiskan banyak barang dan alat yang berbeda. Ini juga merupakan alasan utama mengapa orang menyerah dalam menggambar, karena mereka tidak mampu membeli peralatan dan media menggambar yang mahal.
Dikatakan demikian, dengan Infinite Painter, Anda akan menemukan diri Anda menikmati seni menggambar dan konten kreatif sepenuhnya, berkat aplikasi dan fungsi mengesankan yang disediakannya. Jangan ragu untuk menggambar dan menikmati pengalaman kreatif Anda sepenuhnya dengan Infinite Painter saat Anda menjelajahi banyak fitur menarik di aplikasi.
Bersenang-senang menggambar dengan alat apa pun yang Anda inginkan dan bersenang-senang membuat karya seni dalam berbagai gaya. Jelajahi fitur-fitur dalam aplikasi yang nyaman dan mengagumkan, yang akan membuat menggambar dan melukis sangat mudah diakses. Yang diperlukan hanyalah layar sentuh di perangkat seluler Anda, dan Anda dapat mulai membuat serta menikmati pengalaman visual yang luar biasa.
Cari tahu lebih lanjut tentang aplikasi seluler yang luar biasa dengan ulasan lengkap kami.
Apa fungsinya?
Jadi, pada dasarnya, dengan Infinite Painter, pengguna Android akan dapat menggambar langsung di layar sentuh perangkat mereka. Dan sebagai hasilnya, tidak diperlukan alat dan perlengkapan menggambar yang besar. Selain itu, Anda tidak akan merasa kotor oleh cat dan grafit. Plus, Anda pasti akan merasa jauh lebih nyaman karena Anda dapat menggambar di mana pun dan kapan pun Anda mau.
Bagi Anda yang tertarik, Anda akan menemukan Infinite Painter menawarkan pengalaman menggambar yang luar biasa berkat fitur yang ditingkatkan dan intuitif di aplikasi. Jelajahi ratusan kuas simulasi yang akan menciptakan beragam sapuan yang dapat Anda manfaatkan. Gambar dan nikmati membuat konten digital yang luar biasa di perangkat seluler Anda sesuai keinginan.
Dan pada saat yang sama, aplikasi ini juga menyediakan fitur pengeditan foto yang berguna dan intuitif, yang memungkinkan Anda membuat perubahan sederhana dan menarik pada foto dan gambar pilihan Anda. Ini juga meningkatkan pengalaman menggambar Anda, karena Anda juga dapat menggunakan alat ini untuk tugas spesifik Anda.
Dan yang paling penting, Anda pasti akan menemukan Infinite Painter menawarkan pengalaman menggambar yang jauh lebih menyenangkan dan menarik karena menyediakan antarmuka yang lebih intuitif untuk menggambar, mendesain, dan mengedit lukisan Anda secara kreatif.
Persyaratan
Bagi Anda yang tertarik, Anda dapat memiliki aplikasi Infinite Painter yang luar biasa yang tersedia di perangkat seluler Anda secara gratis. Yang diperlukan hanyalah mencari aplikasinya di Google Play Store, tidak perlu membayar. Jangan ragu untuk menggunakan banyak fitur yang tersedia di aplikasi dan nikmati membuat karya seni Anda dengan biaya minimum.
Namun, seperti kebanyakan aplikasi seluler lainnya, Anda harus membayar pembelian dalam aplikasi tertentu agar dapat menikmati versi lengkapnya. Yang bisa menjadi masalah bagi Anda yang ingin meningkatkan kualitas pekerjaan Anda.
Selain itu, pastikan Anda menjalankan Android versi 4.2 atau lebih tinggi, sehingga Anda tidak akan mengalami masalah dengan fitur dalam aplikasi. Dan yang terpenting, jika Anda tertarik untuk membuat karya seni secara profesional, alangkah baiknya jika Anda memiliki pena gambar untuk layar sentuh, yang akan meningkatkan karya garis Anda secara drastis.
Fitur mengagumkan
Berikut ini semua fitur menarik yang ditawarkan aplikasi:
Aplikasi seluler sederhana dan kuat untuk menggambar dan mengedit
Pertama-tama, pengguna Android di Infinite Painter dapat mulai menggunakan aplikasi seluler intuitif saat membuat karya kreatif mereka. Mulailah dengan cepat membiasakan diri dengan antarmuka intuitif. Jelajahi opsi yang terorganisir dan dapat diakses, yang akan membuat menggambar dan mengedit jauh lebih mudah. Selain itu, fitur yang mudah diakses dan canggih juga akan meningkatkan alur kerja Anda, menjadikan aplikasi ini sangat berguna.
Di sini, Anda dapat menggunakan fungsi melukis dan menggambar untuk membuat sketsa, melukis, dan lainnya yang mengagumkan. Dan pada saat yang sama, opsi kloning cepat akan secara efektif mengubah foto pilihan Anda menjadi lukisan. Juga, akses cepat yang ditambahkan ke bilah atas akan memungkinkan Anda untuk memasukkan alat apa pun yang menurut Anda paling berguna. Seiring dengan banyak fitur yang berguna dan sederhana, aplikasi Infinite Painter yang luar biasa pasti akan membuat Anda terkesan.
Banyak koleksi kuas yang menarik
Untuk menggambar, melukis, dan karya kreatif, secara umum, pengguna Android di Infinite Painter pasti akan menikmati preset kuas yang unggul, tidak seperti aplikasi seluler lainnya. Di sini, Anda dapat langsung menggunakan lebih dari 160 kuas berbeda dengan beragam efek dan pengalaman visual. Selain itu, pengaturan kuas yang ditingkatkan juga akan memungkinkan banyak pengalaman menggambar yang intuitif dan kuat dengan aplikasi ini. Dan jika Anda menemukan aplikasi tidak memiliki cukup fitur, Anda kemudian dapat melanjutkan untuk menambahkan banyak kuas khusus yang berbeda sesuai minat Anda. Dengan demikian, menjadikan aplikasi ini sangat berguna dan menarik.
Alat yang unggul dan unik dibandingkan dengan yang lain
Dengan Infinite Painter, pengguna Android akan menemukan diri mereka dapat menggunakan alat yang mengesankan, yang benar-benar luar biasa untuk digunakan. Dan yang paling penting, mereka akan membedakan aplikasi dari alat gambar umum dan umum lainnya untuk perangkat seluler Anda.
Mulailah dengan bereksperimen dengan pengalaman simetri yang unik dan menarik dengan Infinite Painter, saat Anda memperkenalkan empat jenis simetri yang berbeda pada karya Anda. Belajar bekerja dengan mode layer dan blend, yang akan membuat alat menggambar jauh lebih kuat dan mumpuni. Jadikan garis Anda bekerja lebih halus dan bersih dengan menambahkan pedoman menggunakan alat yang disediakan. Manfaatkan topeng seleksi dan kliping, yang memungkinkan Anda mempersingkat proses menggambar Anda dengan alat yang berguna. Selain itu, berkat panduan perspektif yang tersedia, Anda akan lebih mudah menggambar.
Nikmati fitur pengeditan lanjutan
Dan bagi Anda yang tertarik, kini Anda dapat melibatkan diri sepenuhnya dalam fitur pengeditan mengagumkan di Infinite Painter, yang secara efektif akan mengubah aplikasi seluler Anda menjadi alat yang ampuh. Sekarang, Anda dapat dengan mudah dan efektif menyesuaikan gambar dan foto Anda dengan banyak alat yang tersedia di Infinite Painter.
Mulailah dengan mengubah banyak lapisan secara sederhana dan efektif pada saat yang sama sehingga Anda dapat membuat perubahan cepat pada gambar Anda. Jelajahi alat transformasi unik, yang akan memberikan berbagai perubahan menarik pada gambar Anda, termasuk penskalaan, rotasi, pembalikan, distorsi, dan aplikasi lainnya. Nikmati membuat pola mulus dengan alat Pola. Haluskan gambar Anda dengan Liquify juga. Nikmati mengubah gradien dan isian pola pada pilihan foto mana pun untuk menciptakan pengalaman visual yang menarik.
Opsi impor dan ekspor sederhana
Dan dengan semua gambar dan pengeditan selesai, Anda sekarang dapat menjelajahi opsi impor dan ekspor yang berguna di Infinite Painter, yang memungkinkan Anda bekerja dengan mudah dengan fitur dalam aplikasi.
Cukup muat beberapa materi pengeditan ke perangkat seluler Anda menggunakan opsi pengeditan yang disediakan, tambahkan gambar dari salah satu penyimpanan pilihan Anda, atau bahkan file PSD yang dapat diedit langsung di dalam aplikasi. Dan pada saat yang sama, opsi ekspor yang ditingkatkan akan memungkinkan Anda melakukan ekspor gambar dengan cepat dan efektif dengan mudah.
Pilih format file mana saja yang ingin Anda miliki di perangkat seluler Anda dan cukup ketuk opsi ekspor. Atau sebagai alternatif, bersenang-senang membagikan karya seni Anda ke komunitas Infinite Painter, atau platform online lainnya dengan opsi yang dapat diakses.
Nikmati versi lengkap aplikasi secara gratis di situs web kami
Dan yang tak kalah pentingnya, bagi Anda yang tertarik dengan aplikasi mengagumkan dari Infinite Painter, kini Anda dapat menjelajahi opsi lengkap dalam aplikasinya tanpa harus membayar pembelian tertentu. Akibatnya, Anda akan menemukan aplikasi ini jauh lebih kuat dan nyaman, sekarang Anda dapat menikmati fitur lengkapnya tanpa terganggu oleh iklan. Yang diperlukan hanyalah mengunduh Infinite Painter Mod APK di situs web kami, ikuti petunjuk yang diberikan, dan Anda siap melakukannya.
Putusan akhir
Bagi Anda yang terbiasa dengan aplikasi menggambar umum seperti Infinite Design atau ibis Paint X, Anda pasti akan menemukan Infinite Painter menarik, karena menyediakan opsi pengeditan foto intuitif yang tiada duanya. Dan yang terpenting, dengan versi aplikasi yang sepenuhnya tidak terkunci dan gratis di situs web kami, Anda pasti akan menikmati banyak fiturnya.
Mendapatkan peringkat situs Anda untuk Google sangat penting untuk kesuksesan Anda. Google sekarang tidak lagi hanya sebuah algoritme, Google telah merekrut karyawan untuk masalah pengaturan peringkat. Sehingga SEO sudah tidak sepenuhnya mampu bekerja untuk melakukan algoritma bot Google. Jadi yang sangat menentukan seberapa besar website Anda memasang iklan di Google Adwords.
Namun bagi Anda yang minim budget, bukan tidak memiliki peluang untuk menembus peringkat terbaik di search Google.
Panduan ini akan membantu Anda melihat toko online Anda, website seperti yang dilihat Google dan memberi Anda rahasia agar Google memilih situs Anda daripada pesaing Anda.
1. Tidak banyak mengunakan metatags
Seringkali dalam membuat optimis SEO Google mengikuti panduan dengan banyaknya meta tags terutama meta property. Untuk masa kini Anda ubah dengan meta name. Untuk Judul, nama website, gambar maupun deskripsi.
2. Nama Image
Sebelum mengupload sebuah gambar, sebaik ubah nama file image terlebih dahulu. Biasanya nama file secara umum misalkan 099765_999999999.jpg. Penamaan tersebut tidak akan dialgoritma oleh perayapan bot Google.
Untuk membuat peringkat gambar itu di Google, Anda harus mengubah namanya menjadi sesuatu yang lebih ramah bot. Pertama ambil nama produk dan gabungkan (Gabungan hanyalah kata SAT yang artinya: rangkai semuanya menggunakan garis bawah atau tanda hubung.
Anda dapat menambahkan satu nama yang sering dirayapi oleh bot Google, misalkan Anda penjual Sepatu, tambahkan nama sepatu dan satu nama yang sering dirayap bot Google. Misalka Sepatu Slop, Anda bisa buat nama file sepatu_slop_terbaik.jpg atau sepatu_slop_pesaing_nike.jpg.
3. Building Links
Menambahkan link eksternal dan Internal yang lebih dikenal dengan backlink, Anda tidak perlu harus membeli link yang sudah expired atau bekerjasama dengan pemilik website orang lain. Karena bagi Anda yang memiliki link pergaulan yang tidak luas ini akan menjadi kendala Anda.
Solusi untuk ini, Anda bisa membuat website lain yang sebabyak mungkin gratisan berisi artikel untuk mendorong website utama Anda tembus peringkat search Google.
4. Menambahkan Geotag setiap halaman web
Jika Anda menjual ke audiens geografis tertentu, pastikan lokasi toko Anda ada di situs web Anda. Anda juga dapat memberi geotag pada gambar minat lokal. Menjadi rumit dengan geotag bisa menjadi pedang bermata dua.
Katakanlah kita memberi geotag pada gambar Sepatu Slop Jalan Braga dengan menambahkan yang terkenal di jalan Braga, meskipun hal itu dapat meningkatkan total penayangan, penayangan tersebut mungkin berada di jalan Braga daripada lokasi toko Anda.
Yang paling sederhana Anda tambahkan alamat lokasi di setiap halaman, yang mana yang demikian sering hanya di tempatkan di halaman contact.
5. Periksa Kecepatan Halaman Web Anda
Kecepatan halaman Anda adalah ukuran seberapa cepat konten di halaman dimuat.
Lebih dari 40% pengguna meninggalkan situs web yang membutuhkan waktu lebih dari tiga detik untuk memuat dan lebih dari 8% pengguna tidak kembali jika kecepatan memuat terlalu lama.
Laman pemuatan yang lambat juga dapat menyebabkan penurunan peringkat keseluruhan situs web.
Ini menunjukkan bahwa pengguna menghabiskan lebih sedikit waktu di situs web karena rasio pentalan mereka.
Semakin rendah peringkat sebuah situs web, semakin sedikit visibilitas online. Proses yang sama dapat sangat memengaruhi lalu lintas organik karena semakin sulit bagi pengguna untuk mencari situs web.
Terkadang, pengembang website perlu mengekspor tabel HTML ke file excel yang membantu mereka melihat statistik/data situs web dalam format file untuk pelaporan situs web dan menggunakan file ini bahkan saat offline.
Untuk menampilkan file excel ada banyak pustaka JavaScript, yang tersedia untuk banyak tugas. Demikian pula, tabel HTML dapat dengan mudah diubah menjadi format lembar Excel menggunakan pustaka JavaScript.
Tutorial ini akan menjelaskan proses mengekspor data tabel HTML ke Excel menggunakan JavaScript.
Metode paling sederhana adalah menyalin sel dari lembar Excel Anda dan menempelkannya di editor HTML. Itu akan secara otomatis menghasilkan kode yang diperlukan untuk tabel HTML. Berikut langkah-langkahnya secara detail:
Anda dapat membuka aplikasi excel di pc atau ponsel yang ingin Anda simpan sebagai file HTML, buka di Excel, di bar colom , klik File > Save As .
Dari daftar drop-down di bawah nama file, pilih extension yang relevan dengan Halaman Web (*.htm, *.html), lalu klik Simpan.
File kemudian akan disimpan sebagai file HTML. Beralih ke Windows Explorer untuk melihat file HTML.
Klik dua kali pada file HTML untuk membukanya di browser default.
Kemudian Anda terapkan file excel tersebut pada Google doc.
Cara lain, Anda cukup uplaod file..xl atau xls di bawah ini:
Chatbots dapat memberikan dukungan real-time bagi pelanggan, oleh karenanya merupakan aset berharga di banyak industri. Saat Anda memahami dasar-dasar library ChatterBot, Anda dapat membuat dan melatih chatbot belajar mandiri hanya dengan beberapa baris kode Python.
Anda akan mengaktifkan dan menjalankan chatbot dasar langsung di langkah pertama, tetapi bagian yang paling menarik adalah fase pembelajaran, saat Anda melatih chatbot Anda. Kualitas dan persiapan data pelatihan Anda akan membuat perbedaan besar dalam performa chatbot Anda.
Untuk mensimulasikan proses dunia nyata yang mungkin Anda lalui untuk membuat chatbot yang relevan dengan industri, Anda akan mempelajari cara menyesuaikan respons chatbot. Anda akan melakukannya dengan menyiapkan data obrolan WhatsApp untuk melatih chatbot. Anda dapat menerapkan proses serupa untuk melatih bot Anda dari data percakapan yang berbeda dalam topik khusus domain apa pun.
Hal Yang Harus diperhatikan
Sebelum memulai, pastikan Anda memiliki versi Python yang berfungsi untuk proyek ChatterBot ini. Versi Python apa yang Anda butuhkan bergantung pada sistem operasi Anda:
Anda perlu menggunakan versi Python di bawah 3.8 agar berhasil bekerja dengan versi ChatterBot yang direkomendasikan dalam tutorial ini. Kamu bisa install Python 3.7.9 using pyenv-win.
Anda harus dapat menjalankan proyek di Ubuntu Linux dengan berbagai versi Python. Namun, jika Anda mengalami masalah apa pun, maka Anda dapat mencobanya install Python 3.7.9, for example using pyenv.
Anda dapat menjalankan proyek dengan berbagai versi Python. Chatbot dibangun dan diuji dengan Python 3.10.7 but should also run with older Python versions.
Jika Anda telah menginstal versi Python yang tepat untuk sistem operasi Anda, maka Anda siap untuk memulai. Anda akan menyentuh beberapa konsep Python saat mengerjakan tutorial:
Langkah 1: Buat Chatbot Menggunakan Python ChatterBot
Pada langkah ini, Anda akan menyiapkan lingkungan virtual dan menginstal dependensi yang diperlukan. Anda juga akan membuat chatbot baris perintah yang berfungsi yang dapat membalas Anda — tetapi itu belum memiliki balasan yang sangat menarik untuk Anda.
Untuk memulai proyek chatbot Anda, buat dan aktifkan lingkungan virtual, lalu instal chatterbot dan pytz:
Menjalankan perintah ini di aplikasi terminal Anda menginstal ChatterBot dan mengontrolnya ke lingkungan virtual Python baru.
Setelah penginstalan selesai, menjalankan python -m pip freeze akan menampilkan daftar dependensi terinstal yang serupa dengan yang dapat Anda temukan di file requirements.txt kode contoh yang disediakan:
Dengan penginstalan selesai, dan mengabaikan beberapa masalah yang dimiliki perpustakaan saat ini, Anda siap untuk memulai! Buat file Python baru, beri nama bot.py, dan tambahkan kode yang Anda perlukan untuk mengaktifkan dan menjalankan chatbot dasar:
Setelah mengimpor ChatBot di baris 3, Anda membuat turunan dari ChatBot di baris 5. Satu-satunya argumen yang diperlukan adalah sebuah nama, dan Anda menyebutnya "Chatpot". Tidak, itu bukan salah ketik—Anda akan benar-benar membuat chatbot pot bunga yang cerewet dalam tutorial ini! Anda akan segera menyadari bahwa pot mungkin bukan mitra percakapan terbaik.
Di baris 8, Anda membuat while loop yang akan terus berulang kecuali Anda memasukkan salah satu kondisi keluar yang ditentukan di baris 7. Terakhir, di baris 13, Anda memanggil .get_response() pada instance ChatBot yang Anda buat sebelumnya dan menyebarkannya input pengguna yang Anda kumpulkan di baris 9 dan ditugaskan ke kueri.
Panggilan ke .get_response() di baris terakhir skrip pendek adalah satu-satunya interaksi dengan chatbot Anda. Namun — Anda memiliki chatbot baris perintah yang berfungsi yang dapat Anda coba.
Jika Anda siap untuk berkomunikasi dengan Chatpot buatan sendiri, maka Anda dapat melanjutkan dan menjalankan file Python:
$ python bot.py
Setelah model bahasa disiapkan, Anda akan melihat tanda lebih besar dari (>) yang Anda tetapkan di bot.py sebagai permintaan input Anda. Anda sekarang dapat mulai berinteraksi dengan panci cerewet Anda:
> hello
🪴 hello
> are you a plant?
🪴 hello
> can you chat, pot?
🪴 hello
Yah… chat-pot Anda merespons, tetapi benar-benar kesulitan untuk mengembangkannya. Sulit untuk mengharapkan lebih banyak dari tanaman dalam pot—bagaimanapun juga, ia tidak pernah bisa melihat dunia!
Bahkan jika chat-pot Anda belum banyak bicara, itu sudah belajar dan berkembang. Untuk menguji ini, hentikan sesi saat ini. Anda dapat melakukannya dengan mengetikkan salah satu syarat keluar—":q", "quit", atau "exit". Kemudian mulai chatbot lain kali. Masukkan pesan yang berbeda, dan Anda akan melihat bahwa chatbot mengingat apa yang Anda ketikkan selama proses sebelumnya:
> hi
🪴 hello
> what's up?
🪴 are you a plant?
Selama proses pertama, ChatterBot membuat file database SQLite yang menyimpan semua input Anda dan menghubungkannya dengan kemungkinan respons. Seharusnya ada tiga file baru yang muncul di direktori kerja Anda:
ChatterBot menggunakan default SQLStorageAdapter dan membuat database file SQLite kecuali Anda menentukan storage adapter yang berbeda .
Karena Anda mengatakan keduanya hello dan hi di awal obrolan (chat), tempat obrolan Anda mengetahui bahwa ia dapat menggunakan pesan-pesan ini secara bergantian. Itu berarti jika Anda banyak mengobrol dengan chatbot baru Anda, lambat laun akan ada balasan yang lebih baik untuk Anda. Tetapi meningkatkan tanggapannya secara manual terdengar seperti proses yang panjang!
Sekarang setelah Anda membuat chatbot baris perintah yang berfungsi, Anda akan belajar cara melatihnya sehingga Anda dapat melakukan percakapan yang sedikit lebih menarik.
Langkah ke-2: Mulai Ujicoba Chatbot Yang Anda buat
Pada langkah sebelumnya, Anda membuat chatbot yang dapat berinteraksi dengan Anda dari baris perintah. Chatbot dimulai dari awal yang bersih dan tidak terlalu menarik untuk diajak bicara.
Pada langkah ini, Anda akan melatih penggunaan chatbot Anda ListTrainer untuk membuatnya sedikit lebih pintar dari awal. Saya juga akan belajar tentang pelatih bawaan yang disertakan dengan ChatterBot, termasuk batasannya.
Chatbot Anda tidak harus memulai dari awal, dan ChatterBot memberi Anda cara cepat untuk melatih bot Anda. Anda akan menggunakan ChatterBot ListTrainer untuk memberikan beberapa contoh percakapan yang akan memberi lebih banyak ruang bagi chatbot Anda untuk berkembang:
1# bot.py 2 3fromchatterbotimportChatBot 4fromchatterbot.trainersimportListTrainer 5 6chatbot=ChatBot("Chatpot") 7 8trainer=ListTrainer(chatbot) 9trainer.train([10"Hi",11"Welcome, friend 🤗",12])13trainer.train([14"Are you a plant?",15"No, I'm the pot below the plant!",16])1718exit_conditions=(":q","quit","exit")19whileTrue:20query=input("> ")21ifqueryinexit_conditions:22break23else:24print(f"🪴 {chatbot.get_response(query)}")
Di baris 4, Anda mengimpor ListTrainer, dan meneruskan chatbot Anda di baris 8 untuk membuat trainer.
Di baris 9 hingga 12, Anda menyiapkan putaran pelatihan pertama, tempat Anda meneruskan daftar dua string ke trainer.train(). Menggunakan .train() menyuntikkan entri ke dalam database Anda untuk membangun struktur grafik yang digunakan ChatterBot untuk memilih kemungkinan balasan.
Note: Jika Anda meneruskan iterable dengan tepat dua item ke ListTrainer.train(), ChatterBot akan menganggap item pertama sebagai pernyataan dan item kedua sebagai respons yang dapat diterima.
Anda dapat menjalankan lebih dari satu sesi latihan, jadi pada baris 13 hingga 16, Anda menambahkan pernyataan lain dan balasan lain ke basis data chatbot Anda.
Jika sekarang Anda menjalankan chatbot interaktif sekali lagi menggunakan python bot.py, Anda dapat memperoleh respons yang agak berbeda dari sebelumnya:
> hi
🪴 Welcome, friend 🤗
> hello
🪴 are you a plant?
> me?
🪴 are you a plant?
> yes
🪴 hi
> are you a plant?
🪴 No, I'm the pot below the plant!
> cool
🪴 Welcome, friend 🤗
Percakapannya belum cukup lancar sehingga Anda ingin pergi kencan kedua, tetapi ada konteks tambahan yang tidak Anda miliki sebelumnya! Saat Anda melatih chatbot Anda dengan lebih banyak data, itu akan menjadi lebih baik dalam menanggapi input pengguna.
Library ChatterBot hadir dengan beberapa corpora yang dapat Anda gunakan untuk melatih chatbot Anda. Namun, pada saat penulisan, ada beberapa masalah jika Anda mencoba menggunakan sumber daya ini secara langsung.
Note: Masalahnya berasal dari ketidaksesuaian antara versi dependensi, serta versi Python yang Anda gunakan. Anda dapat menyiasatinya, tetapi Anda harus mengutak-atiknya.
Alternatifnya, Anda dapat mengurai sendiri file korpus menggunakan pyYAML karena disimpan sebagai YAML files.
Tutorial di atas yang disediakan mungkin sudah cukup untuk Anda untuk membuat Chatnot, selanjutnya Anda hanya akan membuat parse yang disesuaikan data input percakapan Anda sendiri untuk pelatihan dengan ListTrainer ChatterBot.
Untuk menguji chatbot Anda agar mampu menjawab pertanyaan yang dibutuhkan corpora industri, Anda mungkin perlu bekerja dengan data khusus, misalnya dari permintaan dukungan yang ada atau log obrolan dari perusahaan Anda.
Selanjutnya, Anda akan mengerjakan langkah-langkah mengonversi data obrolan dari percakapan WhatsApp ke dalam format yang dapat Anda gunakan untuk melatih bot obrolan Anda. Jika sumber daya Anda sendiri adalah data percakapan WhatsApp, maka Anda dapat menggunakan langkah-langkah ini secara langsung. Jika data Anda berasal dari tempat lain, Anda dapat menyesuaikan langkah-langkahnya agar sesuai dengan format teks spesifik Anda.
Untuk memulai, Anda akan mempelajari cara mengekspor data dari percakapan obrolan WhatsApp.
Langkah ke-3: Ekspor Obrolan WhatsApp
Di akhir langkah ini, Anda akan mengunduh file TXT yang berisi riwayat obrolan percakapan WhatsApp. Jika Anda tidak memiliki akun WhatsApp atau tidak ingin bekerja dengan data percakapan Anda sendiri, Anda dapat mengunduh contoh ekspor obrolan di bawah ini:
Jika Anda akan bekerja dengan sampel riwayat obrolan yang disediakan, Anda dapat melompat ke bagian berikutnya, di mana Anda akan membersihkan ekspor obrolan Anda.
Untuk mengekspor riwayat percakapan yang Anda lakukan di WhatsApp, Anda perlu membuka percakapan di ponsel Anda. Setelah berada di layar percakapan, Anda dapat mengakses menu ekspor:
Klik tiga titik (⋮) di pojok kanan atas untuk membuka menu utama.
Pilih More untuk memunculkan opsi menu tambahan.
Pilih Export chat untuk membuat ekspor TXT dari percakapan Anda.
Dalam tangkapan layar yang digabungkan di bawah ini, Anda dapat melihat tiga langkah berurutan yang diberi nomor dan diberi garis merah:
Setelah mengeklik Ekspor obrolan, Anda harus memutuskan apakah akan menyertakan media, seperti foto atau pesan audio atau tidak. Karena chatbot Anda hanya berurusan dengan teks, pilih TANPA MEDIA. Kemudian, Anda dapat menyatakan ke mana Anda ingin mengirim file tersebut.
Sekali lagi, Anda dapat melihat contoh langkah selanjutnya ini dalam dua tangkapan layar WhatsApp yang digabungkan dengan angka merah dan garis besar di bawah ini:
Dalam contoh ini, Anda menyimpan file ekspor obrolan ke folder Google Drive bernama Chats Ekspor. Anda harus menyiapkan folder itu di Google Drive sebelum dapat memilihnya sebagai opsi. Tentu saja, Anda tidak perlu menggunakan Google Drive. Selama Anda menyimpan atau mengirim file ekspor obrolan sehingga Anda dapat mengaksesnya di komputer, Anda siap melakukannya.
Setelah selesai, alihkan kembali ke komputer Anda. Temukan file yang Anda simpan, dan unduh ke mesin Anda.
Secara khusus, Anda harus menyimpan file ke folder yang juga berisi bot.py dan beri nama ulang chat.txt. Kemudian, buka dengan editor teks favorit Anda untuk memeriksa data yang Anda terima:
9/15/22, 14:50 - Messages and calls are end-to-end encrypted.
⮑ No one outside of this chat, not even WhatsApp, can read
⮑ or listen to them. Tap to learn more.
9/15/22, 14:49 - Philipp: Hi Martin, Philipp here!
9/15/22, 14:50 - Philipp: I'm ready to talk about plants!
9/15/22, 14:51 - Martin: Oh that's great!
9/15/22, 14:52 - Martin: I've been waiting for a good convo about
⮑ plants for a long time
9/15/22, 14:52 - Philipp: We all have.
9/15/22, 14:52 - Martin: Did you know they need water to grow?
...
Jika Anda ingat bagaimana ChatterBot menangani data pelatihan, Anda akan melihat bahwa formatnya tidak ideal untuk digunakan untuk pelatihan.
ChatterBot uses complete lines as messages when a chatbot replies to a user message. In the case of this chat export, it would therefore include all the message metadata. That means your friendly pot would be studying the dates, times, and usernames! Not exactly great conversation fertilizer.
Untuk menghindari masalah ini, Anda harus membersihkan data ekspor obrolan sebelum menggunakannya untuk melatih bot obrolan Anda.
Langkah 4: Bersihkan Ekspor Obrolan Anda
Pada langkah ini, Anda akan membersihkan data ekspor obrolan WhatsApp sehingga Anda dapat menggunakannya sebagai input untuk melatih chatbot Anda pada topik khusus industri. Dalam contoh ini, topiknya adalah - tanaman hias!
Sebagian besar data yang akan Anda gunakan untuk melatih chatbot Anda akan memerlukan semacam pembersihan sebelum dapat memberikan hasil yang bermanfaat. Ini seperti pepatah lama:
Luangkan waktu untuk menjelajahi data yang sedang Anda kerjakan dan untuk mengidentifikasi potensi masalah:
9/15/22, 14:50 - Messages and calls are end-to-end encrypted.
⮑ No one outside of this chat, not even WhatsApp, can read
⮑ or listen to them. Tap to learn more.
...
9/15/22, 14:50 - Philipp: I'm ready to talk about plants!
...
9/16/22, 06:34 - Martin: <Media omitted>
...
Misalnya, Anda mungkin memperhatikan bahwa baris pertama ekspor obrolan yang disediakan bukan bagian dari percakapan. Selain itu, setiap pesan sebenarnya dimulai dengan metadata yang menyertakan tanggal, waktu, dan nama pengguna pengirim pesan.
Jika Anda menggulir lebih jauh ke bawah file percakapan, Anda akan menemukan baris yang bukan pesan sebenarnya. Karena Anda tidak menyertakan file media dalam ekspor obrolan, WhatsApp mengganti file ini dengan teks <Media dihilangkan>.
Semua data ini akan mengganggu keluaran chatbot Anda dan tentunya membuatnya terdengar kurang komunikatif. Oleh karena itu, sebaiknya hapus data ini.
Buka file Python baru untuk memproses data Anda sebelum menyerahkannya ke ChatterBot untuk pelatihan. Mulailah dengan membaca konten file dan menghapus metadata obrolan:
1# cleaner.py 2 3importre 4 5defremove_chat_metadata(chat_export_file): 6date_time=r"(\d+\/\d+\/\d+,\s\d+:\d+)"# e.g. "9/16/22, 06:34" 7dash_whitespace=r"\s-\s"# " - " 8username=r"([\w\s]+)"# e.g. "Martin" 9metadata_end=r":\s"# ": "10pattern=date_time+dash_whitespace+username+metadata_end1112withopen(chat_export_file,"r")ascorpus_file:13content=corpus_file.read()14cleaned_corpus=re.sub(pattern,"",content)15returntuple(cleaned_corpus.split("\n"))1617if__name__=="__main__":18print(remove_chat_metadata("chat.txt"))
Kode function ini menghapus metadata pesan yang tidak relevan dengan percakapan dari file ekspor chat menggunakan re bawaan modul, yang memungkinkan Anda bekerja dengan ekspresi reguler:
Baris 3 imports
re.
Baris 6 hingga 9 mendefinisikan beberapa pola regex. Membuat beberapa pola membantu Anda melacak apa yang Anda cocokkan dan memberi Anda fleksibilitas untuk menggunakan capturing grups untuk menerapkan preprocessing lebih lanjut nanti. Misalnya, dengan akses ke username, Anda dapat memotong percakapan dengan menggabungkan pesan yang dikirim secara berurutan oleh pengguna yang sama.
Baris 10 menggabungkan pola regex yang Anda tentukan di baris 6 hingga 9 menjadi satu pola. Pola lengkap cocok dengan semua metadata yang ingin Anda hapus.
Baris 12 dan 13 buka file ekspor obrolan dan baca data ke dalam memori.
Baris 14 menggunakan re.sub() untuk mengganti setiap kemunculan pola yang Anda tentukan di pattern dengan string kosong (""), menghapus secara efektif itu dari string.
Baris 15 pertama pisahkan string konten file menjadi item daftar menggunakan .split("\n"). Ini memecah cleaned_corpus ke dalam daftar di mana setiap baris mewakili item terpisah. Kemudian, Anda mengonversi daftar ini menjadi tuple dan mengembalikannya dari remove_chat_metadata().
Baris 17 dan 18 gunakan idiom nama-utama Python untuk memanggil remove_chat_metadata() dengan "chat.txt" sebagai argumennya, sehingga Anda dapat memeriksa hasilnya saat menjalankan skrip.
Eventually, you’ll use cleaner as a module and import the functionality directly into bot.py. But while you’re developing the script, it’s helpful to inspect intermediate outputs, for example with a print() call, as shown in line 18.
Akhirnya, Anda akan menggunakan cleaner sebagai modul dan mengimpor fungsionalitas langsung ke bot.py. Namun saat Anda sedang mengembangkan skrip, akan sangat membantu untuk memeriksa hasil antara, misalnya dengan panggilan print(), seperti yang ditunjukkan pada baris 18.
Note: Sebaiknya jalankan skrip Anda sesering mungkin saat Anda sedang mengembangkan kode. Sebagai alternatif untuk mencetak keluaran, Anda dapat menggunakan breakpoint() untuk memeriksa kode Anda dengan pdb. Jika Anda menggunakan debugger seperti pdb, maka Anda dapat berinteraksi dengan objek kode daripada hanya mencetak representasi statis.
Setelah menghapus metadata pesan dari setiap baris, Anda juga ingin menghapus beberapa baris lengkap yang tidak relevan dengan percakapan. Untuk melakukannya, buat fungsi kedua di skrip pembersihan data Anda:
Di remove non message_text(), saya akan menjadi kode tertulis yang memungkinkan Anda menghapus baris yang tidak relevan dari korpus percakapan:
Baris 6 menghapus baris pengantar pertama, yang disertakan dengan setiap ekspor obrolan WhatsApp, serta baris kosong di akhir file.
Baris 8 membuat tuple tempat Anda dapat menentukan string apa yang ingin Anda kecualikan dari data yang akan digunakan untuk pelatihan. Untuk saat ini, hanya berisi satu string, tetapi jika Anda juga ingin menghapus konten lain, Anda dapat dengan cepat menambahkan lebih banyak string ke tuple ini sebagai item.
Baris 9 memfilter messages untuk string yang ditentukan dalam filter_out_msgs menggunakan ekspresi generator yang Anda konversi menjadi tuple sebelum mengembalikannya
Terakhir, Anda juga mengubah baris 12 menjadi 14. Sekarang Anda mengumpulkan nilai kembalian dari pemanggilan fungsi pertama dalam variabel message_corpus, kemudian menggunakannya sebagai argumen untuk remove_non_message_text(). Anda menyimpan hasil pemanggilan fungsi tersebut ke cleaned_corpus dan mencetak nilai tersebut ke konsol Anda di baris 14.
Karena Anda ingin memperlakukan cleaner sebagai modul dan menjalankan kode pembersih di bot.py, sebaiknya sekarang refactor kode di nama-main idiom ke dalam fungsi utama yang kemudian dapat Anda impor dan panggil di bot.py:
Anda memfaktorkan ulang kode Anda dengan memindahkan pemanggilan fungsi dari idiom nama-utama ke dalam fungsi khusus, clean_corpus(), yang Anda tetapkan di bagian atas file. Pada baris 6, Anda mengganti "chat.txt" dengan parameter chat_export_file agar lebih umum. Anda akan memberikan nama file saat memanggil fungsi tersebut. Fungsi clean_corpus() mengembalikan corpus yang telah dibersihkan, yang dapat Anda gunakan untuk melatih chatbot Anda.
Setelah membuat modul pembersihan, kini Anda dapat kembali ke bot.py dan mengintegrasikan kode ke dalam saluran Anda.
Langkah 5: Latih Chatbot Anda di Data Khusus dan Mulai Chating
Pada langkah ini, Anda akan melatih chatbot Anda dengan data percakapan WhatsApp yang telah Anda bersihkan pada langkah sebelumnya. Anda akan berakhir dengan chatbot yang telah Anda latih tentang data percakapan khusus industri, dan Anda akan dapat mengobrol dengan bot - tentang tanaman hias!
Buka bot.py dan sertakan panggilan ke fungsi pembersihan Anda dalam kode:
Anda tidak perlu melakukan banyak pekerjaan ekstra dalam file ini, karena Anda telah menyiapkan fungsi pembersihan dengan baik:
Baris 5 mengimpor clean_corpus() dari cleaner.
Baris 7 menentukan nama file dari file ekspor obrolan Anda. Dalam contoh ini, Anda menganggap bahwa itu disebut "chat.txt", dan terletak di direktori yang sama dengan bot.py. Jika Anda membutuhkan penanganan jalur lebih lanjut, lihat modul Python pathlib.
Baris 12 menerapkan kode pembersihan Anda ke file riwayat obrolan dan mengembalikan sejumlah pesan yang telah dibersihkan, yang Anda sebut cleaned_corpus.
Baris 13 akhirnya menggunakan data tersebut sebagai input ke .train(), melatih chatbot Anda secara efektif dengan data percakapan WhatsApp.
Penting untuk diketahui bahwa ChatterBot akan memperlakukan iterable dengan lebih dari dua item sedikit berbeda dari saat hanya ada dua item, seperti yang Anda lakukan dalam pelatihan sebelumnya:
Jika Anda memberikan daftar percakapan pelatihan yang lebih panjang, tindakan ini akan menetapkan setiap item dalam daftar sebagai respons yang memungkinkan untuk pendahulunya dalam daftar. (Source)
Bergantung pada data input Anda, ini mungkin atau mungkin tidak persis seperti yang Anda inginkan. Untuk data ekspor obrolan WhatsApp yang disediakan, ini tidak ideal karena tidak setiap baris mewakili pertanyaan diikuti dengan jawaban.
Untuk mengatasinya, Anda dapat menerapkan pemrosesan awal tambahan pada data Anda, di mana Anda mungkin ingin mengelompokkan semua pesan yang dikirim oleh orang yang sama ke dalam satu baris, atau memotong ekspor obrolan berdasarkan waktu dan tanggal. Dengan begitu, pesan yang dikirim dalam jangka waktu tertentu dapat dianggap sebagai satu percakapan.
Selalu ada lebih banyak yang harus dibersihkan untuk meningkatkan data masukan Anda! Namun, untuk tutorial ini, saatnya untuk mencoba lagi chatbot houseplant percakapan. Jalankan bot.py dan mengobrol dengan cerewet Anda untuk menguji bagaimana responsnya berubah karena pelatihan:
> hi
🪴 Welcome, friend 🤗
> thanks for the green welcome
🪴 I let you
> you let me be here?
🪴 It's a monsters!
> did you mean monstera?
🪴 The leafs are getting dryer and dryer. But she's growing new ones
> who?
🪴 Do raindrops touch their leaves?
> very philosophical!
🪴 Lol
> ;)
🪴 I don't grow any crop at home
> no crops in pots
🪴 Ah, gotcha!
> ah, I just thought you meant that
🪴 But water makes sense
> yes, water in pots
🪴 Do you have any plant care pro tips?
> water.
🪴 I always thought that love and music was more than enough
> haha
🪴 Well, no. Just the balcony. This worked best
> ok, balcony is notes
🪴 I let you
Chatbot Anda telah meningkatkan jangkauan responsnya berdasarkan data pelatihan yang Anda berikan padanya. Seperti yang mungkin Anda perhatikan saat berinteraksi dengan chatbot Anda, responsnya tidak selalu masuk akal.
ChatterBot menggunakan kalimat lengkap sebagai balasan, dan Anda melatihnya hanya dengan sampel kecil data percakapan. Ukuran data pelatihan yang kecil berarti tidak memiliki banyak balasan untuk dipilih. Dan karena datanya percakapan, tidak semua kalimat sangat berguna sebagai balasan. Namun Chatpot berusaha semaksimal mungkin untuk menemukan balasan paling cocok untuk setiap pesan baru yang Anda ketik!
Untuk memilih tanggapan atas masukan Anda, ChatterBot menggunakan logika BestMatch adaptor secara default. Adaptor logika ini menggunakan jarak Levenshtein untuk membandingkan string input dengan semua pernyataan di database. Kemudian memilih balasan untuk pernyataan yang paling dekat dengan string input.
Jika Anda menggunakan data input yang terstruktur dengan baik, maka pengaturan default ChatterBot memberi Anda hasil yang layak. Dan jika Anda siap melakukan pekerjaan ekstra untuk mendapatkan apa yang Anda inginkan, maka Anda beruntung! ChatterBot memungkinkan banyak penyesuaian dan memberikan beberapa instruksi untuk memandu Anda ke arah yang benar:
ChatterBot memberi Anda default yang masuk akal. Tetapi jika Anda ingin menyesuaikan bagian mana pun dari proses, maka itu memberi Anda semua kebebasan untuk melakukannya.
Di bagian ini, Anda menggabungkan semuanya dan melatih chatbot Anda dengan korpus yang dibersihkan dari ekspor obrolan percakapan WhatsApp Anda. Pada titik ini, Anda sudah dapat melakukan percakapan yang menyenangkan dengan chatbot Anda, meskipun mungkin agak tidak masuk akal. Bergantung pada jumlah dan kualitas data pelatihan Anda, chatbot Anda mungkin sudah lebih atau kurang berguna