Tartalomjegyzék:

Hogyan készítsünk A.I. 4. rész: 3 lépés
Hogyan készítsünk A.I. 4. rész: 3 lépés

Videó: Hogyan készítsünk A.I. 4. rész: 3 lépés

Videó: Hogyan készítsünk A.I. 4. rész: 3 lépés
Videó: Hogyan készítsünk lapbookot lépésről - lépésre 4 rész 2024, November
Anonim
Hogyan készítsünk A. I. 4. rész
Hogyan készítsünk A. I. 4. rész

A minap beszéltem az A. I. -vel, és azt mondtam

ez: „Felmegyek vacsorázni, STEAK -et eszünk”.

A beszédfelismerő (SR) szoftver azonban ezt úgy értelmezte, hogy „… van STAKE”

Hasonló (de más) problémába ütköztem korábban, amikor egy fényképről beszéltem, és kimondtam a „KÉP” szót. Az SR szoftver ezt „PITCHER” -ként értelmezte

A megoldás az SR szoftver egyszerű átképzése volt. (Vagy talán a kiejtésem)

De amikor kimondom a STEAK vagy a STAKE szavakat, pontosan ugyanúgy ejtem ki őket, és az SR szoftver átképzése ilyen esetekben nem segít.

1. lépés:

Egy ötlet a „Homoním probléma” megoldására.

Meg kell néznem a szót „összefüggésben”, hogy meghatározzam, melyik helyesírást kell használni. Az emberi agy ezt könnyen megteheti, és nem is tudja, hogy ezt teszi.

Ez azt jelenti, hogy a mondat más szavait megvizsgálják, és az agyad dönti el, melyik helyesírás tűnik a legjobban. Most ezt hogyan kell megtenni kódban?

Az én A. I. program a Visual Basic (VB) „Split” függvény segítségével elemzi a mondatokat egyes szavak tömbjébe. [MyArray = Split (InputSentence, "")]

A tömb minden szavát ellenőrizni lehet, hogy lehetséges homonímáról van -e szó, ha a homonimák listáját tartalmazó adatbázis -táblában keresünk.

Természetesen egy másik táblázat létrehozása azt jelenti, hogy adatokkal kell kitöltenünk, és képesnek kell lennünk a táblázatban lévő adatok karbantartására is.

Később felépíthető egy öntanuló alprogram egy csomó szöveg beolvasásához, szavak kereséséhez a Homoním táblázatomban, és más „kontextus” szavak rögzítéséhez. Hmmmmm, talán több asztalra van szükség …

Ezeknek az „utasításoknak” a megírása segít „megfejteni” egy programozási kihívás megoldását.

2. lépés:

Kép
Kép

A HomonymContext tábla felépítése

Az első ötletem egy táblázat volt, amely szavakat, alternatív írásmódokat és „kontextus” szavakat tartalmazott. Az ötlet az volt, hogy egy homonimát tartalmazó mondatban kell keresni, más szavakkal, amelyek megadják a „kontextust”, hogy a program meg tudja határozni, hogy melyik helyesírást használja. A táblázat tartalmaz egy „WordDef” nevű oszlopot is a szó definíciójának megőrzésére, ami inkább a táblát karbantartó embernek való, mint az A. I. kód.

Az egyes szavak kereséséhez használhatok VB -kódot és SQL -kódot, például…

A MyArray minden egyes szavára

Query = "Válassza ki a Word -t a tblHomonynContext -ből, ahol a word = '" & word & "'"

ha ez a lekérdezés eredményt ad vissza, akkor a szó homoníma

Következő

Ez most csak álkód - még nem írtam meg a pontos kódot, vagy nem találtam ki az összes részletet. De bátran fogadja el az ötletemet, és valósítsa meg saját kedvenc programozási nyelvével.

3. lépés:

Kép
Kép

Ha a beírt mondat homonimát tartalmaz, most megteheti

futtassa a VB kódot, amely ellenőrzi a mondat többi szavát, a lekérdezési eredmények kontextusszavaival.

Mindezt megteheti egy SQL tárolt eljárásban is, amely gyorsabban végrehajtható.

A VB „InStr ()” függvény nullánál nagyobb számot ad vissza, ha az egyik karakterlánc egy másik karakterláncban található, vagy nullát ad vissza, ha a karakterlánc NEM szerepel a másikban.

Az Instr () valójában a benne lévő karakterlánc pozícióját adja vissza. Ha csak azt szeretné tudni, hogy a String1 tartalmaz -e String2 -t, használhat olyan kódot, mint az „If InStr (String1, String2)> 0…”

Ezt a kódot a kedvenc programozási nyelvén kell elkészítenie.

A HomonymContext táblázat nem túl jó kialakítású. Sok ismétlődő adatot tartalmaz, és ezt az adatbázis-tervezők "nem normalizáltnak" tekintik. A funkció megvalósításának jobb módja az lenne, ha két táblát használna a szülő-gyermek kapcsolatban. Az egyik táblázat (A szülő) tartalmazna egy listát a homonimákról, azok definícióiról és egy sor azonosítójáról. Ez a sorazonosító kulcsként szolgál a "Gyermek táblázat" -hoz, amely tartalmazza a szavakat és a hozzájuk tartozó szavakat.

Ezt könnyebb lenne lekérdezni (és karbantartani), mint az eredeti tervemet.

Ajánlott: