Talaan ng mga Nilalaman:

Paano Gumawa ng isang A.I. Bahagi 2: 9 Mga Hakbang
Paano Gumawa ng isang A.I. Bahagi 2: 9 Mga Hakbang

Video: Paano Gumawa ng isang A.I. Bahagi 2: 9 Mga Hakbang

Video: Paano Gumawa ng isang A.I. Bahagi 2: 9 Mga Hakbang
Video: Paano ang Pagsulat ng Balita II Mga Hakbang at Dapat Tandaan II Teacher Ai R 2024, Nobyembre
Anonim
Paano Gumawa ng isang A. I. Bahagi 2
Paano Gumawa ng isang A. I. Bahagi 2

Ito ang bahagi 2 tungkol sa mga hakbang na kinuha ko upang makabuo ng isang AI sa isang windows computer, gamit ang isang libreng database, tool sa pag-unlad ng Programming at ang libreng built in na TTS engine na kasama ng Windows.

Ang salitang "Windows" ay kabilang sa Microsoft.

Ang salitang "Dragon" ay kabilang sa Nuance.

Hakbang 1: Paano Gumawa ng isang Bahagi ng AI

Paano Gumawa ng isang Bahaging AI 2
Paano Gumawa ng isang Bahaging AI 2

Pumili ng isang wika ng programa at kumuha ng ilang mga tool

Maraming mga wika sa programa. Ang ilan ay dalubhasa para sa A. I. Ang paborito ko ay Visual Basic, kaya iyon ang ginamit ko. Nagtatrabaho din ako sa mga database ng SQL server, kaya ginamit ko rin iyon.

Maaari kang mag-download ng mga libreng bersyon ng mga ito mula sa website ng Microsoft. Maghanap lang para sa "EXPRESS" sa Microsoft web site. [Visual Studio Express at SQL server Express]

Ang iba pang mga wikang maaaring gusto mo sa amin ay: Python, C #, C ++, Java, Prolog, Lisp, IPL

at marami pang iba. Ang AIML ay isang "Markup Wika" na napaka-interesante.

Nais ko ng isang mas mahusay na programa na "pagkilala sa pagsasalita" kaysa sa isa na kasama ng Windows, kaya binili ko ang DRAGON software. Gumagamit ako ng karaniwang programang "Text-to-speech" na kasama ng Windows.

Hakbang 2: Idisenyo ang Iyong System:

Idisenyo ang Iyong Sistema
Idisenyo ang Iyong Sistema

Hatiin ang iyong malalaking proyekto sa isang bungkos ng mas maliit na mga proyekto. Hinati ko ang aking code ng programa sa mga modyul.

Hinati ko ang aking code sa iba't ibang mga module upang ang isang partikular na pagpapaandar ay mas madaling hanapin.

Mayroon akong mga module na pinangalanang "Process Input", "Process AI", "Process Output", "User Interface" at ilang iba pa. Ang ilan sa aking mga pagpapaandar ay kailangang ma-access sa lahat ng iba pang mga module ng code, kaya inilalagay ko ang mga pagpapaandar na iyon sa isang "karaniwang" module kung saan ibabahagi ang lahat

Hakbang 3: Mga Pag-andar Na Binuo Sa Wika ng Programming:

Mga Pag-andar Na Binuo Sa Wika ng Programming
Mga Pag-andar Na Binuo Sa Wika ng Programming

Ang magkakaibang mga wika ay maaaring may iba't ibang mga pangalan para sa mga ito, ngunit ang lahat ng mga mataas na antas ng wika ay may magkatulad na mga pag-andar.

LCase o ToLower: Nagko-convert ng isang string sa lahat ng mas mababang kaso. Ino-convert ko ang lahat sa mas mababang kaso bago gumawa ng isang paghahanap sa database - kahit na ang karamihan sa mga bagay ay "case-insensitive" - Kung sakali.

Palitan: Palitan ang isang string sa loob ng isang string sa isa pang string. Maaari mong palitan ang isang string ng isang walang laman na string na "" upang mapupuksa ito. Tinatanggal ko ang mga panahon, marka ng tanong, kuwit at iba pang mga bantas.

Hatiin: Hinahati ang isang string sa mga indibidwal na piraso at inilalagay ang mga ito sa isang array. Hahatiin ng pagpapaandar na ito ang isang string sa anumang character, o "Delimiter". Hinati ko ang isang pangungusap sa isang "character na puwang" "" upang gumawa ng isang hanay ng mga salita. Tinawag itong "Tokenizing" ng mga AI Gurus.

Ginagamit ko ang mga indibidwal na salita upang bumuo ng mga query na ginamit upang maghanap sa database. (Higit pa dito sa aking susunod na artikulo)

Hakbang 4: Pagsamahin ang Mga Built-In na Pag-andar upang Lumikha ng Iyong Sariling Mga Pag-andar

Ito ay isang halimbawa ng "visual basic". Gamitin ang wika ng iyong programa upang makabuo ng isang bagay tulad nito.

Siyempre, kakailanganin mong magsulat ng maraming code, at bumuo ng maraming mga pag-andar, gamit ang wika ng programa na iyong pinili.

Hakbang 5: Ano ang Ginagawa ng Mga Modyul? "Input Processor"

Ano ang Ginagawa ng Mga Modyul? "Input Processor"
Ano ang Ginagawa ng Mga Modyul? "Input Processor"

Maaaring may isang daang iba't ibang mga paraan upang tanungin ang AI ng parehong tanong. Halimbawa; "Anong oras na?", "Mayroon ka bang oras?" "Alam mo ba kung anong oras na?", "Maaari mo bang sabihin sa akin ang kasalukuyang oras ng araw?" Dahil ang gumagamit ay humihingi lamang ng oras, nagko-convert ako ng alinman sa mga Input na ito sa isang solong Output na tinatawag na "Oras ng Query" gamit ang isang database na "tingnan ang" talahanayan.

Maaari kang magsulat ng code sa loop sa pamamagitan ng isang talahanayan hanggang sa makahanap ito ng isang tugma, o kung gumagamit ka ng isang database ng SQL, maaari kang sumulat ng isang query sa SQL, tulad ng …

"Piliin ang Output mula sa TableName kung saan Input = '" kung ano pa man'"

… At pagkatapos ay ipadala ko ang output, "Oras ng Query", sa susunod na module na code; "Iproseso ang AI"

Bukod sa mga katanungan, maraming paraan upang masabing “Kamusta”

Kumusta, Kumusta, ano na, hey, hola, kumusta ka?, Pagbati, maligayang pagdating, pagbati, howdy ….

Ang lahat ng ito ay nabawasan sa "Pagbati"

Kapag nakita ng processor ng AI ang "Pagbati" nagpapadala ito ng "Pagbati" sa output processor, na pipili ng isang random na pagbati mula sa isang database table, at pasigaw na sabihin ito.

Hakbang 6: "Proseso ng AI"

"AI Processor"
"AI Processor"

Ang proseso ng AI ay ang pinakamalaking module module. Napakalaki nito na hinati ko rin ito sa mga seksyon.

Ang input ay naka-check upang makita kung ang gumagamit ay nagsalita ng isang utos, o nagtanong. Gayundin, ang AI ay maaaring nasa anuman sa maraming mga "Mga Mode" na nangangahulugang ang "Proseso AI" na code ay inaasahan ang gumagamit na SAGOT ng isang katanungan, sa halip na MAGtanong ng isang katanungan.

Kung ang gumagamit ay hindi nagsasalita ng isang utos at ang AI ay wala sa isang espesyal na "Mode" pagkatapos ay nagtatayo at nagsasagawa ito ng isang bungkos ng mga query, na walang mga kumbinasyon ng mga salita sa "salitang array". Ang lahat ng mga resulta ng query ay nakaimbak sa isang talahanayan, at ang bawat resulta ng query ay binibigyan ng isang "marka" kung gaano kalapit ang resulta sa kung ano ang binanggit ng gumagamit. Ang talahanayan ay pinagsunod-sunod sa pamamagitan ng iskor, at ang resulta na may pinakamataas na iskor ay ipinadala sa output, kung lumampas ito sa isang tiyak na threshold. Kung ang lahat ng mga marka ay nasa ibaba ng threshold, maaaring tumugon ang AI sa "Hindi ko alam" o "Hindi iyon makalkula"

Hakbang 7: Ang "output at Mga Marka" na Talahanayan

Ang
Ang

Ang output ng AI mula sa aking input na "Ano ang ginawa ng manok?"

Hakbang 8: "Output Processor"

"Proseso ng Output"
"Proseso ng Output"

Gumagawa ito ng maraming "hindi nauugnay" na pagtingin sa mga bagay ngunit lahat sila ay may kinalaman sa pagkuha ng teksto mula sa AI Processor sa gumagamit.

Narito ang isang listahan.

1. Ang teksto mula sa database ay maaaring nasa lahat ng mas mababang kaso, at walang anumang bantas.. Subroutines ay gagamitin ng malaking titik ang unang titik, at maglalagay ng isang panahon o marka ng tanong sa dulo.

2. Ang isa pang subroutine ay ibabalik ang mga apostrophes sa mga contraction, o ibabalik ang mga contraction sa buong mga salita (ibig sabihin, ang "cant" ay pinalitan ng "hindi maaaring")

3. Ang text-to-speech engine ay hindi binibigkas ang ilang mga salita ayon sa gusto ko, kaya pinapalitan ng "Output Processor" ang mga salitang iyon ng isang phonetic spelling.. Mayroon akong mga talahanayan na "tumingin" ng mga database upang hawakan ang mga ito, katulad ng isa sa "input processor"

4. Kung ang AI ay hindi makahanap ng angkop na tugon sa database, maaari itong sabihin na "Hindi ko alam" ngunit hindi ko nais na sabihin ito nang paulit-ulit. Ang mga tunay na tao ay nag-iiba-iba ng kanilang mga tugon. Kaya mayroong isang talahanayan na may mga pariralang "Karaniwang Output" at isang pagpapaandar na pipili ng isa nang sapalaran (at hindi pipiliin ang pareho nang dalawang beses sa isang hilera.)

5. Ang libreng "text-to-speech" (TTS) engine ay hindi nagbibigay sa isang programmer ng maraming mga pagpipilian para sa paraan ng pagsasalita ng mga pangungusap, ngunit mayroon kang kaunting kontrol sa pitch at ang bilis ng mga ponema. Ang term para dito ay "Prosody". Nagdagdag ako ng ilang mga "prosody" na code sa teksto sa aking database, at kapag nakita ito ng "Output Processor", inaayos nito ang pitch at bilis sa TTS engine habang binibigkas ang bawat salita.

6. Minsan ang TTS ay mahirap lamang maunawaan, kaya bukod sa pagsasalita ng mga salita nang malakas, ipinapakita ko rin ito sa malalaking titik sa display ng aking computer. Ang bahaging ito ng "User Interface" ay isang grid na ipinapakita ang huling 6 na linya ng isang pag-uusap, (User input & AI output) at mag-scroll pataas habang idinagdag ang mga bagong linya..

Hakbang 9: Patuloy na Gawin Ito

Patuloy na Gawin Ito
Patuloy na Gawin Ito

Ang aking input ay "Huwag sabihin sa sinuman"

Nagtatrabaho pa rin ako sa aking AI system, at marahil ay hindi ito tunay na "tapos". Sa pagdaragdag ko ng higit pang mga tampok, magsusulat ako ng maraming mga artikulo.

Marahil ang ilan sa aking mga ideya ay pumukaw sa iyo upang bumuo ng isang AI na mas mahusay kaysa sa akin

Inirerekumendang: