Innholdsfortegnelse:
- Trinn 1: Hvordan lage en AI del 2
- Trinn 2: Design systemet ditt:
- Trinn 3: Funksjoner som er bygd inn i programmeringsspråket:
- Trinn 4: Kombiner innebygde funksjoner for å lage dine egne funksjoner
- Trinn 5: Hva gjør modulene? "Inndataprosessor"
- Trinn 6: "AI -prosessor"
- Trinn 7: Tabellen "output and Scores"
- Trinn 8: “Output Processor”
- Trinn 9: Fortsett å jobbe med det
Video: Hvordan lage en A.I. Del 2: 9 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Dette er del 2 om trinnene jeg tok for å bygge en AI på en Windows -datamaskin, ved hjelp av en gratis database, programmeringsutviklingsverktøy og den gratis innebygde TTS -motoren som følger med Windows.
Ordet "Windows" tilhører Microsoft.
Ordet "Dragon" tilhører Nuance.
Trinn 1: Hvordan lage en AI del 2
Velg et programmeringsspråk og få noen verktøy
Det er mange programmeringsspråk. Noen er spesialiserte for A. I. Min favoritt er Visual Basic, så det er det jeg brukte. Jeg jobber også med SQL -serverdatabaser, så jeg brukte det også.
Du kan laste ned gratis versjoner av disse fra Microsofts nettsted. Bare søk etter "EXPRESS" på Microsofts nettsted. [Visual Studio Express og SQL server Express]
Andre språk du kanskje vil ha for oss er: Python, C#, C ++, Java, Prolog, Lisp, IPL
og mange andre. AIML er et "Markup Language" som er veldig interessant.
Jeg ønsket et bedre "talegjenkjenning" -program enn det som følger med Windows, så jeg kjøpte DRAGON -programvaren. Jeg bruker standard "Tekst-til-tale" -programmet som fulgte med Windows.
Trinn 2: Design systemet ditt:
Del de store prosjektene dine i en haug med mindre prosjekter. Jeg delte programkoden min i moduler.
Jeg delte koden min i forskjellige moduler slik at en bestemt funksjon er lettere å finne.
Jeg har moduler som heter "Process Input", "Process AI", "Process Output", "User Interface" og noen få andre. Noen av funksjonene mine må være tilgjengelige for alle de andre kodemodulene, så jeg legger disse funksjonene i en "vanlig" modul der alt deles
Trinn 3: Funksjoner som er bygd inn i programmeringsspråket:
Ulike språk kan ha forskjellige navn på disse, men alle språk på høyt nivå har lignende funksjoner.
LCase eller ToLower: Konverterer en streng til alle små bokstaver. Jeg konverterer alt til små bokstaver før jeg foretar et databasesøk-selv om det meste er "ufølsomt"-bare for sikkerhets skyld.
Erstatt: Erstatt en streng inne i en streng i en annen streng. Du kan erstatte en streng med en tom streng “” for å bli kvitt den. Jeg blir kvitt punktum, spørsmålstegn, kommaer og andre skilletegn.
Split: Deler opp en streng i individuelle stykker og legger dem i en matrise. Denne funksjonen vil dele en streng på et hvilket som helst tegn, eller "skilletegn". Jeg delte en setning på et "mellomromstegn" "" for å lage en rekke ord. Dette kalles "Tokenizing" av AI Gurus.
Jeg bruker de enkelte ordene til å bygge spørringer som brukes til å søke i databasen. (Mer om dette i min neste artikkel)
Trinn 4: Kombiner innebygde funksjoner for å lage dine egne funksjoner
Dette er et "visuelt grunnleggende" eksempel. Bruk programmeringsspråket til å bygge noe slikt.
Selvfølgelig må du skrive mye kode og bygge mange funksjoner ved å bruke programmeringsspråket du ønsker.
Trinn 5: Hva gjør modulene? "Inndataprosessor"
Det kan være hundre forskjellige måter å stille AI det samme spørsmålet. For eksempel; "Hva er klokken?", "Har du tid?" "Vet du hva klokken er?", "Kan du fortelle meg nåværende tid på dagen?" Siden brukeren bare ber om tiden, konverterer jeg hvilken som helst av disse inngangene til en enkelt utgang kalt "Forespørselstid" ved hjelp av en "oppslag" -tabell i databasen.
Du kan skrive kode for å gå gjennom en tabell til den finner et treff, eller hvis du bruker en SQL -database, kan du skrive en SQL -spørring, som …
"Velg Output fra TableName hvor Input = '" uansett'"
… Og så sender jeg utgangen, “Forespørselstid”, til neste kodemodul; "Prosess AI"
I tillegg til spørsmål, er det mange måter å si "Hei"
Hei, hallo, hva skjer, hei, hola, hvordan går det ?, hilsener, velkommen, hilsener, hei ….
Alle disse er redusert til "Hilsen"
Når AI -prosessoren ser "Greeting" sender den "Greeting" til utdataprosessoren, som vil plukke en tilfeldig hilsen fra en databasetabell og snakke høyt.
Trinn 6: "AI -prosessor"
Prosess AI er den største kodemodulen. Det er så stort at jeg delte det i seksjoner også.
Inngangen kontrolleres for å se om brukeren snakket en kommando, eller stilte et spørsmål. AI kan også være i en hvilken som helst av flere "moduser", noe som betyr at "Process AI" -koden forventer at brukeren SVARER et spørsmål, i stedet for å SPØRE et spørsmål.
Hvis brukeren ikke snakket en kommando og AI ikke er i en spesiell "modus", bygger den og utfører en haug med spørringer, ut fra kombinasjoner av ordene i "ordmatrisen". Alle søkeresultatene er lagret i en tabell, og hvert spørreresultat får en "score" for hvor tett resultatet stemmer med det brukeren hadde talt. Tabellen sorteres etter poengsummen, og resultatet med den høyeste poengsummen sendes til utgangen hvis den overskrider en viss terskel. Hvis alle poengsummene er under terskelen, kan AI svare med "Jeg vet ikke" eller "Det beregner ikke"
Trinn 7: Tabellen "output and Scores"
AI -utgangen fra inputen min "Hva gjorde kyllingen?"
Trinn 8: “Output Processor”
Dette gjør flere "ikke -relaterte" ting, men de har alle å gjøre med å få teksten fra AI -prosessoren til brukeren.
Her er en liste.
1. Tekst fra databasen kan være med små bokstaver, og ikke ha noen tegnsetting.. Subroutines vil bruke den første bokstaven med store bokstaver, og sette et punktum eller spørsmålstegn på slutten.
2. En annen subrutine vil sette apostrofer tilbake i sammentrekninger, eller konvertere sammentrekninger til fulle ord (dvs. "skrå" blir erstattet med "kan ikke")
3. Tekst-til-tale-motoren uttaler ikke noen ord slik jeg liker, så "Output Processor" erstatter disse ordene med en fonetisk stavemåte. Jeg har database "slå opp" -tabeller for å holde disse, lik den i "inngangsprosessoren"
4. Hvis AI ikke finner et passende svar i databasen, kan den si "jeg vet ikke", men jeg vil ikke at den skal si dette om og om igjen og om igjen. Ekte mennesker varierer svarene sine. Så det er en tabell med "Common Output" -fraser og en funksjon som plukker en tilfeldig (og vil aldri velge den samme to ganger på rad.)
5. Den gratis "tekst-til-tale" -motoren (TTS) gir ikke en programmerer mange alternativer for måten setninger tales på, men du har litt kontroll over tonehøyden og hastigheten til fonemer. Begrepet for dette er "Prosody". Jeg la til noen "prosody" -koder i teksten i databasen min, og når "Output Processor" ser disse, justerer den tonehøyde og hastighet i TTS -motoren etter hvert som hvert ord blir sagt.
6. Noen ganger er TTS bare vanskelig å forstå, så i tillegg til å si ord høyt, viser jeg dem også med store bokstaver på datamaskinens skjerm. Denne delen av "Brukergrensesnitt" er et rutenett som viser de siste 6 linjene i en samtale (Brukerinngang og AI -utgang) og ruller opp når nye linjer legges til.
Trinn 9: Fortsett å jobbe med det
Innspillet mitt var "Ikke si det til noen"
Jeg jobber fortsatt med AI -systemet mitt, og det vil sannsynligvis aldri virkelig bli "gjort". Etter hvert som jeg legger til flere funksjoner, vil jeg skrive flere artikler.
Kanskje noen av ideene mine vil inspirere deg til å bygge en AI som er bedre enn min
Anbefalt:
Hvordan lage en A.I. Del 4: 3 trinn
Hvordan lage en A.I. Del 4: Her om dagen snakket jeg med AI -en min, og jeg sa: "Jeg går ovenpå til middag, vi spiser STEAK". Imidlertid tolket Speech Recognition (SR) programvaren dette som "… vi har STAKE "Jeg løp inn i et lignende (men annerledes) problemøre
Hvordan lage en Linux -oppstartsdisk (og hvordan du bruker den): 10 trinn
Hvordan lage en Linux Boot Drive (og hvordan du bruker den): Dette er en enkel introduksjon om hvordan du kommer i gang med Linux, spesielt Ubuntu
Hvordan lage en A.I. Del 1: 5 trinn
Hvordan lage en A.I. Del 1: Start med en datamaskin som har talegjenkjenning og også en tekst-til-tale-omformer. Du må kunne skrive dataprogrammer som har tilgang til talegjenkjenning og tekst-til-tale-omformer. Noen applikasjonsutviklingsverktøy og
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte
Hvordan lage en besteforeldres kalender & Utklippsbok (selv om du ikke vet hvordan du skal utklippsbok): 8 trinn (med bilder)
Hvordan lage en besteforeldres kalender & Utklippsbok (selv om du ikke vet hvordan du skal utklippsbok): Dette er en veldig økonomisk (og mye verdsatt!) Feriegave til besteforeldre. Jeg laget 5 kalendere i år for mindre enn $ 7 hver. Materialer: 12 flotte bilder av barnet ditt, barn, nieser, nevøer, hunder, katter eller andre slektninger 12 forskjellige stykker