Obsah:

Ako urobiť A.I. Časť 4: 3 kroky
Ako urobiť A.I. Časť 4: 3 kroky

Video: Ako urobiť A.I. Časť 4: 3 kroky

Video: Ako urobiť A.I. Časť 4: 3 kroky
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Júl
Anonim
Ako urobiť A. I. 4. časť
Ako urobiť A. I. 4. časť

Na druhý deň som sa rozprával so svojim A. I. a povedal som

to: „Idem hore na večeru, dávame si STEAK“.

Softvér Speech Recognition (SR) to však interpretoval ako „… máme STAKE“

Na podobný (ale odlišný) problém som sa dostal skôr, keď som hovoril o fotografii, a povedal som slovo „OBRAZ“. Softvér SR to interpretoval ako „PITCHER“

Riešením bolo jednoduché preškolenie softvéru SR. (Alebo možno moja výslovnosť)

Ale keď poviem slová STEAK alebo STAKE, vyslovím ich úplne rovnako a preškolenie softvéru SR v takýchto prípadoch nepomôže.

Krok 1:

Jeden nápad na vyriešenie „problému s homonymom“.

Musím sa pozrieť na slovo „v kontexte“, aby som určil, ktorý pravopis sa má použiť. Ľudský mozog to robí celkom jednoducho a vy ani neviete, že to robíte.

To znamená, že sa skúmajú ďalšie slová vo vete a váš mozog rozhodne, ktorý pravopis vyzerá najlepšie. Ako to teda môžem urobiť v kóde?

Môj A. I. program analyzuje vetu do poľa jednotlivých slov pomocou funkcie „Split“Visual Basic (VB). [MyArray = Split (InputSentence, ““)]

Každé slovo v poli je možné skontrolovať v databáze, ktorá obsahuje zoznam homonym.

Vytvorenie ďalšej tabuľky samozrejme znamená, že ju budeme musieť vyplniť údajmi, a taktiež budeme musieť byť schopní udržať údaje v tabuľke tiež.

Neskôr sa dá vytvoriť samoučiaci podprogram, ktorý bude skenovať veľa textu, hľadať slová v mojej tabuľke Homonym a zachytávať ďalšie „kontextové“slová. Hmmmmm, možno je potrebných niekoľko tabuliek …

Písanie týchto „inštrukcií“mi pomáha „zdôvodniť“riešenie programovej výzvy.

Krok 2:

Obrázok
Obrázok

Štruktúra tabuľky HomonymContext

Môj prvý nápad bola tabuľka obsahujúca slová, alternatívne hláskovania a slová „kontext“. Cieľom bolo vyhľadať vo vete obsahujúcej homonymum iné slová, ktoré dávajú „kontext“, aby program mohol určiť, ktorý pravopis sa použije. Tabuľka obsahuje aj stĺpec s názvom „WordDef“, ktorý obsahuje definíciu slova, čo je pre človeka, ktorý udržiava tabuľku, viac ako A. I. kód.

Na vyhľadávanie každého slova môžem použiť kód VB a kód SQL, ako …

Pre každé slovo v MyArray

Query = "Vyberte slovo z tblHomonynContext, kde slovo = '" & slovo & "'""

ak tento dotaz vráti výsledok, potom je slovo homonymné

Ďalšie

V tejto chvíli je to len pseudokód - ešte som nenapísal presný kód alebo som zistil všetky detaily. Neváhajte však vziať môj nápad a implementovať ho pomocou svojho obľúbeného programovacieho jazyka.

Krok 3:

Obrázok
Obrázok

Ak vaša vstupná veta obsahuje homonymum, môžete teraz

spustite kód VB, ktorý skontroluje ostatné slová vo vašej vete s kontextovými slovami vo výsledkoch dotazu.

To všetko môžete tiež urobiť v uloženej procedúre SQL, ktorá sa môže spustiť rýchlejšie.

Funkcia VB „InStr ()“vráti číslo väčšie ako nula, ak je jeden reťazec obsiahnutý v inom reťazci alebo vráti nulu, reťazec NIE je obsiahnutý v druhom.

Instr () skutočne vracia pozíciu obsiahnutého reťazca. Ak chcete vedieť, či String1 obsahuje String2, môžete použiť kód ako „If InStr (String1, String2)> 0 …“

Tento kód budete musieť vytvoriť vo svojom obľúbenom programovacom jazyku.

Tabuľka HomonymContext nie je veľmi dobrý dizajn. Má veľa opakovaných údajov a toto návrhári databáz považujú za „nenormalizované“. Lepším spôsobom implementácie tejto funkcie by bolo použitie dvoch tabuliek vo vzťahu rodič-dieťa. Jedna tabuľka (Rodič) bude obsahovať zoznam homonym, ich definície a tiež ID riadka. Toto ID riadka sa používa ako kľúč k „podradenej tabuľke“, ktorá by obsahovala slová a ich kontextové slová.

To by bolo jednoduchšie dotazovať (a udržiavať) ako môj pôvodný návrh.

Odporúča: