Përmbajtje:

Si të bëni një A.I. Pjesa 2: 9 Hapat
Si të bëni një A.I. Pjesa 2: 9 Hapat

Video: Si të bëni një A.I. Pjesa 2: 9 Hapat

Video: Si të bëni një A.I. Pjesa 2: 9 Hapat
Video: Auto Shkolla BESI Viti Pjesa 9 2024, Nëntor
Anonim
Si të bëni një A. I. Pjesa 2
Si të bëni një A. I. Pjesa 2

Kjo është pjesa 2 në lidhje me hapat që kam ndërmarrë për të ndërtuar një AI në një kompjuter Windows, duke përdorur një bazë të dhënash falas, mjet për zhvillimin e programimit dhe motorin falas të ndërtuar në TTS që vjen me Windows.

Fjala "Windows" i përket Microsoft.

Fjala "Dragon" i përket Nuance.

Hapi 1: Si të bëni një AI Pjesa 2

Si të bëni një AI Pjesa 2
Si të bëni një AI Pjesa 2

Zgjidhni një gjuhë programimi dhe merrni disa mjete

Ka shumë gjuhë programimi. Disa janë të specializuara për A. I. E preferuara ime është Visual Basic, kështu që kjo është ajo që kam përdorur. Unë gjithashtu punoj me bazat e të dhënave të serverit SQL, kështu që e kam përdorur edhe atë.

Ju mund të shkarkoni versione falas të këtyre nga faqja e internetit e Microsoft. Thjesht kërkoni për "EXPRESS" në faqen e internetit të Microsoft. [Visual Studio Express dhe SQL server Express]

Gjuhë të tjera që mund të na dëshironi janë: Python, C#, C ++, Java, Prolog, Lisp, IPL

dhe shume te tjere. AIML është një "Gjuhë Markup" që është shumë interesante.

Doja një program më të mirë të "njohjes së të folurit" sesa ai që vjen me Windows, kështu që bleva programin DRAGON. Unë jam duke përdorur programin standard "Tekst në fjalim" që erdhi me Windows.

Hapi 2: Dizajnoni sistemin tuaj:

Dizajnoni sistemin tuaj
Dizajnoni sistemin tuaj

Ndani projektet tuaja të mëdha në një mori projektesh më të vogla. Kodin e programit e ndava në module.

E ndava kodin tim në module të ndryshme në mënyrë që një funksion i veçantë të jetë më i lehtë për tu gjetur.

Unë kam module të quajtura "Proces Input", "Process AI", "Process Output", "User Interface" dhe disa të tjera. Disa nga funksionet e mia duhet të jenë të arritshme për të gjithë modulet e tjerë të kodit, kështu që unë i vendos ato funksione në një modul "të zakonshëm" ku gjithçka ndahet

Hapi 3: Funksionet që janë ndërtuar në gjuhën e programimit:

Funksionet që janë ndërtuar në gjuhën e programimit
Funksionet që janë ndërtuar në gjuhën e programimit

Gjuhë të ndryshme mund të kenë emra të ndryshëm për këto, por të gjitha gjuhët e nivelit të lartë kanë funksione të ngjashme.

LCase ose ToLower: Konverton një varg në të gjitha shkronjat e vogla. Unë konvertoj gjithçka në shkronja të vogla para se të bëj një kërkim në bazën e të dhënave-edhe pse shumica e gjërave janë "të pandjeshme ndaj rastit"-Vetëm në rast.

Zëvendësoni: Zëvendësoni një varg brenda një vargu në një varg tjetër. Mund të zëvendësoni një varg me një varg bosh "" për ta hequr qafe atë. I heq qafe periodat, pikëpyetjet, presjet dhe shenjat e tjera të pikësimit.

Split: Ndan një varg në pjesë individuale dhe i vendos ato në një grup. Ky funksion do të ndajë një varg në çdo karakter, ose "Kufizues". Ndaj një fjali në një "karakter hapësinor" "" për të krijuar një grup fjalësh. Kjo quhet "Tokenizing" nga Gurusët e AI.

Unë përdor fjalët individuale për të ndërtuar pyetje që përdoren për të kërkuar bazën e të dhënave. (Më shumë për këtë në artikullin tim të ardhshëm)

Hapi 4: Kombinoni funksionet e integruara për të krijuar funksionet tuaja

Ky është një shembull "vizual bazë". Përdorni gjuhën tuaj të programimit për të ndërtuar diçka të tillë.

Sigurisht, do t'ju duhet të shkruani shumë kod dhe të ndërtoni shumë funksione, duke përdorur gjuhën e programimit sipas dëshirës tuaj.

Hapi 5: Çfarë bëjnë modulet? "Procesori i hyrjes"

Çfarë bëjnë modulet? "Procesori i hyrjes"
Çfarë bëjnë modulet? "Procesori i hyrjes"

Mund të ketë njëqind mënyra të ndryshme për t'i bërë AI të njëjtën pyetje. Për shembull; "Sa është ora?", "A keni kohë?" "A e dini sa është ora?", "A mund të më thoni kohën aktuale të ditës?" Meqenëse përdoruesi po kërkon vetëm kohën, unë konvertoj secilën nga këto hyrje në një dalje të vetme të quajtur "Koha e Kërkimit" duke përdorur një tabelë "shiko lart" të bazës së të dhënave.

Mund të shkruani kod për lak përmes një tabele derisa të gjejë një ndeshje, ose nëse jeni duke përdorur një bazë të dhënash SQL, mund të shkruani një pyetje SQL, si…

"Zgjidhni daljen nga TabelaName ku Input =" "çfarëdo""

… Dhe pastaj dërgoj daljen, “Koha e Kërkimit”, në modulin e kodit tjetër; "Procesi AI"

Përveç pyetjeve, ka shumë mënyra për të thënë "Përshëndetje"

Përshëndetje, Përshëndetje, çfarë po ndodh, hej, hola, si po kalon ?, përshëndetje, mirëseardhje, përshëndetje, përshëndetje….

Të gjitha këto reduktohen në "Përshëndetje"

Kur procesori i UA shikon "Përshëndetje", ai dërgon "Përshëndetje" në procesorin dalës, i cili do të zgjedhë një përshëndetje të rastësishme nga tabela e bazës së të dhënave dhe do ta thotë atë me zë të lartë.

Hapi 6: "Përpunuesi i UA"

"Përpunues AI"
"Përpunues AI"

Procesi AI është moduli më i madh i kodit. Soshtë aq e madhe sa e ndava edhe në seksione.

Hyrja kontrollohet për të parë nëse përdoruesi foli një komandë, ose bëri një pyetje. Gjithashtu, AI mund të jetë në secilën nga disa "Mënyra" që do të thotë se kodi "Procesi AI" pret që përdoruesi t'i përgjigjet një pyetjeje, në vend që të BKJ një pyetje.

Nëse përdoruesi nuk foli një komandë dhe AI nuk është në një "Mode" të veçantë, atëherë ai ndërton dhe ekzekuton një mori pyetjesh, nga kombinimet e fjalëve në "grupin e fjalëve". Të gjitha rezultatet e pyetjes ruhen në një tabelë, dhe secilit rezultat i pyetjes i jepet një "pikë" për sa afër rezultati përputhet me atë që përdoruesi kishte folur. Tabela renditet sipas rezultatit, dhe rezultati me pikën më të lartë dërgohet në dalje, nëse tejkalon një prag të caktuar. Nëse të gjitha rezultatet janë nën pragun, AI mund të përgjigjet me "Nuk e di" ose "Kjo nuk llogaritet"

Hapi 7: Tabela "dalja dhe rezultatet"

E
E

Dalja e AI nga kontributi im "Çfarë bëri pula?"

Hapi 8: "Procesori i daljes"

"Procesori i daljes"
"Procesori i daljes"

Kjo bën disa gjëra "të palidhura" me pamje, por të gjitha kanë të bëjnë me marrjen e tekstit nga Përpunuesi AI tek përdoruesi.

Këtu është një listë.

1. Teksti nga baza e të dhënave mund të jetë me të gjitha shkronjat e vogla dhe të mos ketë shenja pikësimi.. Subrutinat do të shkruajnë me shkronjë të madhe shkronjën e parë dhe do të vënë një pikë ose pikëpyetje në fund.

2. Një nënrutinë tjetër do t'i kthejë apostrofet në kontraktime, ose do t'i kthejë kontraktimet përsëri në fjalë të plota (dmth. "Nuk mund" zëvendësohet me "nuk mund")

3. Motori i tekstit në të folur nuk shqipton disa fjalë ashtu si më pëlqen, kështu që "Procesori i daljes" i zëvendëson ato fjalë me një drejtshkrim fonetik. në "procesorin e hyrjes"

4. Nëse AI nuk gjen një përgjigje të përshtatshme në bazën e të dhënave, mund të thotë "nuk e di", por nuk dua që ajo ta thotë këtë pa pushim. Njerëzit e vërtetë ndryshojnë përgjigjet e tyre. Pra, ekziston një tabelë me fraza "Output Common" dhe një funksion që zgjedh një rastësisht (dhe kurrë nuk do të zgjedhë të njëjtën dy herë me radhë.)

5. Motori falas "tekst-në-fjalim" (TTS) nuk i jep një programuesi shumë mundësi për mënyrën e të folurit të fjalive, por ju keni pak kontroll mbi lartësinë dhe shpejtësinë e fonemave. Termi për këtë është "Prosody". Shtova disa kode "prosodi" në tekstin në bazën e të dhënave të mia, dhe kur "Output Processor" i sheh këto, ai rregullon lartësinë dhe shpejtësinë në motorin TTS ndërsa secila fjalë flitet.

6. Ndonjëherë TTS është thjesht e vështirë për tu kuptuar, kështu që përveçse i them fjalët me zë të lartë, unë gjithashtu i shfaq ato me shkronja të mëdha në ekranin e kompjuterit tim. Kjo pjesë e "Ndërfaqes së Përdoruesit" është një rrjet që tregon 6 rreshtat e fundit të një bisede, (Hyrja e përdoruesit dhe dalja e AI) dhe lëviz lart ndërsa shtohen rreshta të rinj..

Hapi 9: Vazhdoni të punoni në të

Vazhdoni të punoni në të
Vazhdoni të punoni në të

Komenti im ishte "Mos i thuaj askujt"

Unë jam ende duke punuar në sistemin tim AI, dhe ndoshta nuk do të "përfundojë" kurrë me të vërtetë. Ndërsa shtoj më shumë veçori, do të shkruaj më shumë artikuj.

Ndoshta disa nga idetë e mia do t'ju frymëzojnë për të ndërtuar një UA që është më e mirë se e imja

Recommended: