Mundarija:

Ovozli faollashtirilgan yordamchi - MAX: 10 qadam
Ovozli faollashtirilgan yordamchi - MAX: 10 qadam

Video: Ovozli faollashtirilgan yordamchi - MAX: 10 qadam

Video: Ovozli faollashtirilgan yordamchi - MAX: 10 qadam
Video: DOOGEE T20 - ОБЗОР и ТЕСТЫ ХОРОШЕГО БЮДЖЕТНОГО ПЛАНШЕТА 2024, Iyul
Anonim
Ovozli faollashtirilgan yordamchi - MAX
Ovozli faollashtirilgan yordamchi - MAX

Hey, bu ko'rsatmada men MAX chat-botini yaratish haqida gaplashaman (o'zimni ismim !!!)

Ba'zi dasturlar yordamida siz ushbu chatbot ovozini boshqarishingiz yoki turli xil dasturiy ta'minot yordamida ovozli yordamchi sifatida qilishingiz mumkin. Men bu erda gaplashmoqchi emasman, chunki har kim bu dasturni chinakamiga osonlikcha bajarishi mumkin.

Shuning uchun hamma meni qo'llab -quvvatlasin ….

Mening birinchi ko'rsatma !!!!!!!

Nima bo'layotganini asabiy his qilish ……………….

1 -qadam: Tanlov haqida bilish

Tanlov haqida bilish
Tanlov haqida bilish
Tanlov haqida bilish
Tanlov haqida bilish

Salom muhandislar va dizaynerlar ….

Men o'zim informatika fanidan talaba bo'laman, o'yin o'ynashni yaxshi ko'raman va har doim kompyuterdan ilhomlanaman. Qisqacha gaplashib, men bu narsalarning qanday ishlashini bilishni yaxshi ko'raman, shuning uchun men qidirishni davom ettirdim, googling (men Yahoo -dan ham foydalanardim !!! !!!) narsalarni qidirish va o'rganish uchun.

Shunday qilib, bir kuni men Instructables ekranining oldiga keldim. Men har xil loyihalar orqali har xil g'oyalarga ega bo'ldim, o'sha kundan boshlab men uni kuzatib boraman. Tanlov sahifasi meni mukofotlar va loyihalar bilan qiziqtirdi. dunyo

VOICE ACTIVATED CHALLENGE - bu ko'rsatma yozish bo'yicha mening birinchi platformam.

Sovrinlar meni juda xursand qildi (Ha !!! Juda ko'p ……..).

Shuningdek, men kompyuterlar va ularning texnologiyasi sohasidagi bilimlarimni boshqalarga qanday qilib aslida qanday ishlashi haqida aytib berishni xohlayman.

Bu yo'riqnomada men sizga o'z ovozli faollashtirilgan yordamchingizni qanday yaratishni ko'rsataman.

Bu mening birinchi ko'rsatmam bo'lgani uchun juda ko'p xatolar bo'lishi mumkin (garchi bularning barchasi tuzatilgan deb o'ylayman), shuning uchun kechiring.

Xo'sh, …

Keling, sayohatni boshlaylik ………………

2 -qadam: Men narsalar haqida qayerdan bilardim?

Men narsalar haqida qayerdan bilardim?
Men narsalar haqida qayerdan bilardim?
Men narsalar haqida qayerdan bilardim?
Men narsalar haqida qayerdan bilardim?
Men narsalar haqida qayerdan bilardim?
Men narsalar haqida qayerdan bilardim?

Bu asosiy savol bo'ladi, menimcha, sizning ko'pchilik ongingizdan o'tishi mumkin …….

Men maktabda sun'iy intellektga juda ishtiyoqim bor edi, shuning uchun men ko'p narsalarni qidirib topdim va o'zim modelni ishlab chiqdim.

Avvaliga bu juda qiyin (haqiqiy holat) edi, chunki men tushunganimdek, bu juda katta mavzu, uni hal qilish oson emas.

Ko'rib chiqilgan kitoblarga quyidagilar kiradi:

  1. Sun'iy intellekt - zamonaviy yondashuv
  2. 21 -asrda 2 -chi nashrda sun'iy aql
  3. Chuqur o'rganish

Bu juda yaxshi kitoblar (ha, albatta), lekin bu erda yozilgan narsalarni tushunish oson emas, keyin men uni bir chetda qoldirdim va nima haqida qisqacha tasavvur beradigan manbalarni qidirishni davom ettirdim. bu haqiqatan ham unga kirish yo'llarini ifodalaydi.

Maktabdan keyin ta'til davomida men bu haqda chuqurroq o'rgana boshladim.

O'sha paytda men har xil dasturlash tillarini o'rgandim (C ++, C, Python, Java ….), bu juda qiziq.

Mavzu bo'yicha ko'proq o'qish paytida men bir muhim narsani tushundim ……………

Dasturlash tillari har bir mashinani o'rganish jarayonining asosidir

Mashinani o'rganish - bu AIni qo'llash jarayoni

Kompyuterni biz uchun hamma narsani qilish uchun dasturchining xohishiga ko'ra dasturlash tillari va har xil ishlarni yaxshi biladi.

Shunday qilib, men yuqorida tilga olingan kitobda keltirilgan tushunchalarni tushunishimga yordam beradigan tillar uchun yaxshi asos yaratishga qaror qildim

Siz ham shunday qila olasiz ……

Internetda dasturlash tillarini erkin o'rgatish uchun juda ko'p veb -saytlar mavjud

Agar xohlasangiz, bu haqda ko'proq ma'lumotga ega bo'lish uchun Internetda sayr qilishingiz mumkin

3 -qadam: Boshlaylik

Men "Ko'rsatma" ni yozishni boshlashdan oldin, men tushunadigan narsalarni yozishni o'yladim:

  1. Kodlash tajribasiga ega bo'lgan odamlar
  2. Hech qanday kodlash foniga ega bo'lmagan odamlar

Menimcha, men bu ishni xatosiz qildim (umid qilamanki).

Shunday qilib, men foydalanuvchi bilan gaplasha oladigan va suhbatimizga muvofiq javob beradigan chat botini qurishga qaror qildim.

Dastur (ko'rsatmalar to'plami) o'z -o'zidan o'ylay olmaydi. Ma'lumotlar bazasi (ma'lumotlar saqlanadigan joy) mavjud bo'lib, ular foydalanuvchi bilan aloqada bo'lgan eng yaxshi javob berish uchun suhbat paytida qidiriladi.

U kiritilgan narsalarga qarab moslashtirish orqali ishlaydi, kamdan -kam hollarda butun jumla to'liq jumlaga to'g'ri keladi.

4 -qadam: Aslida qanday ishlaydi?

1 -qadam:

MAX foydalanuvchining null kiritganligini aniqlaydi. Agar foydalanuvchi shunday kirishni taqdim qilsa, bu javobni statik ma'lumotlar bazasidan oladi.

Oh uzr …

Aytishni unutdim,

Statik ma'lumotlar bazasi: o'rnatilgan javoblar saqlanadigan joy. Javoblar kabi:

1. MAX foydalanuvchi nima haqida gapirayotganini tushunmasa.

2. Foydalanuvchi o'zini takrorlaganida.

3. Tabriknomalar uchun.

4. Foydalanuvchi hech narsa yozmasa va Enter tugmasini bosishda davom etsa.

Kalit so'z: alohida ma'noga ega so'zlar.

2 -qadam:

Maxsus javoblar borki, ularni MAX oson va oson taniydi. Foydalanuvchilar kiritgan ma'lumotni aniqlagandan so'ng, bunday jumlaning mavjudligini topadi va tegishli kalit so'zni eslab qoladi.

3 -qadam:

Agar berilgan jumla bo'laklarga bo'lgandan keyin ham qurilgan jumla topilmasa, MAX kontekstni aniqlash uchun ma'lum kalit so'zni qidiradi. Agar hech qanday kontekst topilmasa, keyingi maqsad - foydalanuvchini mavzu haqida aniqroq va aniqroq gapirishga undash.

4 -qadam:

Biz aytgan statik ma'lumotlar bazasidan foydalanuvchi nima haqida gapirganiga bog'liq javobni oladi.

5 -qadam:

Men o'zim bajaradigan so'zlarni o'zgartirishga hojat bor (masalan, MENI SIZNI konvertatsiya qilish va hk.).

5 -qadam: bizga kod yozing ……………

Men Turbo C IDE 3.0 dan foydalanmoqdaman, chunki bu IDE [Integrated Developmental Environment]

Kodlashdan oldin, ma'lumotlar faylining namunaviy tuzilishini ko'rib chiqaylik.

MAX ma'lum kalit so'zlarni taniydi.

Agar bu kalit so'zlar foydalanuvchi tomonidan kiritilgan kirishda topilgan bo'lsa, ma'lumotlar faylidan tegishli javob tanlanadi va tanlanadi va ekranda aks etadi.

Ma'lumot faylida javoblardan @ KWD @ token orqali kalit so'z ajratiladi.

Token - bu dasturlashning har bir jihatining eng kichik qismi.

Bu belgi keyingi qatorni kalit emas, balki javobni bildiradi.

@ KWD@ SALOM

SALOM, QALAYSIZ

SALOM AZIZIM !

MEN YAXSHIMAN

Sizning ishingiz qanday edi?

YOSHINGIZ NECHIDA?

BILAMAN

SIZ SHUNI QILSIZ. Men ishonaman …

Siz shunday qila olasizmi?

Menga ishonasizmi?

HA

ISHONCHINGIZ KOMILMI ?

QANA QANDAY XAMMANG?

YO'Q

Siz juda pessimistik ko'rinasiz.

Hech qachon YO'Q demang …

HECH QACHON ASLO DEMA

Hech qachon qo'pollik qilmang

Hech qachon takabbur bo'lmang !!!!

Men buni hech qachon qila olmayman, demayman

Hech qachon OPTIMistik bo'lmang

KOMPYUTER

Men kompyuterda qanday ishlashni bilaman.

Siz hozirda kompyuterdan foydalanayapsiz. To'g'ri?

Masalan, "Salom", yuqoridagi lug'atdan MAX quyidagi javoblardan birini beradi:

SALOM, SALOM QANDAY AZIZ!

MEN YAXSHIMAN

Sizning ishingiz qanday edi?

YOSHINGIZ NECHIDA?

6 -qadam: darslar

Bu narsa aniq bo'lgach, keling, biz foydalanadigan ma'lumotlar tuzilmalarini aniqlaylik.

Biz ikkita sinf yaratamiz:

progstr - Bu foydalanuvchi kiritgan ma'lumotni saqlash uchun ishlatiladi.

resp - Bu har xil javoblar haqidagi ma'lumotlarni saqlash uchun ishlatiladi

sinf progstr {

ommaviy:

char userip [MAX_USER_INPUT];

char kalit so'z [30];

int kalit birikmasi;

int keyno;

int nullip;

// konstruktor

progstr () {keyno = -1; nullip = 0; kalit tovush = 0;

}

} ip;

sinf javobgarligi

{

int tot_resp;

int last_resp;

char javoblar [MAX_RESP_NO] [MAX_RESP_LEN];

char so'z [MAX_KWD_LEN];

ommaviy:

// konstruktor

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

last_resp qaytarish;

}

yaroqsiz so'z (char str [MAX_KWD_LEN])

{

strcpy (so'z, str);

}

char * getword ()

{

qaytarish so'zi;

}

void addresp (char str [MAX_RESP_LEN])

{

strcpy (javoblar [++ last_resp], str);

}

// keyinroq aniqlangan

void display_resp (int raqami);

bekor qilish_display_resp (int raqami);

};

Birinchi sinfga nazar tashlasak, Userip belgilar majmuasi foydalanuvchi tomonidan berilgan jumlani saqlash uchun ishlatiladi.

Boshqa qator kalit so'zi, agar mavjud bo'lsa, kalit so'zni saqlash uchun ishlatiladi. Agar kalit so'z topilsa, biz int kalit so'zini boshqa 1ga qo'yamiz, u 0 bo'lib qoladi, chunki u Konstruktorda 0 ga boshlangan.

keyno tegishli kalit so'zning mos keladigan kalit raqamini saqlaydi.

nullip foydalanuvchi Null kiritishni berganligini ko'rsatadi, ya'ni u boshqa hech narsa qilmasdan enter tugmasini bosadi.

Keling, ikkinchi sinfga kelaylik.

Ma'lumotlarning birinchi a'zosi tot_resp berilgan kalit so'z uchun umumiy javoblar sonini ko'rsatadi.

Javoblar aslida [MAX_RESP_NO] [MAX_RESP_LEN] javoblarida saqlanadi va tegishli kalit so'zlar qator so'zida saqlanadi.

Konstruktor: Bu 0 ga berilgan javoblarning umumiy sonini ishga tushirish uchun ishlatiladi. Nima uchun last_resp ning boshlanishi -1 ga qo'shilsa, add_resp funktsiyasiga qarang.

int getcount ():

Bu funksiya berilgan kalit so'z uchun qancha javob borligini hisoblash uchun ishlatiladi.

bekor so'z (char str [MAX_KWD_LEN]):

Bu kalit so'zni qo'shish uchun ishlatiladi.

char * getword ():

Muayyan sinf uchun mos keladigan kalit so'zni qaytarish uchun ishlatiladi.

yaroqsiz qo'shimchalar (…):

Bu berilgan kalit so'zga mos keladigan javobni qo'shish uchun ishlatiladi.

void display_resp (int):

Bu javoblar uchun berilgan indeks raqamiga mos keladigan foydalanuvchining javobini ko'rsatish uchun ishlatiladi. (aslida u bundan ham ko'proq narsani qiladi!).

vit quit_display_resp (int):

Bu funksiyaning yuqoridagi funktsiyadan farqi shundaki, u foydalanuvchini tark etganda ishlatiladi. Shunday qilib, u foydalanuvchiga so'rovni qaytarmaydi.

7 -qadam: funktsiyalar

void initialize_global ()

{

strcpy (wordin [0], "ARE");

strcpy (so'z [0], "AM");

strcpy (so'z [1], "AM");

strcpy (so'z [1], "ARE");

strcpy (so'zlar [2], "BERILDI");

strcpy (so'z [2], "BU" edi);

strcpy (wordin [3], "BU" edi);

strcpy (so'z [3], "BERILDI");

strcpy (wordin [4], "SIZ");

strcpy (so'z [4], "ME");

strcpy (wordin [5], "men");

strcpy (so'z [5], "SIZ");

strcpy (wordin [6], "SIZNING");

strcpy (so'z [6], "MY");

strcpy (so'z [7], "MY");

strcpy (so'z [7], "SIZNING");

strcpy (so'zlar [8], "Menman");

strcpy (so'z [8], "SIZ VA");

strcpy (wordin [9], "SIZ VA");

strcpy (so'z birikmasi [9], "Menman");

strcpy (so'z [10], "Men");

strcpy (so'z [10], "SIZSIZ");

strcpy (wordin [11], "SIZ");

strcpy (so'z [11], "Men");

strcpy (wordin [12], "ME");

strcpy (so'z [12], "SIZ");

strcpy (wordin [13], "SIZ");

strcpy (so'z [13], "ME");

}

Keling, foydalanuvchiga javoblarni ko'rsatish funktsiyasini yozaylik. For kodidagi birinchi if iborasi ataylab yozish xatosini ishlatish uchun ishlatilgan bo'lib, uni odamnikiga o'xshatadi;-). Xato yozish uchun tasodifan bitta belgi tanlanadi. New Line va Backspace kabi alohida holatlar alohida ko'rib chiqiladi. (Nima uchun deb o'ylaysiz?). Endi men yangi narsa bilan tanishtiraman. Maxsus belgi - *. Char * aniqlangan kalit so'zdan keyin va keyingi tinish belgilaridan oldin topilgan barcha matnni ifodalaydi.

Masalan, foydalanuvchi ma'lumotlarini ko'rib chiqing

AMIT> ERTAGA INDOREGA BORISHIM MUMKINMI?

MAX> NIMA ERTAGA KO'RSATMAYSIZ?

Belgilangan qism lug'atda saqlanmaydi, aksincha u foydalanuvchi kiritgan ma'lumotlardan olinadi. MAX. Dat faylida biz bu ma'lumotlarni shunday saqlaymiz

QILSAM MAYLIMI

QILMASANGIZ NIMA *

Star (*) dasturdan foydalanuvchi kiritishidagi kalit so'zdan keyin (bu erda CAN I) yozilgan hamma narsani xuddi shunday nusxa ko'chirishni so'raydi. Umid qilamanki, endi * maxsus kalit so'z vazifasi aniq. Shunday qilib, keling, yanada murakkab ishni ko'rib chiqaylik.

AMIT> SOTISHGA BORISHIM MUMKINMI?

MAX> ALOQA BO'LMASANGIZ NIMA?

Biz ham ba'zi o'zgarishlarni amalga oshirishimiz kerak. O'zgartirish haqida gapirganda, jumla quyidagi 3 qismga bo'linadi:

  • Wordni almashtirishdan oldin matn. (bu erda, ALOQA BO'LISHGA BORING)
  • Transposed kalit so'z. (mana, SENINGI, MENI o'rniga)
  • Transpozitsiyadan keyin kalit so'z. (mana, men?)

8 -qadam: Ishlarni hal qilish mumkin ………

9 -qadam: Foydalanuvchi kiritishida kalit so'zni qidirish

MAX_KEY DAT faylidagi kalit so'zlar sonini ko'rsatadi.

Biz bu erda kalit so'zni "Foydalanuvchi kiritish" da mavjudligini tekshiramiz.

10 -qadam: Xulosa

Hammasi shu ………

Siz qildingiz !!!!!!!!

O'ylaymanki, hamma hamma narsani aniq tushundi …

Agar kimdir biror narsaga shubha qilsa, so'rashingiz mumkin

Tavsiya: