Sadržaj:

Kako napraviti A.I. Dio 4: 3 koraka
Kako napraviti A.I. Dio 4: 3 koraka

Video: Kako napraviti A.I. Dio 4: 3 koraka

Video: Kako napraviti A.I. Dio 4: 3 koraka
Video: КОНЕЦ МУЧЕНИЯМ. Трава больше не проблема! 2024, Juli
Anonim
Kako napraviti A. I. 4. dio
Kako napraviti A. I. 4. dio

Neki dan sam razgovarao sa svojim A. I., i rekao sam

ono, „Idem gore na večeru, imamo STEAK“.

Međutim, softver za prepoznavanje govora (SR) to je protumačio kao „… imamo UDJAK“

Ranije sam naišao na sličan (ali drugačiji) problem kada sam govorio o fotografiji i rekao sam riječ „SLIKA“. SR softver je ovo protumačio kao "PITCHER"

Popravka za to bila je jednostavna prekvalifikacija SR softvera. (Ili možda moj izgovor)

Ali kad izgovorim riječi STEAK ili STAKE, izgovaram ih na potpuno isti način, a prekvalifikacija SR softvera neće pomoći u ovakvim slučajevima.

Korak 1:

Jedna ideja za rješavanje “homonimnog problema”.

Moram pogledati riječ "u kontekstu" da odredim koji pravopis da koristim. Ljudski mozak to čini prilično lako, a vi ni ne znate da to radite.

To znači da se ispituju druge riječi u rečenici i vaš mozak odlučuje koji pravopis najbolje izgleda. Kako to mogu učiniti u kodu?

Moj A. I. program analizira rečenicu u niz pojedinačnih riječi koristeći Visual Basic (VB) “Split” funkciju. [MyArray = Split (InputSentence, ““)]

Svaka riječ u nizu može se provjeriti je li mogući homonim gledajući u tablicu baze podataka koja sadrži popis homonimâ.

Naravno, stvaranje druge tablice znači da ćemo je morati popuniti podacima, a također ćemo morati i održavati podatke u tablici.

Potprogram za samostalno učenje može se kasnije izgraditi za skeniranje gomile teksta, traženje riječi u mojoj homonimnoj tablici i hvatanje drugih „kontekstualnih“riječi. Hmmmmm, možda je potrebno nekoliko stolova …

Pisanje ovih "instrukcija" pomaže mi da "smislim" rješenje za programski izazov.

Korak 2:

Image
Image

Struktura HomonymContext tabele

Moja prva ideja bila je tablica koja sadrži riječi, alternativne pravopise i riječi "kontekst". Ideja je bila da se u rečenici koja sadrži homonim potraži druge riječi koje daju "kontekst", tako da program može odrediti koji će se pravopis koristiti. Tablica također sadrži stupac pod nazivom "WordDef" koji sadrži definiciju riječi, što je više za čovjeka koji održava tablicu nego A. I. kod.

Za pretraživanje svake riječi mogu koristiti VB kôd i SQL kôd poput …

Za svaku Riječ u MyArrayu

Upit = "Odaberite Riječ iz tblHomonynContext gdje je riječ = '" & riječ & "'"

ako ovaj upit vrati rezultat, onda je riječ homonim

Sljedeći

Ovo je u ovom trenutku samo pseudo kôd - još nisam napisao tačan kôd niti sam shvatio sve detalje. Ali slobodno prihvatite moju ideju i implementirajte je koristeći svoj omiljeni programski jezik.

Korak 3:

Image
Image

Ako vaša ulazna rečenica sadrži homonim, sada možete

izvršite VB kod koji će provjeriti ostale riječi u vašoj rečenici, s kontekstnim riječima u rezultatima upita.

Sve to možete učiniti i u SQL pohranjenoj proceduri, koja se može izvršiti brže.

VB “InStr ()” funkcija će vratiti broj veći od nule, ako se jedan niz nalazi u drugom nizu, ili će vratiti nulu, ako string NIJE sadržan u drugom.

Instr () zapravo vraća poziciju sadržanog niza. Ako samo želite znati sadrži li String1 String2, možete koristiti kôd poput „Ako je InStr (String1, String2)> 0…“

Ovaj kod ćete morati sastaviti u svom omiljenom programskom jeziku.

HomonymContext tablica nije baš dobar dizajn. Ima mnogo ponovljenih podataka, a dizajneri baze podataka smatraju da je to "ne-normalizirano". Bolji način za implementaciju ove funkcionalnosti bio bi korištenje dvije tablice u odnosu roditelj-dijete. Jedna tabela (Roditelj) sadržavala bi listu homonima, njihove definicije, a takođe i ID reda. Ovaj ID reda se koristi kao ključ za "podređenu tablicu" koja bi sadržavala riječi i njihove kontekstualne riječi.

Ovo bi bilo lakše upitati (i održavati) od mog originalnog dizajna.

Preporučuje se: