Turinys:

Kaip padaryti A.I. 4 dalis: 3 žingsniai
Kaip padaryti A.I. 4 dalis: 3 žingsniai

Video: Kaip padaryti A.I. 4 dalis: 3 žingsniai

Video: Kaip padaryti A.I. 4 dalis: 3 žingsniai
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Lapkritis
Anonim
Kaip padaryti A. I. 4 dalis
Kaip padaryti A. I. 4 dalis

Kitą dieną aš kalbėjau su savo A. I. ir pasakiau

tai: „Aš einu į viršų vakarieniauti, mes valgome STEAK“.

Tačiau kalbos atpažinimo (SR) programinė įranga tai aiškino kaip „… mes turime STAKE“

Anksčiau, kai kalbėjau apie nuotrauką, susidūriau su panašia (bet kitokia) problema ir pasakiau žodį „PICTURE“. SR programinė įranga tai aiškino kaip „PITCHER“

Ištaisymas buvo paprastas SR programinės įrangos perkvalifikavimas. (O gal mano tarimas)

Bet kai sakau žodžius „STEAK“arba „STAKE“, ištariu juos lygiai taip pat, o SR programinės įrangos perkvalifikavimas tokiais atvejais nepadės.

1 žingsnis:

Viena idėja išspręsti „homonimų problemą“.

Turiu pažvelgti į žodį „kontekste“, kad nustatyčiau, kokią rašybą naudoti. Žmogaus smegenys tai daro gana lengvai, ir jūs net nežinote, kad tai darote.

Tai reiškia, kad nagrinėjami kiti sakinio žodžiai ir jūsų smegenys nusprendžia, kuri rašyba atrodo geriausiai. Dabar, kaip tai padaryti kodu?

Mano A. I. programa analizuoja sakinį į atskirų žodžių masyvą, naudodami funkciją „Visual Basic“(VB) „Split“. [MyArray = Split (InputSentence, „“)]

Kiekvieną masyvo žodį galima patikrinti, ar tai galimas homonimas, pažiūrėję į duomenų bazės lentelę, kurioje yra homonimų sąrašas.

Žinoma, kitos lentelės sukūrimas reiškia, kad turėsime ją užpildyti duomenimis, taip pat turėsime sugebėti išlaikyti ir lentelės duomenis.

Vėliau gali būti sukurta savarankiškai besimokanti paprogramė, skirta nuskaityti krūvą teksto, ieškoti žodžių mano homonimų lentelėje ir užfiksuoti kitus „kontekstinius“žodžius. Hmmmmm, gal reikia kelių stalų …

Šių „Instructables“rašymas man padeda „išsiaiškinti“programavimo uždavinio sprendimą.

2 žingsnis:

Vaizdas
Vaizdas

Lentelės „HomonymContext“struktūra

Mano pirmoji idėja buvo lentelė, kurioje yra žodžiai, alternatyvios rašybos ir „kontekstiniai“žodžiai. Idėja buvo ieškoti sakinio, kuriame yra homonimas, kitais žodžiais, suteikiančiais „kontekstą“, kad programa galėtų nustatyti, kokią rašybą naudoti. Lentelėje taip pat yra stulpelis pavadinimu „WordDef“, kuriame yra žodžio apibrėžimas, kuris labiau tinka lentelę prižiūrintiems žmonėms nei A. I. kodą.

Norėdami ieškoti kiekvieno žodžio, galiu naudoti VB kodą ir SQL kodą, pvz.

Už kiekvieną žodį „MyArray“

Query = "Pasirinkite žodį iš tblHomonynContext, kur word = '" & word & "'"

jei ši užklausa pateikia rezultatą, žodis yra homonimas

Kitas

Šiuo metu tai tik pseudo kodas - aš dar nesu parašęs tikslaus kodo arba išsiaiškinau visas detales. Bet drąsiai imkitės mano idėjos ir įgyvendinkite ją naudodami savo mėgstamą programavimo kalbą.

3 žingsnis:

Vaizdas
Vaizdas

Jei įvesties sakinyje yra homonimas, dabar galite

vykdykite VB kodą, kuris patikrins kitus jūsų sakinio žodžius, naudodami kontekstinius žodžius užklausos rezultatuose.

Visa tai taip pat galite padaryti atlikdami SQL saugomą procedūrą, kuri gali būti vykdoma greičiau.

Funkcija VB „InStr ()“grąžins skaičių, didesnį už nulį, jei viena eilutė yra kitoje eilutėje, arba grąžins nulį, tai eilutė NĖRA kitoje.

Instr () iš tikrųjų grąžina esančios eilutės padėtį. Jei tiesiog norite sužinoti, ar eilutėje1 yra eilutė2, galite naudoti tokį kodą kaip „Jei InStr (eilutė1, eilutė2)> 0…“

Turėsite sukurti šį kodą savo mėgstama programavimo kalba.

Lentelė „HomonymContext“nėra labai geras dizainas. Jame yra daug pasikartojančių duomenų, ir duomenų bazių kūrėjai mano, kad tai yra „nenormalizuota“. Geresnis būdas įgyvendinti šią funkciją būtų dviejų lentelių naudojimas tėvų ir vaikų santykiuose. Vienoje lentelėje („The Parent“) būtų homonimų sąrašas, jų apibrėžimai ir eilutės ID. Šis eilutės ID naudojamas kaip raktas prie „lentelės vaikams“, kurioje būtų žodžiai ir jų kontekstiniai žodžiai.

Tai būtų lengviau užklausti (ir prižiūrėti) nei mano pradinis dizainas.

Rekomenduojamas: