Mündəricat:

Səs Aktivləşdirilmiş Köməkçi - MAX: 10 Addım
Səs Aktivləşdirilmiş Köməkçi - MAX: 10 Addım

Video: Səs Aktivləşdirilmiş Köməkçi - MAX: 10 Addım

Video: Səs Aktivləşdirilmiş Köməkçi - MAX: 10 Addım
Video: КАК НАСТРОИТЬ L4D2 2024, Iyul
Anonim
Səs Aktivləşdirilmiş Köməkçi - MAX
Səs Aktivləşdirilmiş Köməkçi - MAX

Hey bu Təlimat kitabında MAX chat botunun necə qurulacağından danışacağam (öz adım !!!)

Bəzi tətbiqlərlə bu chatbot səsini idarə edə bilərsiniz və ya müxtəlif proqramlardan istifadə edərək səs köməkçisi edə bilərsiniz. Burada bu barədə danışmaq fikrində deyiləm, çünki hər kəs bu tətbiqetməni həqiqətən asanlıqla edə bilər.

Odur ki, hamı mənə dəstək olsun ….

İlk təlimatım !!!!!!!

Nə olacağını əsəbiləşdirmək …………….

Addım 1: Müsabiqə haqqında məlumat

Müsabiqə haqqında məlumat
Müsabiqə haqqında məlumat
Müsabiqə haqqında məlumat
Müsabiqə haqqında məlumat

Salam Mühəndislər və Dizaynerlər ….

Mən özüm bir Kompüter Elmləri tələbəsi oyun oynamağı sevirəm və həmişə kompüterdən ilham alıram. Qısaca danışmaqla bütün bu işlərin necə işlədiyini bilmək çox xoşuma gəlir. Buna görə də baxmağa davam etdim, googling (əvvəllər də Yahoo istifadə edirdim !!! !!!) şeyləri axtarmaq və öyrənmək üçün.

Beləliklə, bir gün Instructables ekranına gəldim. Müxtəlif mövzularda müxtəlif fikirlərlə müxtəlif layihələr vasitəsilə məni həqiqətən əyləndirdi. O gündən etibarən bu yola davam edirəm. Müsabiqə səhifəsi həm mükafatlarla, həm də ətrafımdakı insanların təqdim etdiyi layihələrlə maraqlandı. dünya

VOICE ACTIVATED CHALLENGE, Təlimat yazmaqla bağlı ilk platformamdır.

Mükafatlar məni çox əyləndirdi (Bəli !!! Çox Çox ……..).

Həm də kompüter sahəsindəki biliklərimi və fərqli şeylərin əslində necə işlədiyini başqaları ilə bölüşmək istəyirəm.

Bu Təlimat kitabında öz səs aktivləşdirilmiş köməkçinizi necə quracağınızı sizə göstərəcəyəm.

İlk təlimatım olduğundan çox səhvlər ola bilər (bunların hamısının düzəldildiyini düşünsəm də), buna görə bağışlayın.

BELƏ Kİ…

Səyahətə başlayaq ………………

Addım 2: Əşyalar haqqında haradan bildim?

Əşyalar haqqında haradan bildim?
Əşyalar haqqında haradan bildim?
Əşyalar haqqında haradan bildim?
Əşyalar haqqında haradan bildim?
Əşyalar haqqında haradan bildim?
Əşyalar haqqında haradan bildim?

Bu böyük bir sual olacaq, zənnimcə, əksəriyyətinizin ağlından keçə bilər …….

Məktəbdə oxuduğum müddətdə Süni Zəka [AI] mövzusunda çox ehtirasım var, buna görə də təkbaşına model öyrənmək və inkişaf etdirmək üçün resurslar axtarıb çox axtardım.

Başlanğıcda çox çətin (əsl şərt) idi, başa düşdüyüm kimi, idarə etmək heç də asan olmayan çox geniş bir mövzu idi.

Baxılan kitablara daxildir:

  1. Süni Zəka Müasir Bir yanaşma
  2. 21 -ci əsrdə 2. Süni Zəka
  3. Dərin öyrənmə

Bunlar çox yaxşı kitablardır (bəli, şübhəsiz ki), amma yazılanları başa düşmək heç də asan deyil, sonra bir tərəfdə saxladım və nə haqqında qısa bir fikir verən mənbələri axtarmağa davam etdim. həqiqətən təmsil edir və buna keçməyin yolları.

Məktəbdə təhsilimi bitirdikdən sonra tətil müddətində bu mövzunu daha dərindən öyrənməyə başladım.

O vaxt mən də çox maraqlı olan müxtəlif proqramlaşdırma dillərini (C ++, C, Python, Java ….) öyrəndim.

Mövzu ilə əlaqədar daha çox oxuduqda bir vacib şeyi başa düşdüm ………………..

Proqramlaşdırma dilləri hər bir maşın öyrənmə prosesi üçün əsasdır

Maşın Öyrənmə, AI -nin tətbiqi prosesidir

Proqramlaşdırma dilləri və proqramçı tərəfindən edilə biləcək müxtəlif şeylər haqqında böyük bir anlayışla bir kompüteri bizim üçün bir şey edə bilər.

Buna görə də kitabda qeyd etdiyim anlayışları başa düşməyimi təmin edən dillər üzərində yaxşı bir baza yaratmağa qərar verdim

Siz də bunu edə bilərsiniz ……

Proqramlaşdırma dillərini sərbəst şəkildə öyrətmək üçün İnternetdə çox sayda veb sayt var

İstəyirsinizsə, bu barədə daha çox məlumat əldə etmək üçün internetdə gəzə bilərsiniz ……

Addım 3: Başlayaq

Təlimat yazmağa başlamazdan əvvəl başa düşülən bir şey yazmağı düşündüm:

  1. Kodlaşdırma təcrübəsi olan insanlar
  2. Heç bir kodlaşdırma məlumatı olmayan insanlar

Buna görə də heç bir səhv etmədən etdiyimi düşünürəm (inşallah).

İstifadəçi ilə danışa bilən və söhbətimizə uyğun olaraq cavab verə biləcək bir söhbət botu qurmağa qərar verdim.

Proqram (təlimat dəsti) təkbaşına düşünə bilməz. İstifadəçi ilə əlaqəli mümkün olan ən yaxşı cavabı vermək üçün söhbət zamanı axtarılan faktlar və qaydalar haqqında məlumat bazasına (məlumatların saxlandığı yer) malikdir.

Daxil edilən şeylərdən asılı olaraq uyğunlaşdırma prosesi ilə işləyir, yalnız nadir hallarda bütün bir cümlə tamamlanmış bir cümləyə uyğunlaşdırılır.

Addım 4: Əslində necə işləyir?

Addım 1:

MAX istifadəçinin hər hansı bir sıfır girişi verdiyini öyrənir. İstifadəçi bu şəkildə bir giriş təqdim edərkən, cavab vermək üçün statik verilənlər bazasından fakt alır.

Oh üzr istəyirik …

Deməyi unutmuşam,

Statik Veritabanı: Daxili cavabların saxlandığı yer. Bənzər cavablar:

1. MAX istifadəçinin nədən danışdığını başa düşmədikdə.

2. İstifadəçi özünü təkrarlayanda.

3. Salamlama ifadələri üçün.

4. İstifadəçi heç nə yazmadıqda və Enter düyməsini basmağa davam edərkən.

Açar söz: xüsusi məna kəsb edən sözlər.

Addım 2:

MAX -ın asanlıqla və asanlıqla tanıya biləcəyi bəzi cavablar var. İstifadəçilərin girişini təyin etdikdən sonra belə bir cümlənin varlığını tapır və əlaqəli açar sözü xatırlayır.

Addım 3:

Verilmiş cümlənin parçalanmasından sonra da qurulmuş bir cümlə tapılmazsa, MAX konteksti müəyyən etmək üçün xüsusi açar sözü axtarır. Heç bir kontekst tapılmırsa, istifadəçini mövzu haqqında daha çox xüsusi bir şəkildə danışmağa məcbur etmək növbəti məqsəddir.

Addım 4:

Artıq danışdığımız Statik Verilənlər Bazasından istifadəçinin nə danışdığına bağlı olan cavabı alacaq.

Addım 5:

Özü edəcək sözlərin dəyişdirilməsinə ehtiyacım var (MY -nin SİZƏ çevrilməsi və s. Kimi).

Addım 5: Bizə Kod Verin …………

Turbo C IDE 3.0 istifadə edirəm, çünki bu IDE [İnteqrasiya edilmiş İnkişaf Mühiti]

Kodlaşdırmadan əvvəl, nümunə bir Məlumat Faylının quruluşunu görək.

MAX müəyyən açar sözləri tanıyır.

Bu açar sözlər istifadəçinin təqdim etdiyi girişdə tapılarsa, məlumat faylından müvafiq cavab seçilir və ekranda göstərilir.

Məlumat faylında @ KWD @ token ilə verilən cavablardan bir açar söz ayrılır.

Token, hər bir proqramlaşdırma aspektinin ən kiçik hissəsidir.

Bu mö'cüzə növbəti sətrin cavab deyil, bir açar söz olduğunu bildirir.

@ KWD@ SALAM

SALAM, NECƏSƏN

SALAM ƏZİZİM !

MƏN YAXŞIYAM

İŞİNİZ NƏDİR?

NEÇƏ YAŞIN VAR?

OLACAM

SİZ BELƏ ETƏCƏKSİNİZ. BUNA ÇOX İNANIRAM …

SİZ bunu edə biləcəksinizmi?

Mənə güvənəcəksən?

Bəli

SƏN ƏMİNSƏN ?

NECƏ Əmin ola bilərsən?

YOX

ÇOX PESSİMİSTDİRSİNİZ.

ASLA YOX demə …

HEÇ VAXT HEÇ VAXT DEMƏ

Heç vaxt kobud olmayın

ASLA TƏCRÜBƏSİZ OLMAYIN !!!!

BUNU ƏLAQƏ EDƏ bilməyəcəyimi heç vaxt demə

ASLA OPTİMist olmayın

KOMPYUTER

KOMPYUTERDƏ NECƏ İŞLƏYƏCƏYİMİ BİLİRəm.

HALA KOMPYUTERDƏN İSTİFADƏ EDİRSİNİZ. HAQQI?

Məsələn, 'Salam', yuxarıdakı lüğətdən MAX aşağıdakı cavablardan birini verəcək:

SALAM NECƏSİN ƏZİZLƏRİM!

MƏN YAXŞIYAM

İŞİNİZ NƏDİR?

NEÇƏ YAŞIN VAR?

Addım 6: Dərslər

Bu şey aydın olduqdan sonra, indi istifadə edəcəyimiz Məlumat Strukturlarını təyin edək.

İki sinif yaradırıq:

progstr - Bu istifadəçinin girişi ilə bağlı məlumatları saxlamaq üçün istifadə olunur.

resp - Bu, müxtəlif cavablar haqqında məlumatları saxlamaq üçün istifadə olunur

sinif proqramı {

ictimai:

sim istifadəçi kodu [MAX_USER_INPUT];

char açar sözü [30];

int açar;

int açarı;

int nullip;

// konstruktor

progstr () {keyno = -1; nullip = 0; açar = 0;

}

} ip;

sinif məsuliyyəti

{

int tot_resp;

int last_resp;

char cavabları [MAX_RESP_NO] [MAX_RESP_LEN];

char sözü [MAX_KWD_LEN];

ictimai:

// konstruktor

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

qayıt last_resp;

}

boş sözlər (char str [MAX_KWD_LEN])

{

strcpy (söz, str);

}

char * getword ()

{

qaytarma sözü;

}

void addresp (char str [MAX_RESP_LEN])

{

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

}

// daha sonra təyin olunur

void display_resp (int num);

etibarsız quit_display_resp (int num);

};

Birinci sinifə baxanda, İstifadəçi simvolu istifadəçi tərəfindən verilən cümləni saxlamaq üçün istifadə olunur.

Başqa bir sıra açar söz, əgər varsa, həmin girişdə olan açar sözü saxlamaq üçün istifadə olunur. Bir açar söz tapılarsa, 1 -ə int açar veririk, O, Konstruktorda 0 olaraq başladığı üçün 0 olaraq qalır.

keyno müvafiq açar sözün müvafiq düyməsini saxlayır.

nullip, istifadəçinin hər hansı bir Null girişi verib -vermədiyini göstərir, yəni başqa bir şey etmədən enter düyməsini basır.

İndi gəlin ikinci sinfə gələk.

İlk məlumat üzvü, tot_resp, müəyyən bir açar söz üçün ümumi cavab sayını göstərir.

Cavablar əslində [MAX_RESP_NO] [MAX_RESP_LEN] cavablarında saxlanılır və müvafiq açar söz sözdə saxlanılır.

Konstruktor: Bu, 0 -a verilən cavabların ümumi sayını başlatmaq üçün istifadə olunur. Add_resp funksiyasına baxanda last_respublikanın niyə -1 -ə başladığı aydın olacaq.

int getcount ():

Bu funksiya, müəyyən bir açar söz üçün neçə cavabın olduğunu hesablamaq üçün istifadə olunur.

boş sözlər (char str [MAX_KWD_LEN]):

Bu söz əlavə etmək üçün istifadə olunur.

char * getword ():

Müəyyən bir sinif məsuliyyət obyektinin açar sözünü qaytarmaq üçün istifadə olunur.

void addresp (…):

Bu, müəyyən bir açar sözə uyğun bir cavab əlavə etmək üçün istifadə olunur.

Void display_resp (int):

Bu cavablar üçün verilən indeks nömrəsinə uyğun gələn istifadəçiyə cavabı göstərmək üçün istifadə olunur. (əslində bundan daha çoxunu edir!).

etibarsız quit_display_resp (int):

Bu funksiya ilə yuxarıdakı funksiya arasındakı fərq, istifadəçinin çıxdığı zaman sonda istifadə edilməsidir. Beləliklə, istəyi istifadəçiyə qaytarmır.

Addım 7: Funksiyalar

void initialize_global ()

{

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

strcpy (söz [0], "AM");

strcpy (wordin [1], "AM");

strcpy (söz [1], "ARE");

strcpy (wordin [2], "WERE");

strcpy (söz [2], "OLDU");

strcpy (wordin [3], "OLDU");

strcpy (söz [3], "VAR");

strcpy (wordin [4], "SİZ");

strcpy (söz [4], "ME");

strcpy (wordin [5], "mən");

strcpy (söz [5], "SİZ");

strcpy (wordin [6], "SİZİN");

strcpy (söz [6], "MY");

strcpy (wordin [7], "MY");

strcpy (söz [7], "SİZİN");

strcpy (wordin [8], "Mən varam");

strcpy (söz [8], "VARSIN");

strcpy (wordin [9], "Sənsən");

strcpy (söz [9], "Mən GƏLİRƏM");

strcpy (wordin [10], "Mən");

strcpy (söz [10], "SİZSİN");

strcpy (wordin [11], "SİZ");

strcpy (söz [11], "Mən");

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

strcpy (söz [12], "SİZ");

strcpy (wordin [13], "SİZ");

strcpy (söz [13], "ME");

}

İndi cavabları istifadəçiyə göstərmək üçün bir funksiya yazaq. For döngəsindəki ilk if ifadəsi;-) kimi daha insani görünməsini təmin etmək üçün qəsdən yazaraq səhv etmək üçün istifadə olunur. Səhv yazmaq üçün təsadüfi bir xarakter seçilir. New Line və Backspace kimi xüsusi hallar ayrıca nəzərdən keçirilir. (Düşünün niyə?). İndi yeni bir şey təqdim edirəm. Xüsusi bir xarakter - *. Char *, müəyyən edilmiş açar sözdən SONRA və aşağıdakı durğu işarələrindən birindən əvvəl tapılan bütün mətni təmsil edir.

Məsələn, istifadəçi girişini nəzərə alın

AMIT> SABAH İNDORE EDƏ BİLƏRMİ?

MAX> SABAH İNDORE EDMƏSƏN NƏDİR?

Vurğulanan hissə lüğətdə saxlanılmır, əksinə istifadəçi girişindən götürülür. MAX. Dat faylında bu məlumatları belə saxlayırıq

CAN EDİRƏM

YOXDURSAN NƏ *

Star (*), proqramdan istifadəçi girişindəki açar sözdən sonra (burada CAN I) sonra yazılan hər şeyi olduğu kimi kopyalamağı xahiş edir. Ümid edirəm ki, indi * xüsusi bir açar söz kimi funksiyası aydındır. Beləliklə, daha mürəkkəb bir işi nəzərdən keçirək.

AMIT> ALIŞVERİŞƏ GİRƏ BİLƏRMİ?

MAX> ALIŞVERİŞƏ GİRMƏSƏN NƏDİR?

Bir az da transformasiya etməliyik. Çevrilmə dedikdə, cümlə aşağıdakı 3 hissəyə bölünür:

  • Word köçürmədən əvvəl mətn. (burada ALIŞVERİŞƏ GİT)
  • Transposed açar söz. (burada, SİZİN, mənim yerimdə)
  • Açar sözdən sonra mətn. (burada, mən?)

Addım 8: Davalar həll edilə bilər ………

Addım 9: İstifadəçi Girişində Açar söz axtarın

MAX_KEY, DAT faylındakı açar sözlərin sayını göstərir.

Burada sadəcə açar sözün İstifadəçi Girişində olub -olmadığını araşdırırıq.

Addım 10: Nəticə

Hamısı budur ………

Sən etdin !!!!!!!

Düşünürəm ki, hər kəs hər şeyi aydın başa düşdü ……

Tövsiyə: