Përmbajtje:

Asistenti i aktivizuar me zë - MAX: 10 hapa
Asistenti i aktivizuar me zë - MAX: 10 hapa

Video: Asistenti i aktivizuar me zë - MAX: 10 hapa

Video: Asistenti i aktivizuar me zë - MAX: 10 hapa
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Korrik
Anonim
Asistenti i aktivizuar me zë - MAX
Asistenti i aktivizuar me zë - MAX

Hej në këtë Instructable unë do të flas për mënyrën se si të krijoj një chat-bot MAX (me emrin tim !!!)

Me disa zbatime ju mund ta bëni këtë zë chatbot të kontrolluar ose me përdorimin e programeve të ndryshme mund ta bëni atë si një asistent zanor. Unë këtu nuk do të flas për këtë pasi secili mund ta bëjë vërtet këtë zbatim me lehtësi.

Kështu që të gjithë ju lutem më mbështesni ……

Udhëzuesi im i parë !!!!!!!

Ndjenja nervoze për atë që do të ndodhë …………….

Hapi 1: Njohja rreth Konkursit

Njohja për Konkursin
Njohja për Konkursin
Njohja për Konkursin
Njohja për Konkursin

Përshëndetje Inxhinierë dhe Projektues ……..

Unë vetë një student i Shkencave Kompjuterike pëlqen të luajë lojëra dhe gjithmonë frymëzohet në kompjuterë. Duke folur shkurtimisht më pëlqen të di se si funksionojnë të gjitha këto gjëra të tanishme. Kështu që si arsye vazhdova të kërkoj, duke kërkuar në googling (më parë kam përdorur edhe Yahoo !!! !!!) për kërkimin dhe mësimin e gjërave.

Kështu që një ditë erdha para ekranit të Instructables. Me të vërtetë më argëtoi përmes projekteve të ndryshme me një larmi idesh në aspekte të ndryshme. Pastaj që nga ajo ditë unë vazhdoj me të. Faqja e konkursit me të vërtetë më argëtoi si për çmimet ashtu edhe për projektet që janë paraqitur nga njerëz të ndryshëm përreth botë.

SFIDA E VEPRUAR E VOICE është platforma ime e parë në lidhje me shkrimin e një Udhëzuesi.

Çmimet më argëtuan shumë (Po !!! Shumë ……..).

Gjithashtu dëshiroj të ndaj njohuritë e mia në fushën e Kompjuterëve dhe teknologjisë së saj me të tjerët rreth asaj se si funksionojnë gjëra të ndryshme.

Në këtë Instructable unë ju tregoj se si të krijoni ndihmësin tuaj të aktivizuar me zë.

Meqenëse është Udhëzuesi im i parë mund të ketë kaq shumë gabime (edhe pse mendoj se të gjitha këto janë rregulluar), prandaj falni për këtë.

KËSHTU QË….

Le të fillojmë udhëtimin ………………

Hapi 2: Ku e dija për gjërat?

Ku Dija Për Gjërat?
Ku Dija Për Gjërat?
Ku Dija Për Gjërat?
Ku Dija Për Gjërat?
Ku Dija Për Gjërat?
Ku Dija Për Gjërat?

Kjo do të jetë një pyetje kryesore, mendoj se shumica e mendjeve tuaja mund të kenë kaluar ………

Unë kam shumë pasion për Inteligjencën Artificiale [AI] që nga shkollimi im, nga ajo kam kërkuar shumë duke kërkuar burime për të studiuar dhe për të zhvilluar një model më vete.

Fillimisht ishte shumë e vështirë (gjendja e vërtetë) pasi e kuptova se ishte një temë shumë e gjerë që nuk është aspak e lehtë për tu trajtuar.

Librat që u shikuan përfshijnë:

  1. Inteligjenca Artificiale Një Qasje Moderne
  2. Artificial. Inteligjenca. Në. 21st. Shekulli. 2. Edicion
  3. Mësim i thellë

Këta janë libra shumë të mirë (po me siguri), por nuk është aspak e lehtë të kuptosh gjërat që janë shkruar në të. Pastaj e mbaja në krah dhe vazhdoja të kërkoja burimet që heqin një ide të shkurtër rreth asaj ajo me të vërtetë përfaqëson dhe mënyrat për të arritur tek ajo.

Pastaj gjeta një interes për këtë. Gjatë pushimeve pas shkollimit fillova të mësoj për të më thellë.

Në atë kohë mësova edhe gjuhë të ndryshme programimi (C ++, C, Python, Java….), Të cilat ishin shumë interesante.

Duke lexuar më shumë mbi temën kuptova një gjë të rëndësishme ………………..

Gjuhët e programimit ISSHT BAZA P EVR ÇDO PROCES MESIMOR T MAKINAVE

Mësimi i Makinerisë është procesi i aplikimit të AI

Me një kuptim të madh në gjuhët e programimit dhe gjëra të ndryshme që mund të bëhen në varësi të programuesit për të bërë një kompjuter për të bërë gjithçka për ne.

Kështu që vendosa të krijoj një bazë të mirë në gjuhët që më bënë të kuptoj konceptet e dhëna në librin që kam përmendur tashmë

Edhe ti mund ta bësh atë …….

Ka kaq shumë faqe në internet të pranishme në internet për të mësuar gjuhët e programimit lirshëm

Kështu që ju mund të lundroni në internet për të kuptuar më shumë rreth tij nëse dëshironi ………

Hapi 3: Le të Fillojmë

Unë para se të filloja të shkruaja Instructable, mendova të shkruaja diçka që të kuptohej nga:

  1. Njerëzit që kanë një përvojë me kodimin
  2. Njerëz pa asnjë sfond kodimi

Kështu që unë mendoj se e kam bërë atë pa asnjë gabim (me shpresë).

Kështu që unë kam vendosur të ndërtoj një bot chat që mund të flasë me përdoruesin dhe që mund të përgjigjet sipas bisedës sonë.

Programi (grupi i udhëzimeve) nuk mund të mendojë më vete. Ajo ka një bazë të dhënash (një vend ku janë ruajtur të dhënat) të fakteve dhe rregullave, të cilat kërkohen në kohën e bisedës për të dhënë përgjigjen më të mirë të mundshme që bën në lidhje me përdoruesin.

Punon duke përputhur procesin në varësi të gjërave të regjistruara, vetëm në raste të rralla një fjali e tërë krahasohet me një fjali të plotë.

Hapi 4: Si funksionon në të vërtetë?

Hapi 1:

MAX zbulon nëse përdoruesi ka dhënë ndonjë input null. Nëse përdoruesit kur i jepen të dhëna në një mënyrë të tillë, merr faktin nga baza e të dhënave statike për t'u përgjigjur.

Oh me falni …….

Kam harruar të them,

Baza e të dhënave statike: Vendi ku ruhen përgjigjet e integruara. Përgjigjet si:

1. Kur MAX nuk kupton se për çfarë po flet përdoruesi.

2. Kur përdoruesi përsërit veten.

3. Për deklarata përshëndetëse.

4. Kur përdoruesi nuk shtyp asgjë dhe vetëm vazhdon të shtypë Enter.

Fjala kyçe: fjalët që kanë kuptim të veçantë.

Hapi 2:

Ka disa përgjigje të integruara që MAX mund t'i njohë me lehtësi dhe lehtësi. Gjen praninë e çdo fjalie të tillë pasi identifikon hyrjen e përdoruesve dhe mban mend fjalën kyçe të lidhur.

Hapi 3:

Nëse asnjë fjali e integruar nuk gjendet edhe pas fragmentimit të fjalisë së dhënë, atëherë MAX kërkon fjalën kyçe specifike për të përcaktuar kontekstin. Nëse nuk gjendet kontekst, atëherë qëllimi tjetër është ta bëni përdoruesin të flasë për temën në mënyrë më të qëllimshme në një mënyrë specifike.

Hapi 4:

Nga Baza e të dhënave Statike për të cilën kemi folur tashmë, do të marrë përgjigjen që varet nga ajo për të cilën përdoruesi ka folur.

Hapi 5:

Unë kam ndonjë nevojë për të ndryshuar fjalët që do ta bëjë vetë (të tilla si Konvertimi I TY në TUAJ, etj…).

Hapi 5: Na Le të Kodojmë …………

Unë jam duke përdorur Turbo C IDE 3.0 pasi ky është IDE [Mjedisi Zhvillimor i Integruar]

Para kodimit, le të shohim strukturën e një skedari të të dhënave mostër.

MAX njeh fjalë kyçe të caktuara.

Nëse këto fjalë kyçe gjenden në hyrjen e dhënë nga përdoruesi, atëherë një përgjigje përkatëse zgjidhet nga skedari i të dhënave dhe zgjidhet dhe shfaqet në ekran.

Një fjalë kyçe ndahet në skedarin e të dhënave nga përgjigjet me shenjën @ KWD @.

Token është pjesa më e vogël e çdo aspekti programimi.

Ky shenjë tregon se rreshti tjetër është një fjalë kyçe dhe jo një përgjigje.

@ KWD@ HELLO

HI, SI JENI

PERSHENDETJE E DASHUR !

JAM MIRË

SI KA PUNO TUAJ?

SA I MOSHUR JE?

UNE DO TË

DO TA B DJ ashtu. E BESOJ TASH…

A do të jeni në gjendje ta bëni këtë?

A do të më besosh?

PO

A JE I SIGURT ?

SI MUND T BE JET SO I SIGURT?

JO

DUHET T BE JENI SHUM PESIMISTIK.

KURR mos thoni JO…

KURRE MOS THUAJ KURRE

KURR mos u tregoni të pasjellshëm

KURR mos jini arrogantë !!!!

KURR THONI S’MU MUND T D KOTOJ

KURR mos jini OPTIMISTIK

KOMPJUTERIKE

E DI SI T TO PUNOJ N ON KOMPJUTER.

JU JAN C P USRDORJA E KOMPJUTERIT TANI. E DREJTA?

Për shembull, 'Përshëndetje', nga fjalori i mësipërm, MAX do të japë një nga përgjigjet e mëposhtme:

HI, SI JOHELLO I dashur!

JAM MIRË

SI KA PUNO TUAJ?

SA I MOSHUR JE?

Hapi 6: Klasat

Pasi kjo gjë të jetë e qartë, tani le të përcaktojmë Strukturat e të Dhënave që do të përdorim.

Ne krijojmë dy klasa:

progstr - Kjo përdoret për të ruajtur informacionin e lidhur me hyrjen e përdoruesit.

resp - Kjo përdoret për të ruajtur informacionin në lidhje me përgjigjet e ndryshme

progresi i klasës {

publike:

përdoruesi i karbonit [MAX_USER_INPUT];

fjalë kyçe char [30];

int keyfound;

int keyno;

int nullip;

// konstruktor

progstr () {keyno = -1; nullip = 0; i gjetur = 0;

}

} ip;

pergjigja e klases

{

int tot_resp;

int last_resp;

përgjigjet e djegura [MAX_RESP_NO] [MAX_RESP_LEN];

fjalë e zezë [MAX_KWD_LEN];

publike:

// konstruktor

pergjigje ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

kthehu last_resp;

}

fjalëkalim i pavlefshëm (rruga e zezë [MAX_KWD_LEN])

{

strcpy (fjalë, str);

}

char * getword ()

{

fjala e kthimit;

}

pavlefshme shtojca (rruga e shenjave [MAX_RESP_LEN])

{

strcpy (përgjigjet [++ last_resp], str);

}

// e përcaktuar më vonë

void display_resp (int num);

pavlefshme quit_display_resp (int num);

};

Duke parë klasën e parë, Përdoruesi i grupit të karaktereve përdoret për të ruajtur fjalinë e dhënë nga përdoruesi.

Një fjalë kyçe tjetër e grupit përdoret për të ruajtur fjalën kyçe, nëse ka, të gjetur në atë hyrje. Nëse gjendet një fjalë kyçe, ne e bëjmë int keyfound në 1 tjetër, ajo mbetet 0, pasi është inicializuar në 0 në Konstruktor.

keyno ruan numrin e tastit përkatës të fjalës kyçe përkatëse.

nullip tregon nëse përdoruesi ka dhënë ndonjë input Null dmth, ai është vetëm duke shtypur enter pa bërë asgjë tjetër.

Tani le të vijmë në klasën e dytë, respektivisht.

Anëtari i parë i të dhënave, tot_resp tregon numrin e përgjigjeve totale për një fjalë kyçe të caktuar.

Përgjigjet në fakt ruhen në përgjigjet [MAX_RESP_NO] [MAX_RESP_LEN] dhe fjala kyçe përkatëse ruhet në fjalën e grupit.

Ndërtuesi: Kjo përdoret për të inicializuar numrin e përgjithshëm të përgjigjeve në 0. Pse last_resp është inicializuar në -1 do të jetë e qartë kur shikoni funksionin add_resp.

int getcount ():

Ky funksion përdoret për të llogaritur sa përgjigje ka për një fjalë kyçe të caktuar.

fjalëkalim i pavlefshëm (rruga char [MAX_KWD_LEN]):

Kjo përdoret për të shtuar një fjalë kyçe.

char * getword ():

Përdoret për të kthyer fjalën kyçe për një objekt të veçantë të klasës resp.

shtojcë e pavlefshme (…):

Kjo përdoret për të shtuar një përgjigje që korrespondon me një fjalë kyçe të caktuar.

void display_resp (int):

Kjo përdoret për të shfaqur përgjigjen tek përdoruesi që korrespondon me një numër indeksi të caktuar për përgjigjet. (në fakt bën më shumë se kaq!).

pavlefshme quit_display_resp (int):

Dallimi midis këtij funksioni dhe funksionit të mësipërm është se ai përdoret në fund kur përdoruesi po heq dorë. Pra, nuk i kthen kërkesën përdoruesit.

Hapi 7: Funksionet

void initialize_global ()

{

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

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

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

strcpy (wordout [1], "ARE");

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

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

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

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

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

strcpy (wordout [4], "ME");

strcpy (wordin [5], "Unë");

strcpy (wordout [5], "YOU");

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

strcpy (wordout [6], "MY");

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

strcpy (wordout [7], "YOUR");

strcpy (wordin [8], "IVE");

strcpy (wordout [8], "YOU'VE");

strcpy (wordin [9], "YOU'VE");

strcpy (wordout [9], "IVE");

strcpy (wordin [10], "Unë jam");

strcpy (wordout [10], "YOU'RE");

strcpy (wordin [11], "YOU'RE");

strcpy (wordout [11], "Unë jam");

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

strcpy (wordout [12], "YOU");

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

strcpy (wordout [13], "ME");

}

Le të shkruajmë tani një funksion për shfaqjen e përgjigjeve tek përdoruesi. Deklarata e parë nëse në lakun for përdoret për të bërë një gabim të qëllimshëm të shtypjes për ta bërë atë të duket më njerëzor;-). Një karakter zgjidhet rastësisht për gabimin e shtypjes. Rastet speciale si New Line dhe Backspace konsiderohen veçmas. (Mendoni pse?). Tani prezantoj diçka të re. Një karakter i veçantë - *. Char * përfaqëson të gjithë tekstin e gjetur PAS fjalës kyçe të identifikuar, dhe para njërës prej shenjave të pikësimit në vijim.

Për shembull, merrni parasysh hyrjen e përdoruesit

AMIT> A MUND T G SHKOJ N TO NESOMR?

MAX> ÇFAR NFSE NUK NDONI T T NDIHM NESOMR?

Pjesa e nënvizuar nuk ruhet në fjalor, por është marrë nga hyrja e përdoruesit. Në skedarin MAX. Dat, ne i ruajmë këto informacione si

A MUNDEM

ÇFAR I NFSE NUK KENI *

Star (*) i kërkon programit që thjesht të kopjojë çdo gjë që është shtypur pas fjalës kyçe (këtu CAN I) në hyrjen e përdoruesit, ashtu siç është. Shpresoj që tani funksioni i * si një fjalë kyçe speciale është i qartë. Pra, le të shqyrtojmë një rast më të komplikuar.

AMIT> A MUND T G SHKOJ N SH Blerje?

MAX> ÇFAR NFSE NUK KA SHKUAR N TREGIM?

Ne gjithashtu duhet të bëjmë një transformim. Kur mendojmë për transformimin, fjalia ndahet në 3 pjesët e mëposhtme:

  • Teksti Para Transpozimit të Fjalës. (këtu, SHKO PARAQITJE ME)
  • Fjala kyçe e Transpozuar. (këtu, JUAJ, në vend të TIM)
  • Teksti Pas Transpozicionit Fjala kyçe. (Ketu une ?)

Hapi 8: Rastet mund të trajtohen me ………

Hapi 9: Kërkimi i një fjale kyçe në hyrjen e përdoruesit

MAX_KEY tregon numrin e fjalëve kyçe në skedarin DAT.

Ne këtu thjesht kërkojmë nëse fjala kyçe është e pranishme në Hyrjen e Përdoruesit.

Hapi 10: Përfundimi

Kjo eshte e gjitha ………

E ke bere !!!!!!!!

Unë mendoj se të gjithë i kuptuan gjërat qartë ……

Nëse dikush ka dyshime për ndonjë gjë, mund të jeni të lirë të pyesni

Recommended: