Mündəricat:

A.I. necə hazırlanır 2 -ci hissə: 9 addım
A.I. necə hazırlanır 2 -ci hissə: 9 addım

Video: A.I. necə hazırlanır 2 -ci hissə: 9 addım

Video: A.I. necə hazırlanır 2 -ci hissə: 9 addım
Video: Ən Gözəl Pizza Xəmiri və Pizzanın Hazırlanması (Kolay ve Çook Lezzetli Pizza Tarifi) 2024, Iyul
Anonim
A. I. necə hazırlanır 2 -ci hissə
A. I. necə hazırlanır 2 -ci hissə

Bu, pulsuz bir verilənlər bazası, Proqramlaşdırma inkişaf etdirmə vasitəsi və Windows ilə birlikdə gələn pulsuz TTS mühərrikindən istifadə edərək Windows kompüterində AI qurmaq üçün atdığım addımlar haqqında 2 -ci hissədir.

"Windows" sözü Microsoft -a məxsusdur.

"Əjdaha" sözü Nuance -a məxsusdur.

Addım 1: AI hissəsini necə etmək olar 2 -ci hissə

AI necə etmək olar 2 -ci hissə
AI necə etmək olar 2 -ci hissə

Bir proqramlaşdırma dili seçin və bəzi vasitələr alın

Bir çox proqramlaşdırma dili var. Bəziləri A. I. Ən çox sevdiyim Visual Basic -dir, buna görə də istifadə etdim. SQL server verilənlər bazası ilə də işləyirəm, buna görə də istifadə etdim.

Bunun pulsuz versiyalarını Microsoft veb saytından yükləyə bilərsiniz. Microsoft veb saytında "EXPRESS" sözünü axtarın. [Visual Studio Express və SQL server Express]

Bizim istəyə biləcəyiniz digər dillər bunlardır: Python, C#, C ++, Java, Prolog, Lisp, IPL

və bir çox başqaları. AIML, çox maraqlı bir "İşaretleme Dili" dir.

Windows ilə gələndən daha yaxşı bir "nitq tanıma" proqramı istədim və DRAGON proqramını aldım. Windows ilə birlikdə gələn standart "Mətndən Nitqə" proqramından istifadə edirəm.

Addım 2: Sisteminizi Dizayn Edin:

Sisteminizi Dizayn Edin
Sisteminizi Dizayn Edin

Böyük layihələrinizi bir neçə kiçik layihəyə bölün. Proqram kodumu modullara böldüm.

Xüsusi bir funksiyanı tapmaq daha asan olması üçün kodumu fərqli modullara ayırdım.

"Process Input", "Process AI", "Process Output", "User Interface" və bir neçə digər modullarım var. Bəzi funksiyalarım bütün digər kod modulları üçün əlçatan olmalıdır, buna görə də bu funksiyaları hər şeyin paylaşıldığı "ümumi" bir modula qoydum.

Addım 3: Proqramlaşdırma dilində qurulan funksiyalar:

Proqramlaşdırma dilində qurulan funksiyalar
Proqramlaşdırma dilində qurulan funksiyalar

Fərqli dillərin fərqli adları ola bilər, lakin bütün yüksək səviyyəli dillər oxşar funksiyalara malikdir.

LCase və ya ToLower: Bir simli bütün kiçik hərflərə çevirir. Bir verilənlər bazası axtarışı etməzdən əvvəl hər şeyi kiçik hərflərə çevirirəm-çox şey "böyük hərflərə həssas deyil"-Hər halda.

Dəyişdir: Bir simli içərisindəki bir simli başqa bir sətrə dəyişdirin. Sətirdən qurtarmaq üçün boş bir simli "" ilə əvəz edə bilərsiniz. Nöqtələrdən, sual işarələrindən, vergüllərdən və digər durğu işarələrindən xilas oluram.

Bölün: Bir simli ayrı -ayrı hissələrə bölür və bir sıra halına salır. Bu funksiya hər hansı bir xarakterə və ya "Ayırıcıya" bir simli ayıracaq. Bir sıra sözlər düzəltmək üçün "boşluq simvolu" na "" bir cümlə ayırdım. AI Gurus tərəfindən buna "Tokenizing" deyilir.

Verilənlər bazasında axtarış etmək üçün istifadə olunan sorğuları yaratmaq üçün fərdi sözləri istifadə edirəm. (Bu barədə növbəti yazımda daha çox məlumat verəcəyəm)

Addım 4: Öz funksiyalarınızı yaratmaq üçün Daxili Funksiyaları birləşdirin

Bu "vizual əsas" bir nümunədir. Belə bir şey qurmaq üçün proqramlaşdırma dilinizdən istifadə edin.

Əlbəttə ki, seçdiyiniz proqramlaşdırma dilindən istifadə edərək çoxlu kod yazmalı və bir çox funksiya qurmalısınız.

Addım 5: Modullar nə edir? "Giriş Prosessoru"

Modullar nə edir? "Giriş Prosessoru"
Modullar nə edir? "Giriş Prosessoru"

AI -yə eyni sualı verməyin yüz fərqli yolu ola bilər. Misal üçün; "Saat neçədir?", "Vaxtın varmı?" "Saat neçə olduğunu bilirsinizmi?", "Günün indiki vaxtını deyə bilərsinizmi?" İstifadəçi yalnız vaxt istədiyinə görə, bu girişlərdən hər hansı birini verilənlər bazası "bax" cədvəlindən istifadə edərək "Sorğu vaxtı" adlı tək bir Çıxışa çevirirəm.

Bir cədvəl uyğun gələnə qədər döngə etmək üçün kod yaza bilərsiniz və ya bir SQL verilənlər bazasından istifadə edirsinizsə, bir SQL sorğusu yaza bilərsiniz, məsələn …

"Giriş =" "nə olursa olsun" TableName -dən Çıxış seçin."

… Və sonra "Query Time" çıxışını növbəti kod moduluna göndərirəm; "Proses AI"

Suallarla yanaşı, "Salam" deməyin bir çox yolu var

Salam, salam, necesen, salam, necesen ?, salamlar, xoş geldiniz, salamlar, necesiz ….

Bütün bunlar "salamlama" ya endirildi

AI prosessoru "Salamlama" gördükdə, bir verilənlər bazası cədvəlindən təsadüfi bir salam seçəcək və yüksək səslə danışacaq çıxış prosessoruna "Salam" göndərir.

Addım 6: "AI Prosessoru"

"AI prosessoru"
"AI prosessoru"

Process AI ən böyük kod moduludur. O qədər böyükdür ki, onu da hissələrə ayırdım.

Giriş istifadəçinin bir əmr söylədiyini və ya sual verdiyini yoxlamaq üçün yoxlanılır. Ayrıca, AI bir neçə "Moddan" hər hansı birində ola bilər ki, bu da "Process AI" kodunun istifadəçidən sual vermək əvəzinə bir suala CAVAB verəcəyini gözləyir.

İstifadəçi bir əmr söyləmədisə və AI xüsusi bir "Modda" deyilsə, "sözlər sırasındakı" sözlərin birləşməsindən bir çox sorğu qurur və icra edir. Bütün sorğu nəticələri bir cədvəldə saxlanılır və hər sorğunun nəticəsinin istifadəçinin danışdıqlarına nə qədər uyğun gəldiyinə görə "bal" verilir. Cədvəl bala görə sıralanır və ən yüksək balı olan nəticə müəyyən bir həddi keçərsə, nəticəyə göndərilir. Bütün ballar eşik altındadırsa, AI "Bilmirəm" və ya "Hesablamır" ilə cavab verə bilər.

Addım 7: "Çıxış və Skorlar" Cədvəli

The
The

AI -nin çıxışı "Toyuq nə etdi?"

Addım 8: "Çıxış Prosessoru"

"Çıxış Prosessoru"
"Çıxış Prosessoru"

Bu, bir neçə "əlaqəsi olmayan" görünüşlü işlər görür, lakin bunların hamısı AI Prosessorundan istifadəçiyə mətn almaqla əlaqəlidir.

Budur bir siyahı.

1. Verilənlər bazasındakı mətn kiçik hərflərlə ola bilər və durğu işarələri olmamalıdır. Subroutines ilk hərfi böyük hərflə yazacaq və sonuna nöqtə və ya sual işarəsi qoyacaq.

2. Başqa bir alt proqram, apostrofları sancılar halına gətirəcək və ya sancıları yenidən tam sözlərə çevirəcək (yəni "cant" "bilməz" ilə əvəz olunacaq)

3. Mətndən-nitqə mühərrik bəzi sözləri istədiyim kimi tələffüz etmir, buna görə də "Çıxış Prosessoru" həmin sözləri fonetik yazımla əvəz edir. Bunları saxlamaq üçün "yuxarı bax" cədvəllərim var. "giriş prosessoru" nda

4. AI verilənlər bazasında uyğun bir cavab tapmasa, "Bilmirəm" deyə bilər, amma bunu dəfələrlə söyləməsini istəmirəm. Həqiqi insanlar cavablarını dəyişirlər. Beləliklə, "Ümumi Çıxış" ifadələri və təsadüfi birini seçən bir funksiya olan bir cədvəl var (və eyni şeyi heç vaxt ardıcıl olaraq iki dəfə seçməyəcək.)

5. Pulsuz "mətndən nitqə" (TTS) mühərriki bir proqramçıya cümlələrin danışılması üçün bir çox seçim vermir, ancaq səs tonu və fonemlərin sürətinə bir az nəzarət edirsiniz. Bunun termini "Prosody" dir. Verilənlər bazamdakı mətnə bəzi "prosody" kodları əlavə etdim və "Çıxış Prosessoru" bunları gördükdə, hər bir söz danışıldıqca TTS mühərrikindəki səs və sürəti tənzimləyir.

6. Bəzən TTS -ni başa düşmək çətindir, buna görə sözləri ucadan söyləməklə yanaşı, onları kompüterimin ekranında böyük hərflərlə göstərirəm. "İstifadəçi İnterfeysi" nin bu hissəsi, söhbətin son 6 sətrini (İstifadəçi girişi və AI çıxışı) göstərən və yeni sətirlər əlavə edildikdə yuxarıya doğru sürüşən bir şəbəkədir.

Addım 9: Bunun üzərində işləməyə davam edin

Bunun üzərində işləməyə davam edin
Bunun üzərində işləməyə davam edin

Girişim "Heç kimə demə"

Mən hələ də AI sistemim üzərində işləyirəm və yəqin ki, əslində heç vaxt "edilməyəcək". Daha çox xüsusiyyət əlavə etdikcə daha çox məqalə yazacağam.

Bəlkə də bəzi fikirlərim sizi mənimkindən daha yaxşı bir AI qurmağa həvəsləndirəcək

Tövsiyə: