Sisukord:

Kuidas teha A.I. 4. osa: 3 sammu
Kuidas teha A.I. 4. osa: 3 sammu

Video: Kuidas teha A.I. 4. osa: 3 sammu

Video: Kuidas teha A.I. 4. osa: 3 sammu
Video: КТО ПОСЛЕДНИЙ ВЫЛЕЗЕТ ИЗ ГРОБА ЧЕЛЛЕНДЖ **3 часть** 2024, November
Anonim
Kuidas teha A. I. 4. osa
Kuidas teha A. I. 4. osa

Teisel päeval rääkisin oma AI -ga ja ütlesin

see: "Ma lähen üles sööma, me sööme STEAKi".

Kõnetuvastustarkvara (SR) tõlgendas seda aga järgmiselt: "… meil on STAKE"

Sattusin sarnase (kuid teistsuguse) probleemini varem, kui rääkisin fotost, ja ütlesin sõna “PILT”. SR -tarkvara tõlgendas seda kui "PITCHER"

Selle paranduseks oli SR -tarkvara lihtne ümberõpe. (Või äkki minu hääldus)

Aga kui ma ütlen sõnu STEAK või STAKE, hääldan ma neid täpselt samamoodi ja SR -tarkvara ümberõpe ei aita sellistel juhtudel.

Samm 1:

Üks idee homonüümiprobleemi lahendamiseks.

Pean vaatama sõna "kontekstis", et teha kindlaks, millist õigekirja kasutada. Inimese aju teeb seda üsna lihtsalt ja te isegi ei tea, et te seda teete.

See tähendab, et lause teisi sõnu uuritakse ja teie aju otsustab, milline õigekiri tundub kõige parem. Nüüd, kuidas seda koodis teha?

Minu A. I. programm parsib lause üksikute sõnade massiiviks, kasutades funktsiooni Visual Basic (VB) „Split”. [MyArray = Split (InputSentence, "")]

Massiivi iga sõna saab kontrollida homonüümide loendit sisaldavas andmebaasitabelis, et näha, kas see on võimalik homonüüm.

Loomulikult tähendab teise tabeli loomine, et peame selle andmetega täitma, samuti peame suutma tabelis olevaid andmeid säilitada.

Iseõppiva alamprogrammi saab hiljem koostada, et skannida hunnik teksti, otsida sõnu minu homonüümide tabelist ja jäädvustada muid kontekstisõnu. Hmmmmm, võib -olla on vaja mitut lauda …

Nende juhiste kirjutamine aitab mul programmeerimisprobleemile lahendust leida.

2. samm:

Pilt
Pilt

Tabeli HomonymContext struktuur

Minu esimene idee oli tabel, mis sisaldas sõnu, alternatiivseid õigekirju ja konteksti sõnu. Idee oli otsida homonüümi sisaldavast lausest teiste sõnade kohta, mis annavad “konteksti”, et programm saaks määrata, millist õigekirja kasutada. Tabelis on ka veerg nimega “WordDef”, mis hoiab sõna definitsiooni, mis on rohkem tabelit haldavale inimesele kui A. I. koodi.

Iga sõna otsimiseks saan kasutada VB -koodi ja SQL -koodi nagu…

Iga MyArray sõna kohta

Query = "Valige tblHomonynContextist sõna, kus sõna = '" & sõna & "'"

kui see päring tagastab tulemuse, on see sõna homonüüm

Edasi

See on praegu vaid pseudokood - ma pole veel täpset koodi kirjutanud ega kõiki üksikasju välja mõelnud. Võtke aga julgelt minu idee ja rakendage see oma lemmikprogrammeerimiskeelt kasutades.

3. samm:

Pilt
Pilt

Kui teie sisestatud lause sisaldab homonüümi, saate seda nüüd teha

käivitage VB -kood, mis kontrollib teie lause teisi sõnu koos kontekstisõnadega päringu tulemustes.

Seda saate teha ka SQL -i salvestatud protseduuris, mis võib kiiremini toimida.

Funktsioon VB „InStr ()” tagastab numbri, mis on suurem kui null, kui üks string on teises stringis või tagastab nulli, siis see string EI sisaldu teises.

Instr () tagastab tegelikult sisalduva stringi asukoha. Kui soovite lihtsalt teada, kas String1 sisaldab String2, võite kasutada sellist koodi nagu „If InStr (String1, String2)> 0…”

Peate selle koodi koostama oma lemmikprogrammeerimiskeeles.

Tabel HomonymContext ei ole väga hea disain. Sellel on palju korduvaid andmeid ja andmebaaside kujundajad peavad seda "mitte-normaliseeritud". Parem viis selle funktsiooni rakendamiseks oleks kasutada kahte tabelit vanema ja lapse suhetes. Ühes tabelis (The Parent) oleks homonüümide loend, nende määratlused ja ka rea ID. Seda rea ID -d kasutatakse võtmena "alamtabelis", mis sisaldaks sõnu ja nende kontekstisõnu.

Seda oleks lihtsam pärida (ja hooldada) kui minu esialgset kujundust.

Soovitan: