Inhoudsopgave:

Hoe maak je een A.I. Deel 4: 3 stappen
Hoe maak je een A.I. Deel 4: 3 stappen

Video: Hoe maak je een A.I. Deel 4: 3 stappen

Video: Hoe maak je een A.I. Deel 4: 3 stappen
Video: De 10 ChatGPT prompts die ik dagelijks gebruik 2024, Juli-
Anonim
Hoe maak je een A. I. Deel 4
Hoe maak je een A. I. Deel 4

Laatst sprak ik met mijn A. I., en ik zei tegen:

het, "Ik ga naar boven om te eten, we hebben STEAK".

De spraakherkenningssoftware (SR) interpreteerde dit echter als "… we hebben STAKE"

Ik kwam eerder een soortgelijk (maar ander) probleem tegen toen ik het over een foto had, en ik zei het woord "FOTO". De SR-software interpreteerde dit als "PITCHER"

De oplossing hiervoor was een eenvoudige omscholing van SR-software. (Of misschien mijn uitspraak)

Maar als ik de woorden STEAK of STAKE uitspreek, spreek ik ze precies op dezelfde manier uit, en in dit soort gevallen zal het opnieuw leren van de SR-software niet helpen.

Stap 1:

Eén idee om het "Homonym-probleem" op te lossen.

Ik moet naar het woord "in context" kijken om te bepalen welke spelling ik moet gebruiken. Het menselijk brein doet dit vrij gemakkelijk, en je weet niet eens dat je het doet.

Dit betekent dat andere woorden in een zin worden onderzocht, en je hersenen beslissen welke spelling er het beste uitziet. Hoe doe ik dit nu in code?

Mijn AI programma ontleedt een zin in een reeks afzonderlijke woorden met behulp van de Visual Basic (VB) "Split" -functie. [MyArray = Split (InputSentence, " ")]

Elk woord in de array kan worden gecontroleerd om te zien of het een mogelijke homoniem is door in een databasetabel te kijken die een lijst met homoniemen bevat.

Natuurlijk betekent het maken van een andere tabel dat we deze met gegevens moeten vullen, en we zullen ook in staat moeten zijn om de gegevens in de tabel te behouden.

Een zelflerende subroutine kan later worden gebouwd om een heleboel tekst te scannen, woorden te zoeken in mijn homoniemtabel en andere "context"-woorden vast te leggen. Hmmm, misschien zijn er meerdere tafels nodig…

Door deze "Instructables" te schrijven, kan ik een oplossing voor een programmeeruitdaging "beredeneren".

Stap 2:

Afbeelding
Afbeelding

Structuur van HomoniemContext-tabel

Mijn eerste idee was een tabel met woorden, alternatieve spellingen en 'Context'-woorden. Het idee was om in een zin met een homoniem te zoeken naar andere woorden die de 'context' geven, zodat het programma kan bepalen welke spelling moet worden gebruikt. De tabel bevat ook een kolom met de naam "WordDef" om de definitie van het woord te bevatten, wat meer is voor de mens die de tabel onderhoudt dan voor de A. I. code.

Om elk woord te doorzoeken, kan ik VB-code en SQL-code gebruiken zoals …

Voor elk woord in MyArray

Query = "Selecteer woord uit tblHomonynContext waar woord = '" & woord & "'"

als deze zoekopdracht een resultaat oplevert, dan is het woord een homoniem

Volgende

Dit is op dit moment slechts pseudo-code - ik heb de exacte code nog niet geschreven of alle details bedacht. Maar voel je vrij om mijn idee te nemen en het uit te voeren met je eigen favoriete programmeertaal.

Stap 3:

Afbeelding
Afbeelding

Als uw invoerzin een homoniem bevat, kunt u nu

voer VB-code uit die de andere woorden in uw zin controleert, met de contextwoorden in de queryresultaten.

U kunt dit ook allemaal doen in een SQL-opgeslagen procedure, die sneller kan worden uitgevoerd.

De functie VB "InStr()" retourneert een getal groter dan nul, als een tekenreeks in een andere tekenreeks zit, of het retourneert nul, als de tekenreeks NIET in de andere zit.

Instr() retourneert feitelijk de positie van de ingesloten string. Als u alleen wilt weten of String1 String2 bevat, kunt u code gebruiken zoals "If InStr(String1, String2)> 0 …"

U zult deze code in uw favoriete programmeertaal moeten bouwen.

De HomoniemContext-tabel is geen erg goed ontwerp. Het heeft veel herhaalde gegevens en dit wordt door databaseontwerpers als "niet-genormaliseerd" beschouwd. Een betere manier om deze functionaliteit te implementeren zou zijn om twee tabellen te gebruiken, in een ouder-kind relatie. Eén tabel (The Parent) bevat een lijst met homoniemen, hun definities en ook een rij-ID. Deze rij-ID wordt gebruikt als een sleutel tot de "kindertabel" die de woorden en hun contextwoorden zou bevatten.

Dit zou gemakkelijker te bevragen (en te onderhouden) zijn dan mijn oorspronkelijke ontwerp.

Aanbevolen: