Isi kandungan:

Cara Membuat A.I. Bahagian 2: 9 Langkah
Cara Membuat A.I. Bahagian 2: 9 Langkah

Video: Cara Membuat A.I. Bahagian 2: 9 Langkah

Video: Cara Membuat A.I. Bahagian 2: 9 Langkah
Video: “Duduk Macam Lelaki” – Netizen Terkejut Lihat Rupa Terkini Anak Perempuan Sharifah Shahira 2024, November
Anonim
Cara Membuat A. I. Bahagian 2
Cara Membuat A. I. Bahagian 2

Ini adalah bahagian 2 mengenai langkah-langkah yang saya ambil untuk membangun AI di komputer windows, menggunakan pangkalan data percuma, alat pengembangan Pengaturcaraan dan enjin TTS terbina dalam percuma yang disertakan dengan Windows.

Perkataan "Windows" milik Microsoft.

Perkataan "Naga" adalah milik Nuance.

Langkah 1: Cara Membuat AI Bahagian 2

Cara Membuat AI Bahagian 2
Cara Membuat AI Bahagian 2

Pilih bahasa pengaturcaraan dan dapatkan beberapa alat

Terdapat banyak bahasa pengaturcaraan. Ada yang dikhaskan untuk A. I. Kegemaran saya adalah Visual Basic, jadi itulah yang saya gunakan. Saya juga bekerja dengan pangkalan data pelayan SQL, jadi saya juga menggunakannya.

Anda boleh memuat turun versi percuma dari laman web Microsoft. Cari "EXPRESS" di laman web Microsoft. [Visual Studio Express dan SQL server Express]

Bahasa lain yang mungkin anda mahukan adalah: Python, C #, C ++, Java, Prolog, Lisp, IPL

dan lain-lain lagi. AIML adalah "Markup Language" yang sangat menarik.

Saya mahukan program "pengecaman pertuturan" yang lebih baik daripada program yang disertakan dengan Windows, jadi saya membeli perisian DRAGON. Saya menggunakan program "Teks-ke-ucapan" standard yang disertakan dengan Windows.

Langkah 2: Reka Sistem Anda:

Reka Sistem Anda
Reka Sistem Anda

Bahagikan projek besar anda menjadi sekumpulan projek yang lebih kecil. Saya membahagikan kod program saya kepada modul.

Saya membahagikan kod saya ke dalam modul yang berbeza supaya fungsi tertentu lebih senang dicari.

Saya mempunyai modul bernama "Proses Input", "Proses AI", "Proses Output", "User Interface" dan beberapa yang lain. Beberapa fungsi saya mesti dapat diakses oleh semua modul kod yang lain, jadi saya meletakkan fungsi tersebut dalam modul "biasa" di mana semuanya dikongsi

Langkah 3: Fungsi yang Dibina Dalam Bahasa Pengaturcaraan:

Fungsi yang Dibina Dalam Bahasa Pengaturcaraan
Fungsi yang Dibina Dalam Bahasa Pengaturcaraan

Bahasa yang berbeza mungkin mempunyai nama yang berbeza untuk ini, tetapi semua bahasa tahap tinggi mempunyai fungsi yang serupa.

LCase atau ToLower: Menukar rentetan ke semua huruf kecil. Saya menukar semuanya menjadi huruf kecil sebelum melakukan carian pangkalan data - walaupun kebanyakan perkara "tidak peka huruf besar-kecil" - Sekiranya berlaku.

Ganti: Ganti tali di dalam tali ke rentetan lain. Anda boleh mengganti tali dengan tali kosong "" untuk menyingkirkannya. Saya menyingkirkan noktah, tanda tanya, koma dan tanda baca yang lain.

Split: Membahagi rentetan menjadi kepingan individu dan memasukkannya ke dalam array. Fungsi ini akan memisahkan rentetan pada watak apa pun, atau "Delimiter". Saya membagi kalimat pada "karakter ruang" "" untuk membuat susunan kata. Ini disebut "Tokenizing" oleh AI Gurus.

Saya menggunakan kata-kata individu untuk membina pertanyaan yang digunakan untuk mencari pangkalan data. (Lebih lanjut mengenai ini dalam artikel saya yang seterusnya)

Langkah 4: Gabungkan Fungsi Built-In untuk Membuat Fungsi Sendiri

Ini adalah contoh "asas visual". Gunakan bahasa pengaturcaraan anda untuk membina sesuatu seperti ini.

Sudah tentu, anda perlu menulis banyak kod, dan membina banyak fungsi, menggunakan bahasa pengaturcaraan pilihan anda.

Langkah 5: Apa yang Modul Lakukan? "Pemproses Input"

Apa yang Dilakukan oleh Modul? "Pemproses Input"
Apa yang Dilakukan oleh Modul? "Pemproses Input"

Mungkin ada seratus cara yang berbeza untuk mengajukan soalan yang sama kepada AI. Sebagai contoh; "Jam berapa sekarang?", "Apakah kamu punya waktu?" "Adakah anda tahu jam berapa sekarang?", "Bolehkah anda memberitahu saya waktu hari ini?" Oleh kerana pengguna hanya meminta waktu, saya mengubah salah satu Input ini menjadi satu Output yang disebut "Query Time" menggunakan tabel "cari" pangkalan data.

Anda boleh menulis kod untuk melingkar melalui jadual sehingga ia sesuai, atau jika anda menggunakan pangkalan data SQL, anda boleh menulis pertanyaan SQL, seperti…

"Pilih Output dari TableName di mana Input =" "apa sahaja""

… Dan kemudian saya menghantar output, "Query Time", ke modul kod seterusnya; "Proses AI"

Selain soalan, terdapat banyak cara untuk mengatakan "Hello"

Hai, Hello, apa kabar, hei, hola, bagaimana ya doin?, Salam, selamat datang, salam, bagaimana …

Semua ini dikurangkan menjadi "Salam"

Apabila pemproses AI melihat "Greeting", ia akan mengirimkan "Greeting" ke pemproses output, yang akan memilih ucapan rawak dari jadual pangkalan data, dan mengucapkannya dengan lantang.

Langkah 6: "Pemproses AI"

"Pemproses AI"
"Pemproses AI"

Proses AI adalah modul kod terbesar. Ia sangat besar sehingga saya membahagikannya kepada beberapa bahagian juga.

Input diperiksa untuk melihat apakah pengguna mengucapkan perintah, atau mengajukan pertanyaan. Juga, AI boleh ada dalam beberapa "Mod" yang bermaksud bahawa kod "Proses AI" mengharapkan pengguna untuk MENJAWAB soalan, dan bukannya MENGHORMATI soalan.

Sekiranya pengguna tidak mengucapkan perintah dan AI tidak berada dalam "Mode" khas, maka ia membina dan melaksanakan banyak pertanyaan, daripada gabungan kata-kata dalam "array kata". Semua hasil pertanyaan disimpan dalam jadual, dan setiap hasil pertanyaan diberi "skor" seberapa dekat hasilnya sesuai dengan apa yang telah diucapkan oleh pengguna. Jadual disusun mengikut skor, dan hasilnya dengan skor tertinggi dikirimkan ke output, jika melebihi ambang tertentu. Sekiranya semua skor berada di bawah ambang batas, AI mungkin bertindak balas dengan "Saya tidak tahu" atau "Itu tidak mengira"

Langkah 7: Jadual "Hasil dan Skor"

The
The

Hasil AI dari input saya "Apa yang dilakukan ayam?"

Langkah 8: "Pemproses Keluaran"

"Pemproses Keluaran"
"Pemproses Keluaran"

Ini melakukan beberapa perkara yang kelihatan "tidak berkaitan" tetapi semuanya ada kaitan dengan mendapatkan teks dari Pemproses AI kepada pengguna.

Berikut adalah senarai.

1. Teks dari pangkalan data mungkin dalam huruf kecil, dan tidak mempunyai tanda baca. Subrutin akan menggunakan huruf besar, dan meletakkan titik atau tanda tanya di hujungnya.

2. Subrutin lain akan memasukkan kembali apostrof menjadi kontraksi, atau mengubah kontraksi kembali menjadi kata penuh (mis. "Cant" diganti dengan "tidak dapat")

3. Mesin teks-ke-pertuturan tidak mengucapkan beberapa kata seperti yang saya suka, jadi "Pemproses Keluaran" menggantikan kata-kata itu dengan ejaan fonetik.. Saya mempunyai jadual "mencari" pangkalan data untuk menyimpannya, serupa dengan yang satu dalam "pemproses input"

4. Sekiranya AI tidak menemui jawapan yang sesuai di dalam pangkalan data, ia boleh mengatakan "Saya tidak tahu" tetapi saya tidak mahu ia berulang kali mengatakannya. Orang-orang sebenar berbeza-beza tindak balas mereka. Jadi ada jadual dengan frasa "Output Biasa" dan fungsi yang memilih satu secara rawak (dan tidak akan memilih yang sama dua kali berturut-turut.)

5. Mesin "teks-ke-pertuturan" (TTS) percuma tidak memberikan banyak pilihan kepada programmer untuk cara kalimat diucapkan, tetapi anda mempunyai sedikit kawalan terhadap nada dan kelajuan fonem. Istilah untuk ini adalah "Prosody". Saya menambahkan beberapa kod "prosody" ke dalam teks dalam pangkalan data saya, dan ketika "Output Processor" melihatnya, ia menyesuaikan nada dan kecepatan di mesin TTS ketika setiap kata diucapkan.

6. Kadang-kadang TTS hanya sukar difahami, jadi selain bercakap dengan kuat, saya juga memaparkannya dengan huruf besar di paparan komputer saya. Bahagian "Antaramuka Pengguna" ini adalah grid yang menunjukkan 6 baris terakhir perbualan, (input pengguna & output AI) dan menatal ke atas ketika baris baru ditambahkan..

Langkah 9: Terus berusaha

Teruskan Mengusahakannya
Teruskan Mengusahakannya

Input saya adalah "Jangan beritahu sesiapa"

Saya masih mengusahakan sistem AI saya, dan mungkin tidak akan "selesai". Semasa saya menambah lebih banyak ciri, saya akan menulis lebih banyak artikel.

Mungkin beberapa idea saya akan memberi inspirasi kepada anda untuk membina AI yang lebih baik daripada idea saya

Disyorkan: