Orodha ya maudhui:

Msaidizi aliyeamilishwa na Sauti - MAX: Hatua 10
Msaidizi aliyeamilishwa na Sauti - MAX: Hatua 10

Video: Msaidizi aliyeamilishwa na Sauti - MAX: Hatua 10

Video: Msaidizi aliyeamilishwa na Sauti - MAX: Hatua 10
Video: ОЖИДАНИЕ или РЕАЛЬНОСТЬ! ИГРЫ в РЕАЛЬНОЙ ЖИЗНИ! Маленькие кошмары 2 в реальной жизни! 2024, Julai
Anonim
Msaidizi wa Kuamilishwa kwa Sauti - MAX
Msaidizi wa Kuamilishwa kwa Sauti - MAX

Hei katika hii inayoweza kufundishwa nitazungumza juu ya jinsi ya kutengeneza chat-bot MAX (iitwaye mwenyewe !!!)

Ukiwa na utekelezaji kadhaa unaweza kufanya sauti hii ya gumzo kudhibitiwa au kwa matumizi ya programu anuwai unaweza kuifanya kama msaidizi wa sauti. Mimi hapa sitazungumza juu yake kwani kila mtu anaweza kufanya utekelezaji huu kwa urahisi.

Kwa hivyo kila mtu tafadhali nisaidie …….

Agizo langu la kwanza !!!!!!!

Kuhisi Hofu juu ya kile kitakachotokea …………….

Hatua ya 1: Kujua Kuhusu Shindano

Kujua Kuhusu Shindano
Kujua Kuhusu Shindano
Kujua Kuhusu Shindano
Kujua Kuhusu Shindano

Wahandisi na Wahandisi ……..

Mimi mwenyewe mwanafunzi wa Sayansi ya Kompyuta napenda kucheza mchezo na kila wakati nimehamasishwa kwenye kompyuta. Kuzungumza kwa kifupi nipenda kujua jinsi vitu hivi vyote vinavyofanya kazi sasa. Kwa hivyo kama sababu niliendelea kutafuta, kupiga simu (infact nilikuwa nikitumia Yahoo pia !!! !!!) kwa kutafuta na kujifunza vitu.

Kwa hivyo siku moja nilikuja mbele ya skrini ya Maagizo. Ilinifurahisha sana kupitia miradi anuwai na maoni anuwai juu ya mambo anuwai. Halafu kutoka siku hiyo naendelea kufuatilia. Ukurasa wa shindano ulinichekesha mimi na wasiwasi na tuzo na miradi ambayo imewasilishwa na watu anuwai ulimwengu.

CHANGAMOTO ILIYOAMATISHWA NA SAUTI ni jukwaa langu la kwanza kwa habari ya kuandika inayoweza kufundishwa.

Zawadi zilinichekesha sana (Ndio !!! Mengi sana ……..).

Pia nataka kushiriki maarifa yangu katika uwanja wa Kompyuta na ni teknolojia kwa wengine juu ya jinsi vitu anuwai hufanya kazi.

Katika Agizo hili ninaonyesha jinsi ya Kuunda msaidizi wako wa sauti aliyeamilishwa.

Kwa kuwa ni Agizo langu la kwanza kunaweza kuwa na makosa mengi (hata ingawa nadhani yote haya yamerekebishwa), hivyo msamehe kwa hilo.

HIVYO…

Wacha tuanze safari ………………

Hatua ya 2: Nilijua Wapi Juu ya Vitu?

Nilijua Wapi Juu ya Vitu?
Nilijua Wapi Juu ya Vitu?
Nilijua Wapi Juu ya Vitu?
Nilijua Wapi Juu ya Vitu?
Nilijua Wapi Juu ya Vitu?
Nilijua Wapi Juu ya Vitu?

Hili litakuwa swali kuu nadhani akili zako nyingi zinaweza kupitia ………

Nina shauku kubwa kwa Ujasusi wa bandia [AI] kutoka kwa masomo yangu, kwa kuwa nimetafuta sana kutafuta rasilimali ili kusoma na kukuza mtindo peke yangu.

Hapo awali ilikuwa ngumu sana (hali ya kweli) kwani nilielewa lilikuwa somo kubwa sana ambalo sio rahisi kushughulikia.

Vitabu vilivyoonekana ni pamoja na:

  1. Akili bandia Njia ya Kisasa
  2. Akili ya bandia.katika karne ya 21. Tarehe
  3. Kujifunza kwa kina

Hizi ni vitabu vizuri sana (ndio hakika) lakini sio rahisi kabisa kuelewa vitu ambavyo vimeandikwa juu ya hiyo. Kisha nikaiweka pembeni na kuendelea kutafuta rasilimali ambazo zinatoa wazo fupi juu ya nini inawakilisha kweli na njia za kuifikia.

Kisha nilipata kupendezwa nayo. Kupitia likizo baada ya masomo nilianza kujifunza juu yake kwa undani zaidi.

Wakati huo pia nilijifunza lugha anuwai za programu (C ++, C, Python, Java….), Ambazo pia zinavutia sana.

Wakati wa kusoma zaidi juu ya mada nilielewa Jambo Moja Muhimu ………………..

Lugha za programu ni MSINGI KWA KILA MCHAKATO WA KUJIFUNZA KWA MASHINE

Kujifunza kwa Mashine ni mchakato wa matumizi ya AI

Na uelewa mzuri juu ya lugha za programu na vitu anuwai ambavyo vinaweza kufanywa kutegemea na programu kutengeneza kompyuta kutufanyia chochote.

Kwa hivyo niliamua kuunda msingi mzuri juu ya lugha ambazo zilinifanya nielewe dhana zilizotolewa kwenye kitabu hicho ambacho tayari nimetaja

Wewe pia unaweza kufanya hivyo …….

Kuna tovuti nyingi sana kwenye wavuti kufundisha lugha za programu kwa uhuru

Kwa hivyo unaweza kutumia mtandao ili uelewe zaidi ikiwa ungependa ………

Hatua ya 3: Wacha Tuanze

Mimi kabla ya kuanza kuhusu kuandika Inayoweza kufundishwa nilifikiria kuandika kitu cha aina hiyo kueleweka na:

  1. Watu ambao wana uzoefu wa kuweka alama
  2. Watu bila msingi wowote wa usimbuaji

Kwa hivyo nadhani nimefanya jambo hilo bila makosa yoyote (kwa matumaini).

Kwa hivyo nimeamua kujenga bot ya mazungumzo ambayo inaweza kuzungumza na mtumiaji na inaweza kujibu kulingana na mazungumzo yetu.

Programu (seti ya maagizo) haiwezi kufikiria yenyewe. Inayo hifadhidata (mahali ambapo data imehifadhiwa) ya ukweli na sheria, ambazo hutafutwa wakati wa kuongea ili kutoa jibu bora kabisa ambalo linahusiana na mtumiaji.

Inafanya kazi kwa kulinganisha mchakato kulingana na vitu vilivyoingizwa, tu katika hali nadra sentensi nzima inalinganishwa na sentensi kamili.

Hatua ya 4: Je! Kwa kweli Inafanya Kazi?

Hatua ya 1:

MAX hugundua ikiwa mtumiaji ametoa mchango wowote batili. Ikiwa mtumiaji anapopewa pembejeo kwa njia hiyo, inachukua ukweli kutoka kwa hifadhidata ya tuli kujibu.

Oh samahani …….

Nimesahau kusema,

Hifadhidata Tuli: Mahali ambapo majibu yaliyojengwa huhifadhiwa. Majibu kama:

1. Wakati MAX haelewi juu ya kile mtumiaji anazungumzia.

2. Mtumiaji anapojirudia.

3. Kwa taarifa za salamu.

4. Wakati mtumiaji haandiki chochote na anaendelea kubonyeza Ingiza.

Neno kuu: maneno yenye maana maalum.

Hatua ya 2:

Kuna baadhi ya majibu yaliyojengwa ambayo MAX inaweza kutambua kwa urahisi na kwa urahisi. Inapata uwepo wa sentensi yoyote kama hii baada ya kutambua uingizaji wa watumiaji na inakumbuka neno kuu linalohusiana.

Hatua ya 3:

Ikiwa hakuna sentensi iliyojengwa inapatikana hata baada ya kugawanyika kwa sentensi iliyopewa, basi MAX hutafuta neno kuu kuelezea muktadha. Ikiwa hakuna muktadha unapatikana basi ni lengo lingine kumfanya mtumiaji azungumze juu ya mada hiyo kwa makusudi zaidi kwa njia maalum.

Hatua ya 4:

Kutoka kwa Hifadhidata ya tuli ambayo tumezungumza tayari, itachukua majibu ambayo inategemea kile mtumiaji amezungumza.

Hatua ya 5:

Mimi kuna haja yoyote ya kubadilisha maneno itaifanya yenyewe (kama vile Uongofu wa YANGU kuwa YAKO nk..)

Hatua ya 5: Wacha tuwe na Msimbo …………

Ninatumia Turbo C IDE 3.0 kwani hii ndio IDE [Mazingira Jumuishi ya Maendeleo]

Kabla ya kuweka alama, wacha tuone muundo wa Sampuli ya Faili ya Takwimu.

MAX inatambua maneno kadhaa.

Ikiwa maneno haya yanapatikana kwenye pembejeo inayotolewa na mtumiaji, basi majibu yanayofanana huchaguliwa kutoka kwa faili ya data na huchaguliwa na kuonyeshwa kwenye skrini.

Neno kuu limetengwa katika faili ya data kutoka kwa majibu na ishara ya @ KWD @.

Ishara ni sehemu ndogo zaidi ya kila nyanja za programu.

Ishara hii inaashiria mstari unaofuata ni neno kuu na sio jibu.

@ KWD @ HELLO

HABARI YAKO, UNAENDELEAJE

HABARI MPENZI !

SIJAMBO

KAZI YAKO ILIKUWAJE?

UNA MIAKA MINGAPI?

@ KWD @

NITAKUWA

UTAFANYA HIVYO. NAAMINI PIA…

JE, UTAWEZA KUFANYA HIVYO?

UTANIAMINI?

@ KWD @

NDIYO

UNA UHAKIKA ?

UNAWEZAJE KUWA NA UHAKIKA SANA?

@ KWD @

HAPANA

UNAONEKANA KUWA NA TAMAA SANA.

KAMWE KUSEMA HAPANA…

KAMWE USISEME KAMWE

KAMWE KUKABIDHIWA

KAMWE USIWE NA UJASILI !!!!

KAMWE KUSEMA SIWEZI KUFANYA HIVI

KAMWE USIWE NA MATUMAINI

@ KWD @

Kompyuta

NAJUA KUFANYA KAZI KWA KOMPYUTA.

KWA SASA UNATUMIA KOMPYUTA. HAKI ?

Kwa mfano, 'Hello', kutoka kwa kamusi iliyo hapo juu, MAX itatoa moja wapo ya majibu yafuatayo:

HI, JAMANI UNAPENDWA!

SIJAMBO

KAZI YAKO ILIKUWAJE?

UNA MIAKA MINGAPI?

Hatua ya 6: Madarasa

Mara jambo hili likiwa wazi, wacha sasa tufafanue Miundo ya Takwimu ambayo tutatumia.

Tunaunda darasa mbili:

progstr - Hii hutumiwa kuhifadhi habari inayohusiana na pembejeo ya mtumiaji.

resp - Hii hutumiwa kuhifadhi habari kuhusu majibu anuwai

maendeleo ya darasa {

umma:

char userip [MAX_USER_INPUT];

neno kuu la char [30];

int keyfound;

int keyno;

nullip;

// mjenzi

maendeleo () {keyno = -1; nullip = 0; kupatikana kwa ufunguo = 0;

}

} ip;

darasa resp

{

int tot_resp;

int last_resp;

majibu ya char [MAX_RESP_NO] [MAX_RESP_LEN];

neno char [MAX_KWD_LEN];

umma:

// mjenzi

resp ()

{

tot_resp = 0;

mwisho_resp = -1;

}

hesabu kamili ()

{

kurudi mwisho_resp;

}

neno la ziada batili (char str [MAX_KWD_LEN])

{

strcpy (neno, str);

}

char * neno ()

{

rudisha neno;

}

nyongeza batili (char str [MAX_RESP_LEN])

{

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

}

// hufafanuliwa baadaye

batili display_resp (int num);

batili kuacha_display_resp (int num);

};

Kuangalia darasa la kwanza, Safu ya matumizi ya herufi hutumiwa kuhifadhi sentensi iliyotolewa na mtumiaji.

Nenosiri lingine la safu hutumiwa kuhifadhi neno kuu, ikiwa lipo, linapatikana kwenye ingizo hilo. Ikiwa neno kuu linapatikana, tunafanya kitufe cha int kwa 1 mwingine, kinabaki 0, kwani imeanzishwa kwa 0 katika Constructor.

keyno huhifadhi nambari inayofanana ya kitufe cha neno kuu linalolingana.

nullip inaonyesha ikiwa mtumiaji ametoa pembejeo yoyote ya Null yaani, anashinikiza tu kuingia bila kufanya kitu kingine chochote.

Sasa wacha tuje kwenye darasa la pili, resp.

Mwanachama wa kwanza wa data, tot_resp anaonyesha idadi ya majibu kamili kwa neno muhimu.

Majibu kweli yamehifadhiwa katika majibu [MAX_RESP_NO] [MAX_RESP_LEN] na neno kuu linalolingana huhifadhiwa katika neno la safu.

Muundaji: Hii inatumika kuanzisha jumla ya majibu hadi 0. Kwa nini mwisho_resp umeanzishwa hadi -1 itakuwa wazi unapoangalia kazi ya kuongeza_mp.

hesabu ():

Kazi hii hutumiwa kupata hesabu ya majibu ngapi kwa neno kuu.

neno la ziada batili (char str [MAX_KWD_LEN]):

Hii hutumiwa kuongeza neno kuu.

char * neno kuu ():

Imetumika kurudisha neno kuu kwa kitu fulani cha darasa resp.

nyongeza batili (…):

Hii hutumiwa kuongeza jibu linalolingana na neno muhimu.

batili display_resp (int):

Hii hutumiwa kuonyesha majibu kwa mtumiaji anayelingana na nambari ya faharisi iliyopewa majibu. (kwa kweli inafanya zaidi ya hapo!).

batili kuacha_kuonyesha_mp (int):

Tofauti kati ya kazi hii na kazi hapo juu ni kwamba hutumiwa mwishowe wakati mtumiaji anaacha. Kwa hivyo, hairudishi msukumo kwa mtumiaji.

Hatua ya 7: Kazi

tupu initialize_global ()

{

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

strcpy (neno [0], "AM");

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

strcpy (neno [1], "NI");

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

strcpy (neno [2], "WAS");

strcpy (neno [3], "WAS");

strcpy (neno [3], "WERE");

strcpy (neno [4], "WEWE");

strcpy (neno [4], "MIMI");

strcpy (neno [5], "mimi");

strcpy (neno [5], "WEWE");

strcpy (neno [6], "YAKO");

strcpy (neno [6], "YANGU");

strcpy (neno katika [7], "YANGU");

strcpy (neno [7], "YAKO");

strcpy (neno katika [8], "IVE");

strcpy (neno [8], "UMESHA");

strcpy (neno katika [9], "UMESHA");

strcpy (neno lenye maneno [9], "IVE");

strcpy (neno katika [10], "MIMI");

strcpy (neno [10], "UNAWEZA");

strcpy (neno katika [11], "UNAWEZA");

strcpy (neno [11], "MIMI");

strcpy (nenoin [12], "MIMI");

strcpy (neno [12], "WEWE");

strcpy (neno [13], "WEWE");

strcpy (neno [13], "MIMI");

}

Wacha tuandike kazi ya kuonyesha majibu kwa mtumiaji. Kauli ya kwanza ikiwa katika kitanzi hutumiwa kutengeneza makosa ya kuandika kwa makusudi kuifanya ionekane kama binadamu kama;-). Tabia moja imechaguliwa kwa nasibu kwa kosa la kuandika. Kesi maalum kama New Line na Backspace huzingatiwa kando. (Fikiria kwanini?). Sasa ninaanzisha kitu kipya. Tabia maalum - *. Char * inawakilisha maandishi yote yaliyopatikana BAADA ya neno kuu lililotambuliwa, na kabla ya moja ya alama zifuatazo za uakifishaji.

Kwa mfano, fikiria uingizaji wa mtumiaji

AMIT> NAWEZA KWENDA KUHUSU KESHO KESHO?

MAX> JE!

Sehemu iliyopigiwa mstari haihifadhiwa katika kamusi, badala yake inachukuliwa kutoka kwa pembejeo ya mtumiaji. Katika faili MAX. Dat, tunahifadhi habari hii kama

NAWEZA

NINI IF USIPO *

Nyota (*) inauliza programu kunakili tu chochote kilichochapishwa baada ya neno kuu (hapa NAWEZA) katika uingizaji wa mtumiaji, kama ilivyo. Natumahi kuwa sasa kazi ya * kama neno muhimu ni wazi. Kwa hivyo, wacha tuchunguze kesi ngumu zaidi.

AMIT> NAWEZA KWENDA KUNUNUA?

MAX> JE!

Lazima tufanye mabadiliko pia. Tunapofikiria mabadiliko, sentensi hiyo inagawanywa katika sehemu 3 zifuatazo:

  • Maandishi Kabla ya Neno la Uhamisho. (hapa, NENDA KWENYE UNunuzi)
  • Neno kuu lililobadilishwa. (hapa, YAKO, badala ya YANGU)
  • Nakala Baada ya neno kuu la Uhamisho. (hapa, mimi?)

Hatua ya 8: Kesi Zinaweza Kushughulikiwa Na ………

Hatua ya 9: Kutafuta neno kuu katika Ingizo la Mtumiaji

MAX_KEY inaonyesha idadi ya maneno katika faili ya DAT.

Sisi hapa hutafuta tu ikiwa neno kuu liko kwenye Ingizo la Mtumiaji.

Hatua ya 10: Hitimisho

Ni hayo tu ………

Umefanya hivyo !!!!!!!!

Nadhani kila mtu alielewa mambo waziwazi ……

Ikiwa mtu yeyote ana shaka juu ya chochote unaweza kujisikia huru kuuliza

Ilipendekeza: