Sisällysluettelo:

Kuinka tehdä A.I. Osa 4: 3 vaihetta
Kuinka tehdä A.I. Osa 4: 3 vaihetta

Video: Kuinka tehdä A.I. Osa 4: 3 vaihetta

Video: Kuinka tehdä A.I. Osa 4: 3 vaihetta
Video: Seksityöntekijä Isa ei häpeä työtään – Perjantai-dokkari 2024, Heinäkuu
Anonim
Kuinka tehdä A. I. Osa 4
Kuinka tehdä A. I. Osa 4

Eräänä päivänä puhuin AA: n kanssa ja sanoin

se: "Menen yläkertaan päivälliselle, meillä on STEAK".

Kuitenkin puheentunnistusohjelmisto (SR) tulkitsi tämän "… meillä on STAKE"

Törmäsin samanlaiseen (mutta erilaiseen) ongelmaan aiemmin, kun puhuin valokuvasta, ja sanoin sanan "KUVA". SR -ohjelmisto tulkitsi tämän "PITCHER"

Korjaus tähän oli yksinkertainen SR -ohjelmiston uudelleenkoulutus. (Tai ehkä ääntämiseni)

Mutta kun sanon sanat STEAK tai STAKE, lausun ne täsmälleen samalla tavalla, eikä SR -ohjelmiston uudelleenkoulutus auta tällaisissa tapauksissa.

Vaihe 1:

Yksi idea "homonyymi -ongelman" ratkaisemiseksi.

Minun on tarkasteltava sanaa "yhteydessä" määrittääkseni, mitä oikeinkirjoitusta käytetään. Ihmisen aivot tekevät tämän melko helposti, etkä edes tiedä, että teet sen.

Tämä tarkoittaa sitä, että muita lauseen sanoja tutkitaan ja aivosi päättävät, mikä oikeinkirjoitus näyttää parhaalta. Kuinka voin tehdä tämän koodilla?

Minun A. I. ohjelma jäsentää lauseen joukkoksi yksittäisiä sanoja käyttäen Visual Basic (VB) "Split" -toimintoa. [MyArray = Jaettu (InputSentence, "")]

Jokainen taulukon sana voidaan tarkistaa, onko se mahdollinen homonyymi, katsomalla tietokantataulukkoa, joka sisältää luettelon homonyymeistä.

Tietenkin uuden taulukon luominen tarkoittaa, että meidän on täytettävä se tiedoilla, ja meidän on myös pystyttävä ylläpitämään taulukon tiedot.

Itseoppiva aliohjelma voidaan rakentaa myöhemmin skannaamaan joukko tekstiä, etsimään sanoja homonyymitaulukostani ja kaappaamaan muita "kontekstisanoja". Hmmmmm, ehkä useita pöytiä tarvitaan …

Näiden "ohjeiden" kirjoittaminen auttaa minua "perustelemaan" ratkaisun ohjelmointihaasteeseen.

Vaihe 2:

Kuva
Kuva

HomonymContext -taulukon rakenne

Ensimmäinen ajatukseni oli taulukko, joka sisälsi sanoja, vaihtoehtoisia kirjoitusasuja ja "kontekstisanoja". Ajatuksena oli etsiä lause, joka sisältää homonyymin, toisin sanoen "kontekstin", jotta ohjelma voi päättää, mitä oikeinkirjoitusta käytetään. Taulukko sisältää myös sarakkeen nimeltä “WordDef” sanan määritelmän säilyttämiseksi, mikä on enemmän ihmisille, jotka ylläpitävät taulukkoa kuin A. I. koodi.

Jokaisen sanan etsimiseen voin käyttää VB -koodia ja SQL -koodia, kuten…

Jokaiselle MyArray -sanalle

Query = "Valitse sana tblHomonynContextista, jossa sana = '" & sana & "'"

jos tämä kysely palauttaa tuloksen, sana on homonyymi

Seuraava

Tämä on vain pseudokoodi tässä vaiheessa - en ole vielä kirjoittanut tarkkaa koodia tai tajunnut kaikkia yksityiskohtia. Mutta ota rohkeasti ideani ja toteuta se käyttämällä omaa suosikkiohjelmointikieltäsi.

Vaihe 3:

Kuva
Kuva

Jos syöttölauseesi sisältää homonyymin, voit nyt

suorita VB -koodi, joka tarkistaa lauseesi muut sanat hakutulosten kontekstisanoilla.

Voit tehdä tämän kaiken myös SQL -tallennetussa menettelyssä, joka voi toimia nopeammin.

VB "InStr ()" -toiminto palauttaa luvun, joka on suurempi kuin nolla, jos yksi merkkijono on toisen merkkijonon sisällä, tai se palauttaa nollan, jos merkkijono EI sisälly toiseen.

Instr () todella palauttaa sisältämän merkkijonon sijainnin. Jos haluat vain tietää, onko merkkijono1 merkkijono2, voit käyttää koodia, kuten "Jos InStr (merkkijono1, merkkijono2)> 0…"

Sinun on rakennettava tämä koodi suosikkiohjelmointikielelläsi.

HomonymContext -taulukko ei ole kovin hyvä muotoilu. Siinä on paljon toistuvia tietoja, ja tietokannan suunnittelijat pitävät tätä "ei-normalisoituna". Parempi tapa toteuttaa tämä toiminto olisi käyttää kahta taulukkoa vanhempi-lapsi-suhteessa. Yhdessä taulukossa (Parent) olisi luettelo homonyymeistä, niiden määritelmät ja myös rivitunnus. Tätä rivitunnusta käytetään avaimena "alitaulukkoon", joka sisältää sanat ja niiden kontekstisanat.

Tätä olisi helpompi kysyä (ja ylläpitää) kuin alkuperäistä suunnittelua.

Suositeltava: