Kazalo:

Kako narediti AI Del 4: 3 koraki
Kako narediti AI Del 4: 3 koraki

Video: Kako narediti AI Del 4: 3 koraki

Video: Kako narediti AI Del 4: 3 koraki
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Julij
Anonim
Kako narediti AI 4. del
Kako narediti AI 4. del

Pred dnevi sem se pogovarjal s svojim A. I. in rekel sem

to: "Grem gor na večerjo, imamo STEAK".

Vendar pa je programska oprema za prepoznavanje govora (SR) to razlagala kot "… imamo vložek"

S podobno (a drugačno) težavo sem naletel že prej, ko sem govoril o fotografiji, in rekel besedo »SLIKA«. Programska oprema SR je to razlagala kot "PITCHER"

Popravek za to je bilo preprosto prekvalificiranje programske opreme SR. (Ali pa morda moja izgovorjava)

Ko pa izgovorim besede STEAK ali STAKE, jih izgovorim popolnoma enako in prekvalifikacija programske opreme SR v takšnih primerih ne bo pomagala.

Korak 1:

Ena ideja za rešitev "homonimnega problema".

Moram pogledati besedo "v kontekstu", da ugotovim, kateri črkovanje uporabiti. Človeški možgani to počnejo zelo enostavno in sploh ne veste, da to počnete.

To pomeni, da se preučijo druge besede v stavku in vaši možgani se odločijo, kateri črkovanje je najboljše. Zdaj, kako to storim v kodi?

Moj A. I. program razčleni stavek v niz posameznih besed z uporabo funkcije "Split" Visual Basic (VB). [MyArray = Razdeljeno (InputSentence, ““)]

Vsako besedo v matriki lahko preverite, ali je možen homonim, tako da pogledate v tabelo zbirke podatkov, ki vsebuje seznam homonimov.

Seveda ustvarjanje druge tabele pomeni, da jo bomo morali napolniti s podatki, prav tako pa bomo morali biti sposobni vzdrževati tudi podatke v tabeli.

Samoučna podprogram se lahko pozneje zgradi za skeniranje kopice besedila, iskanje besed v moji tabeli homonim in zajem drugih "kontekstnih" besed. Hmmmmm, mogoče je potrebno več miz …

Pisanje teh "navodil" mi pomaga "ugotoviti" rešitev programskega izziva.

2. korak:

Slika
Slika

Struktura tabele HomonymContext

Moja prva zamisel je bila miza z besedami, nadomestnimi črkovanji in besedami »kontekst«. Zamisel je bila poiskati stavek, ki vsebuje homonim, za druge besede, ki dajejo »kontekst«, tako da lahko program določi, kateri črkovanje naj uporabi. Tabela vsebuje tudi stolpec z imenom "WordDef", ki vsebuje definicijo besede, kar je bolj za vzdrževanje tabele kot za A. I. Koda.

Za iskanje po vsaki besedi lahko uporabim kodo VB in kodo SQL, na primer …

Za vsako besedo v MyArray

Query = "Izberite Word iz tblHomonynContext, kjer je word = '" & word & "'"

če ta poizvedba vrne rezultat, je beseda istoimenska

Naslednji

Na tej točki je to le psevdo koda - še nisem napisal natančne kode ali ugotovil vseh podrobnosti. Vendar vas prosim, da vzamete mojo idejo in jo uporabite v svojem najljubšem programskem jeziku.

3. korak:

Slika
Slika

Če vaš vnosni stavek vsebuje istoimenski naslov, lahko to storite zdaj

izvedite kodo VB, ki bo preverila druge besede v vašem stavku s kontekstnimi besedami v rezultatih poizvedbe.

Vse to lahko storite tudi v shranjenem postopku SQL, ki se lahko izvede hitreje.

Funkcija VB "InStr ()" bo vrnila številko, večjo od nič, če je en niz vsebovan v drugem nizu ali pa bo vrnil nič, če niz NI v drugem.

Instr () dejansko vrne položaj vsebovanega niza. Če želite samo vedeti, ali String1 vsebuje String2, lahko uporabite kodo, kot je »Če je InStr (String1, String2)> 0…«

To kodo boste morali zgraditi v svojem najljubšem programskem jeziku.

Tabela HomonymContext ni zelo dobra zasnova. Ima veliko ponavljajočih se podatkov, oblikovalci baz podatkov pa za to ocenjujejo, da je "nenormaliziran". Boljši način za izvajanje te funkcionalnosti bi bila uporaba dveh tabel v odnosu starš-otrok. Ena tabela (Starš) bi vsebovala seznam homonimov, njihove definicije in tudi ID vrstice. Ta ID vrstice se uporablja kot ključ do "podrejene tabele", ki vsebuje besede in njihove kontekstne besede.

To bi bilo lažje vprašati (in vzdrževati) kot moj prvotni dizajn.

Priporočena: