Inhoudsopgave:
Video: Hoe maak je een A.I. Deel 4: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
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:
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:
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:
Hoe maak je een A.I. Deel 2: 9 stappen
Hoe maak je een A.I. Deel 2: Dit is deel 2 over de stappen die ik heb genomen om een AI op een Windows-computer te bouwen, met behulp van een gratis database, een programmeerontwikkelingstool en de gratis ingebouwde TTS-engine die bij Windows wordt geleverd. Het woord "Windows" behoort tot Microsoft.Het woord "Dra
Hoe maak je een A.I. Deel 1: 5 stappen
Hoe maak je een A.I. Deel 1: Begin met een computer met spraakherkenning en ook een tekst-naar-spraak-converter. U moet computerprogramma's kunnen schrijven die toegang hebben tot de spraakherkenning en de tekst-naar-spraak-converter. Sommige hulpprogramma's voor het ontwikkelen van toepassingen en
Hoe maak je een verstelbare helicoïde adapter voor een 85 mm projectorlens, van een polypropyleen buisconnector - Ajarnpa
Hoe maak je een verstelbare helicoïde adapter voor een 85 mm projectorlens, van een polypropyleen buisconnector: Ik heb onlangs een oude diaprojector gekocht voor ongeveer 10 euro. De projector is uitgerust met een 85 mm f/2.8 lens, die eenvoudig van de projector zelf kan worden verwijderd (er hoeven geen onderdelen te worden gedemonteerd). Dus besloot ik om het te transformeren in een 85 mm-lens voor mijn Penta
Hoe maak je een drone met Arduino UNO - Maak een quadcopter met behulp van microcontroller - Ajarnpa
Hoe maak je een drone met Arduino UNO | Maak een quadcopter met behulp van een microcontroller: inleiding Bezoek mijn YouTube-kanaal Een drone is een erg duur gadget (product) om te kopen. In dit bericht ga ik bespreken, hoe ik het goedkoop kan maken? En hoe kun je er zo zelf een maken voor een goedkope prijs … Nou, in India zijn alle materialen (motoren, ESC's
Hoe maak je PCB thuis Deel 1: 4 stappen
Hoe maak je PCB thuis Deel 1: Tegenwoordig kunnen we gemakkelijk een hoogwaardige printplaat maken, zelfs geen professionele kwaliteit, maar een goede kwaliteit voor hobbyprojecten. thuis zonder speciaal materiaal. Wat is PCB? Een printplaat (PCB) ondersteunt mechanisch en elektrisch