Mündəricat:

A.I. necə hazırlanır 4 -cü hissə: 3 addım
A.I. necə hazırlanır 4 -cü hissə: 3 addım

Video: A.I. necə hazırlanır 4 -cü hissə: 3 addım

Video: A.I. necə hazırlanır 4 -cü hissə: 3 addım
Video: Ot artıq problem deyil! Bu mövsüm üçün əla fikir. 2024, Noyabr
Anonim
A. I. necə hazırlanır 4 -cü hissə
A. I. necə hazırlanır 4 -cü hissə

Ötən gün A. I. ilə danışırdım və dedim

"Yemək üçün yuxarı mərtəbəyə gedirəm, STEAK içirik" dedi.

Bununla birlikdə, Nitq Tanıma (SR) proqramı bunu "… PAYLAŞMAQ" kimi şərh etdi.

Daha əvvəl bir fotoşəkil haqqında danışarkən oxşar (lakin fərqli) bir problemlə qarşılaşdım və "ŞƏKİL" sözünü dedim. SR proqramı bunu "PITCHER" olaraq şərh etdi

Bunun həlli SR proqramının sadə bir şəkildə yenidən hazırlanması idi. (Ya da bəlkə mənim tələffüzüm)

STEAK və ya STAKE sözlərini söylədikdə, onları eyni şəkildə tələffüz edirəm və SR proqramını yenidən hazırlamaq belə hallarda kömək etməyəcək.

Addım 1:

"Homonim problemi" ni həll etmək üçün bir fikir.

Hansı yazımdan istifadə edəcəyimi müəyyən etmək üçün "kontekstdə" sözünə baxmalıyam. İnsan beyni bunu çox asan edir və bunu etdiyini belə bilmirsən.

Bu o deməkdir ki, bir cümlədəki digər sözlər araşdırılır və beyniniz hansı yazımın daha yaxşı göründüyünə qərar verir. İndi bunu kodda necə edə bilərəm?

Mənim A. I. Proqram Visual Basic (VB) "Split" funksiyasından istifadə edərək bir cümləni ayrı -ayrı sözlər qrupuna ayırır. [MyArray = Bölünmüş (InputSentence, ““)]

Sıradakı hər bir söz, homonimlərin siyahısı olan bir verilənlər bazası cədvəlinə baxaraq mümkün bir homonim olub olmadığını yoxlamaq olar.

Əlbəttə ki, başqa bir cədvəl yaratmaq, onu məlumatlarla doldurmağımız və cədvəldəki məlumatları da saxlaya bilməyimiz deməkdir.

Daha sonra bir qrup mətni taramaq, Homonim cədvəlimdə sözlər axtarmaq və digər "kontekstli" sözləri tutmaq üçün özünü öyrənmə alt proqramı qurula bilər. Hmmmmm, bəlkə bir neçə masaya ehtiyac var …

Bu "Təlimatlar" ı yazmaq mənə bir proqramlaşdırma probleminin həllini "əsaslandırmağa" kömək edir.

Addım 2:

Şəkil
Şəkil

HomonymContext cədvəlinin quruluşu

İlk fikrim sözlər, alternativ yazımlar və "Kontekst" sözlərindən ibarət bir masa idi. Fikir, proqramın hansı yazımdan istifadə edəcəyini təyin etməsi üçün "kontekst" verən başqa sözlər üçün bir homonim olan bir cümlə axtarmaq idi. Cədvəldə, sözün tərifini saxlamaq üçün "WordDef" adlı bir sütun da var ki, bu da A. I. kod.

Hər bir sözü axtarmaq üçün VB kodunu və SQL kodunu istifadə edə bilərəm …

MyArray -dəki hər bir söz üçün

Sorğu = "Word = '" & word & "'" olduğu tblHomonynContext -dən Word seçin

bu sorğu bir nəticə verərsə, söz homonimdir

Sonrakı

Bu, yalnız yalançı koddur - hələ dəqiq kodu yazmamışam və ya bütün detalları başa düşməmişəm. Ancaq mənim fikrimi qəbul etməkdən və öz sevimli proqramlaşdırma dilinizdən istifadə etməkdən çəkinməyin.

Addım 3:

Şəkil
Şəkil

Giriş cümlənizdə bir homonim varsa, indi edə bilərsiniz

Sorğunun nəticələrindəki kontekstli sözlərlə, cümlənizdəki digər sözləri yoxlayacaq VB kodunu icra edin.

Bunların hamısını daha sürətli icra edə bilən SQL saxlanılan prosedurda da edə bilərsiniz.

VB "InStr ()" funksiyası sıfırdan böyük bir rəqəm qaytaracaq, əgər bir simli başqa bir simli içərisindədirsə və ya sıfır qaytararsa, simli digərində DEYİLdir.

Instr (), əslində olan sətrin mövqeyini qaytarır. String1 -in String2 ehtiva etdiyini bilmək istəyirsinizsə, "InStr (String1, String2)> 0…" kimi koddan istifadə edə bilərsiniz.

Bu kodu ən sevdiyiniz proqramlaşdırma dilində qurmalı olacaqsınız.

HomonymContext masası çox yaxşı bir dizayn deyil. Çoxlu təkrarlanan məlumatlara malikdir və bu verilənlər bazası dizaynerləri tərəfindən "Qeyri-Normallaşdırılmış" hesab olunur. Bu funksiyanı həyata keçirməyin daha yaxşı yolu, valideyn-uşaq münasibətlərində iki cədvəldən istifadə etmək olar. Bir cədvəldə (Valideyn) homonimlərin siyahısı, onların tərifləri və həmçinin Satır ID -si olacaq. Bu Satır ID, sözləri və onların kontekst sözlərini ehtiva edən "Uşaq masası" nın açarı olaraq istifadə olunur.

Bu, orijinal dizayndan daha çox sorğu aparmaq (və saxlamaq) daha asan olardı.

Tövsiyə: