Obsah:

Jak si vyrobit A.I. Část 4: 3 kroky
Jak si vyrobit A.I. Část 4: 3 kroky

Video: Jak si vyrobit A.I. Část 4: 3 kroky

Video: Jak si vyrobit A.I. Část 4: 3 kroky
Video: Adel ukazala prso 2024, Listopad
Anonim
Jak si vyrobit A. I. Část 4
Jak si vyrobit A. I. Část 4

Druhý den jsem mluvil se svým A. I. a řekl jsem

„Jdu nahoru na večeři, dáváme si STEAK“.

Software Speech Recognition (SR) to však interpretoval jako „… máme STAKE“

Na podobný (ale odlišný) problém jsem narazil dříve, když jsem mluvil o fotografii, a řekl jsem slovo „OBRAZ“. Software SR to interpretoval jako „PITCHER“

Řešením bylo jednoduché přeškolení softwaru SR. (Nebo možná moje výslovnost)

Když ale řeknu slova STEAK nebo STAKE, vyslovím je úplně stejně a rekvalifikace softwaru SR v takových případech nepomůže.

Krok 1:

Jeden nápad vyřešit „problém homonym“.

Musím se podívat na slovo „v kontextu“, abych určil, jaký pravopis použít. Lidský mozek to dělá docela snadno a vy ani nevíte, že to děláte.

To znamená, že jsou prozkoumána další slova ve větě a váš mozek rozhodne, které hláskování vypadá nejlépe. Jak to nyní udělám v kódu?

Můj A. I. program analyzuje větu do pole jednotlivých slov pomocí funkce „Split“Visual Basic (VB). [MyArray = Split (InputSentence, ““)]

Každé slovo v poli lze zkontrolovat a zjistit, zda jde o možné homonymum, a to v databázové tabulce obsahující seznam homonym.

Vytvoření další tabulky samozřejmě znamená, že ji budeme muset vyplnit daty, a také budeme muset být schopni data v tabulce také udržovat.

Podprogram samoučení lze vytvořit později, aby bylo možné naskenovat hromadu textu, vyhledat slova v mé tabulce Homonym a zachytit další „kontextová“slova. Hmmmmm, možná je potřeba několik stolů …

Psaní těchto „instrukcí“mi pomáhá „zdůvodnit“řešení programové výzvy.

Krok 2:

obraz
obraz

Struktura tabulky HomonymContext

Můj první nápad byla tabulka obsahující slova, alternativní hláskování a slova „Kontext“. Cílem bylo vyhledat větu obsahující homonymum, jiná slova, která dávají „kontext“, aby program mohl určit, který pravopis použít. Tabulka také obsahuje sloupec s názvem „WordDef“, který obsahuje definici slova, což je více pro člověka, který udržuje tabulku, než A. I. kód.

K vyhledávání každého slova mohu použít kód VB a kód SQL jako …

Pro každé slovo v MyArray

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

pokud tento dotaz vrátí výsledek, pak je slovo homonymem

další

V tuto chvíli je to jen pseudo kód - ještě jsem nenapsal přesný kód nebo jsem zjistil všechny detaily. Ale klidně přijměte můj nápad a implementujte jej pomocí svého oblíbeného programovacího jazyka.

Krok 3:

obraz
obraz

Pokud vaše vstupní věta obsahuje homonymum, můžete nyní

spusťte kód VB, který zkontroluje ostatní slova ve vaší větě, s kontextovými slovy ve výsledcích dotazu.

To vše můžete také provést v uložené proceduře SQL, která se může spustit rychleji.

Funkce VB „InStr ()“vrátí číslo větší než nula, pokud je jeden řetězec obsažen v jiném řetězci nebo vrátí nulu, řetězec NENÍ obsažen v druhém.

Instr () ve skutečnosti vrací pozici obsaženého řetězce. Pokud chcete vědět, zda String1 obsahuje String2, můžete použít kód jako „If InStr (String1, String2)> 0…“

Tento kód budete muset vytvořit ve svém oblíbeném programovacím jazyce.

Tabulka HomonymContext není příliš dobrý design. Má mnoho opakovaných dat a toto návrháři databází považují za „nenormalizované“. Lepší způsob implementace této funkce by bylo použít dvě tabulky ve vztahu rodič-dítě. Jedna tabulka (Nadřazený) bude obsahovat seznam homonym, jejich definic a také ID řádku. Toto ID řádku se používá jako klíč k „podřízené tabulce“, která by obsahovala slova a jejich kontextová slova.

To by bylo snazší dotazovat (a udržovat) než můj původní návrh.

Doporučuje: