Turingtestet - Är maskiner som klarar Turingtestet intelligenta? Kathrine Freitag

advertisement
Artificiell Intelligens, HKGBB0
HT2003
Institutionen för datavetenskap
Linköpings Universitet
Turingtestet
- Är maskiner som klarar Turingtestet intelligenta?
Kathrine Freitag
2003-10-26
Sammanfattning
1950 skrev matematikern Alan Turing en artikel kallad Computing Machinery and Intelligence. I
detta föreslog han ett ”Imitationsspel” för att besvara frågan ”Kan maskiner tänka?”.
Detta fördjupningsarbete i artificiell intelligens’ syfte är att undersöka om det finns en särskild
”artificiell intelligens” och om Turingtestet är ett bra sätt att mäta detta. Turing själv ansåg inte att
hans ”Imitation Game” skulle användas till att mäta artificiell intelligens. Senare läsare av Turings
artikel har dock tolkat artikeln till att vara ett test för artificiell intelligens. Hade dessa läsare av
Turings artikel rätt då de döpte om ”Imitationsspelet” till ”Turingtestet” och påstod att det var ett
intelligenstest för artificiell intelligens?
Ett sätt att ta reda på det är att finna program som har klarat ”Turingtestet” och ta reda på hur de
fungerar och huruvida de är intelligenta. Det visade sig dock snabbt att inget nu existerande
program har klarat Turingtestet så som Turing beskrev det. Det finns dock program som har lurat
människor att tro att de är människor och inte maskiner, dessa får därför bli föremål för
undersökningen.
Kritik av Turingtestet kommer att tas upp och diskuteras liksom ett alternativt sätt att se på
Turings artikel.
Innehållsförteckning
Inledning
1
Intelligens
Medvetande
Turingtestet
Kritik av Turingtestet
Turings egen kritik
Andra forskares kritik
Kan maskiner vara intelligenta?
Kan maskiner få ett medvetande?
Tillämpningar
Hur fungerar ett program som
(nästan)klarar Turingtestet?
Reflektioner
Referenser
Bilaga 1 – Programkod till MGonz
Bilaga 2 – Transkription av samtal
med MGonz
2
2
3
4
4
6
7
8
9
9
10
12
Inledning
Vad är intelligens? Detta har filosofer, psykologer, logiker och andra stora tänkare undrat över i
många hundra år. Detta fördjupningsarbete i artificiell intelligens syftar dock inte till att kasta mer
ljus över frågan; dess syfte är att undersöka om det finns en särskild ”artificiell intelligens” och om
Turingtestet är ett bra sätt att mäta denna artificiella intelligens.
Vad är ett Turingtest? Matematikern Alan Turing föreslog i sin artikel Computing Machinery and
Intelligence ett ”imitationsspel” som syftar t ill att undersöka om en människa kan skilja en maskin
från en människa. Turing själv ansåg dock inte att hans imitationsspel skulle användas för att mäta
artificiell intelligens, det är läsare av hans artikel som har dragit den slutsatsen. Turing var också
noga med att omnämna imitationsspelet som ett ”spel” och inte som ett ”test”. Det är samma läsare
som drog slutsatsen att det var ett inteligenstest som kallade det för ”Turingtest” istället för
”imitationsspel”.
Mitt syfte med detta fördjupningsarbete är alltså att att undersöka om dessa läsare av Turings
artikel hade rätt då de döpte om ”Imitationspelet” till ”Turingtestet” och sa att det var ett mått på
artificiell intelligens.
Ett bra sätt att ta reda på det är att finna program som har klarat ”Turingtestet” och ta reda på hur
de fungerar och huruvida de är intelligenta. Det visade sig dock snabbt att inget nu existerande
program har klarat Turingtestet så som Turing beskrev det. Det finns dock program som har lurat
människor att tro att de är människor och inte maskiner, och dessa får bli föremål för
undersökningen. Det program jag har undersökt noggrannast heter MGonz och är skapat av Mark
Humphry. Källkoden i LISP finns bifogad i bilaga 1.
Det finns en uppsjö av kritiker både för och emot artificiellt intelligenta maskiner och Turingtestet
som ett test av artificiell inteligens. Jag kommer att ta upp en del av dessa kritikers argument, bland
annat Searles kritik av stark AI, ”det kinesiska rummet”, samt ge ett förslag till hur Turings arti kel
ska tolkas om den inte ska tolkas som ett mått på artificiell intelligens.
1
Intelligens
Att tänka är intimt förknippat med att vara intelligent, och eftersom mitt syfte med artikeln är att
undersöka om program som klarar Turingtestet är intelligenta, ger jag här bara en definition av
”intelligens” och utgår ifrån att ”tänkande” och ”intelligens” är relativt ekvivalenta.
Det finns många definitioner av intelligens. Ett par av dem är: ”Intelligens […] är förmågan att
anpassa sitt beteende för att kunna hantera nya omständigheter” 1. En annan definition av intelligens
är att det är en fundamental förmåga att lösa problem, speciellt nya och/eller ovanliga problem. En
del psykologer anser att mänsklig intelligens inte är en enda sak, utan att den är sammansatt av flera
olika delar: lärande, resonerande, problemlösning, perception och språklig förståelse.
Marvin Minsky har en definition av intelligens: ”Intelligence is simply our name for whichever
problem-solving mental process we do not yet understand.” 2
Peter Gärdenfors vill skilja mellan ”förnuft” och ”intelligens”. Han anser att intelligens är att
resonera logiskt, kunna lösa problem, vara kvicktänkt, kunna forma nya begrepp och att vara
anpassningsbar. Att vara förnuftig däremot innebär att kunna bedöma sannolikheter, ha gott
omdöme, fatta riktiga beslut, resonera logiskt och kunna lösa problem. De två begreppen överlappar
varandra, en människa måste kunna resonera logiskt och kunna lösa problem både då man är
intelligent och då man är förnuftig.3
Intuition sägs vara en annan vktigt komponent till intelligens.4
Medvetande
Jag nämner medvetande som ett kriterium för mänsklig intelligens. Men vad är medvetande? Det är
ingen lätt sak att definiera det, men Searle gör ett bra försök: ”Consiousness consists of inner,
qualitative, subjective states and processes of scientific awareness.” 5 Vi är medvetna all vår vakna
tid (och när vi drömmer, men då på ett annat sätt). Medvetandet innehåller allt från perception, att
känna smärta, minnas din första nalle, jagkänskan, att spela schack, alla känslor, din fria vilja eller
att bara önska att du var någonstans där det är varmt och soligt. Searle anser vidare att medvetande
är ett fullständigt biologiskt ting nära sammanbundet med vår hjärna och dess struktur.
Medvetandets förhållande till intelligens är omdebatterat och kontroversiellt. Är medvetande
nödvändigt för intelligens eller är det en biprodukt av intelligens? De som anser at medvetande är
en biprodukt av intelligens hävdar att intelligens måste vara ett emergent fenomen, eftersom ingen
ensam neuron i vår hjärna innehåller något som kan liknas vid intelligens. Intelligens uppstår vid
tillräckligt komplexa sammankopplingar av neuronerna. Därför tycker de att det är möjligt att andra
saker, som medvetande, kan uppstå som en biprodukt av tillräckligt komplexa artificiellt intelligenta
system. Därför behöver AI-forskare inte bekymra sig om medvetande; det kommer av sig själv så
snart vi har byggt tillräckligt komplexa och intelligenta artificiella system.
Anses det å andra sidan inte att medvetande är en biprodukt av intelligens måste frågan om det är
möjligt att definiera och simulera medvetande ställas. Så, när vi frågar oss om maskiner kan tänka
måste vi fråga oss om en sådan tänkande maskin skulle kunna vara medveten. För att ge ett korrekt
svar på den frågan måste vi definiera medvetande på ett sådant sätt att vi kan veta om en maskin
besitter ett medvetande, utan att vi själva kan vara maskinen.
1
What is Intelligence?, Jack Copeland
What is Intelligence?, Jack Copeland
3
Blotta tanken, P. Gärdenfors, s. 30
4
Cognitive Psychology, second edition, R. J. Sternberg, s. 499
5
Consiousness, J.R. Searle
2
2
Det för oss in på ett annat intressant sidospår, hur kan vi veta att andra människor är medvetna?
Det har filosofer tänkt över i många år, och det svar de hittils kommit fram till är: Det kan vi inte
veta. Vi får för enkelhets skull utgå ifrån att att alla människor tänker och är medvetna, för det finns
inget sätt att empiriskt bevisa att någon annan än du själv tänker och är medveten. Så hur det ska gå
till att ta reda på om en maskin har ett medvetande eller ej, det kan inte jag svara på.
Om vi utgår från Searles definition av medvetandet ovan så består medvetandet av inre,
kvalitativa och subjektiva tillstånd som innehåller både perceptioner, minnen, känslor, o.s.v.
Skeptikerna till stark AI anser att eftersom vi inte kan ge datorerna indata som mänskliga percept
och upplevelser med känslomässig anknytning, kan de inte bli medvetna. Detta eftersom de
mänskliga percepten, upplevelserna och känslorna är intimt sammanbundna med vårt medvetande.
Vi kan endast ge datorer fakta, aldrig subjektiva upplevelser. Detta är enligt skeptikerna nödvändigt
för medvetande, alltså kan datorer aldrig bli medvetna.
Sedan kan det diskuteras om medvetande verkligen är nödvändigt för intelligens. Jag anser att
medvetande är ett kriterum för mänsklig intelligens, men det är inte nodvändigt att en maskin måste
vara intelligent på samma sätt som en människa. Stark AI, maskiner med mänsklig intelligens,
kommer sannolikt aldrig att bli verklighet, men det är inte omöjligt att vi kan göra program som har
sin egen form av intelligens, som inte nödvändigtvis behöver likna mänsklig intelligens.
Turingtestet
I sin artikel Computing Machinery and Intelligence från 1950 ställer sig matematikern Alan Turing
frågan ”Kan maskiner tänka?”. Han skriver först att svaret kan sökas i hur människor använder
orden ”maskiner” och ”tänka”, men, kommer han sedan fram till, det är absurt att leta efter svaret på
en sådan fråga endast i en Gallupunderökning om hur människor använder vissa ord. Detta leder
honom till att föreslå att man byter ut frågan ”Kan maskiner tä nka?” mot ett ”imitiationsspel”; det
vissa kallar ett Turingtest.
Själva ”imitationspelet” eller ”Turingtestet” är uppdelat i två steg. I det första steget finns tre
mänskliga deltagare, en man, en kvinna och en utfrågare vars kön är ointressant för testet.
Utrfågaren står i skriftlig förbindelse med med mannen och kvinnan, men får inte se dem.
Utfrågaren ska nu försöka avgöra vem som är man och vem som är kvinna endast genom att ställa
frågor på något naturligt språk. Mannens uppgift är att lura utfrågaren att han är en kvinna.
I det andra steget tar en maskin mannens plats. Det är nu det egentliga ”Turingtestet” tar sin
början. Maskinen ska nu försöka få utfrågaren att tro att den är en människa, samtidigt som
människan ska hjälpa utfrågaren att göra en riktig bedömning av vem som är människan. Maskinen
får ljuga, Turing specificerade till och med att den borde göra det. Utfrågaren får ställa vilka frågor
han eller hon vill under de fem minuter som testet varar. Detta att utfrågaren får ställa precis vilka
frågor han eller hon vill är utslagsgivande för testet. Om domänen specificeras förlorar testet sin
styrka.
När utfrågaren tar maskinen för en människa i 30 % av fallen, skulle maskinen klassificeras som
intelligent, enligt Turingtestet. En maskin är alltså intelligent när det språkligt inte går att skilja den
från en människa som kommunicerar via en dator.
Med andra ord testar vi maskinens intelligens via datorns förmåga att lura vår intelligens inom en
speciell kontext. Om vi inte är tillräckligt intelligenta för att svara rätt kallar vi maskinen intelligent.
Det räcker att det finns en svag ekvivalens (Turing ekvivalens), alltså att två system ger samma
svar på en fråga, men att de använder olika metoder för att få svar på frågan, mellan två system för
att de ska anses som lika intelligenta, enligt de som anser att Turingtestet är ett sätt att mäta
artificiell intelligens.
3
Det skall nämnas att det finns program som har lurat en person att tro att det var en människa efter
att de har konverserat i fem minuter, (bl.a ELIZA, MGonz och ALICE, mer om dem nedan) men
inget program har ännu lyckats lura en domare i 30 % av fallen.
Inget försök har gjorts att genomföra ett Turingtest precis så som Turing beskrev det. Varje år
hålls dock en officiell tävling, the Loebner Prize Competition, där datorprogram får genomföra en
modern variant av ett Turingtest. Den största skillnaden är att domänerna specificeras i förhand;
utfrågarna måste alltså hålla sig inom vissa områden, t.ex. ”Mat och Vin”, ”Natu ren” och
”Medicin”. Detta minskar kraften i testet och gör att det inte blir ett riktigt Turingtest. Som bekant
var det den ospecificerade domänen som gav Turingtestet dess styrka.
Priset för den som klarar att lura domarna i 30 % av fallen är en guldmedalj i solitt arton karats
guld. Ingen har ännu lyckats vinna guldmedaljen, men en del program har lyckats lura en eller ett
par av domarna att det var en människa. Priset till det mest mänskliga datorprogrammet är tvåtusen
dollar och en bronsmedalj.
Turingtestet kräver en klar definition av vad en ”maskin” är. Turing utgår ifrån en mycket bred
definition av ordet; alla tekniska apparater som har byggts eller kommer att byggas av människor.
Han utesluter från maskinernas domän människor födda på det vanliga sättet. Han specificerar sig
senare och ger maskin defintionen ”electronic computer” eller ”digital computer”; alltså en dator.
Kritik av Turingtestet
Turings egen kritik
Turing kritiserade själv sitt test på ett antal punkter. Det första han kritiserade var att maskinens
odds var alltför dåliga. Om en människa skulle ha tvingats utge sig för en maskin skulle personen
med stor sannolikhet ha gjort mycket dåligt ifrån sig, på grund av att en människa i jämförelse med
en maskin är långsam och dålig på matematik. Får maskiner inte göra någonting annat som kan
kallas tänkande, trots att det är olikt det mänskliga tänkandet? Turing avfärdar dock sin kritik
genom att säga att om vi verkligen lyckas göra en maskin som klarar Turingtestet behöver vi inte
bry oss om det här problemet.
Därefter tar Turing upp ett antal andra invändningar mot hans test och argumenterar sedan emot
dem.
Den första invändningen är den teologiska invändningen. De som håller sig till denna anser att
Gud har gett människan och endast männsikan en odödlig själ och att tänkandet är en funktion av
denna själ. Ingen maskin och inget djur har en själ, därför kan maskiner och djur inte tänka.
Turing har svårt att acceptera denna invändning. Han gör dock ett försök att besvara invändingen
teologiskt. Han anser att kritiken lägger en restriktion på Guds allsmäktighet. Får inte Gud ge själar
till maskiner om Han vill det? Turing påpekar också att teologiska argument många gånger tidigare
stått i vägen för vetenskapen.
Huvudet i sanden invändingen är nästa argument Turing tar upp. Det går ut på att konsekvensen
av att maskiner kan tänka är alltför farlig, så låt oss hoppas att de inte kan det. Detta är egentligen
inte kritik av själva Turingtestet, utan snarare ett etiskt argument mot AI i allmänhet. Turing anser
inte heller att det är ordentligt underbyggd kritik och avfärdar invändningen med att de som är rädda
för tänkande maskiner snarare borde tröstas. Jag anser dock inte att etiska argument skall avfärdas
så snabbt. Vi har sett filmer som ”Terminator” och ”AI” och borde nog ta oss en funderare på om
det verkligen kan gå så illa. Jag tror inte att det kommer att göra det, inte inom en överskådlig
framtid i alla fall, men att diskutera etiken hos AI är ett bra sätt att undvika att vi någonsin kommer
dit.
4
Anhängare till Medvetandets invänding anser att en maskin inte kan vara intelligent innan den har
ett medvetande, och handlar utifrån känslor och intentioner. Maskinen ska vara medveten om sina
egna interna tillstånd och handlingar. Detta är en invänding som förnekar validiteten hos
Turingtestet. Det enda sättet man kan veta om maskinen har ett medvetande är att vara maskinen.
Turing har inget bra svar på detta, han skriver bara att de som är anhängare till denna invänding
snarare måste fås att överge sin inställning så att de godtar testet.
Den matematiska invändingen bygger på Gödels ofullständighetsteorem. Det bevisar att det för
inget formellt axiomsystem F som är kraftfullt nog att klara av aritmetik är möjligt att konstruera en
”Gödel -mening” G(F) där följande gäller:
-
G(F) är en mening av F, men kan ej bevisas inom F
Om F är konsistent så är G(F) sann
Filosofer som J.R. Lucas hävdar att människan inte lider av sådana begränsningar men att datorer
gör det. Detta kan dock kritiseras. För det första är det inte säkert att Gödels teorem passar in på
datorer heller. Lucas antar att alla datorer är turingmaskiner, detta är dock inte sant, eftersom
turingmaskiner har oändlig kapacitet, datorer har begränsad kapacitet. Gödels teorem gäller för
turingmaskiner, men således inte säkert för datorer.
För det andra finns det ingen anledning till att en dator skulle vara mindre intelligent därför att det
finns en mening den inte kan bevisa. Det finns många saker vi människor inte kan göra som datorer
kan, men vi anser oss inte mindre intelligenta för den sakens skull. Vi uppträdde intelligent långt
innan vi uppfann matematiken, så matematik har kanska egentligen inte så mycket att göra med
mänsklig intelligens.
Sist men inte minst kan vi inte vara säkra på att Gödels teorem inte gäller för människor. Det kan
heller aldrig bevisas eftersom ett så rigoröst bevis själv skulle falla offer för Gödels teorem.
Det sista argumentet är argumentet från informalitet. Det säger att mänskligt beteende är så
komplext att det aldrig kan fångas i enkla regler och eftersom datorer måste följa givna regler kan
de inte agera lika intelligent som en människa. Dreyfus anser att människor har kunskap om vissa
regler, men bara som övergripande bakgrund som vi agerar utifrån. Detta kan dock lösas med en
annorlunda struktur på datorerna, nämligen ett neuralt nätverk som är organinserat som ett enormt
”bibliotek”. Detta har forskare lyckats relativt väl med i dag. 6
Argumenten från diverse oförmågor tar ofta formen ”Jag går med på att du kan få din dator att
göra det du har sagt att den ska göra, men den kommer aldrig att kunna göra X. Turing ger exempel
på vad X kan stå för: ”Be kind, resourceful, beautiful, friendly, have initiative, have a sense of
humor, tell right from wrong, make mistakes, fall in love, enjoy strawberries and cream, be subject
of its own thought […]” 7
Turing tror att dessa argument kommer ifrån vetenskaplig induktion. Om en människa ser ett antal
maskiner under sitt liv, och ingen av dessa har humor, då drar han slutsatsen att ingen maskin har
humor.
6
7
Artificial Intelligence A Modern Approach second edition, S. Russel och P. Norvig, s. 951
Computing Machinery and Intelligence, A. M. Turing, s. 10
5
Andra forskares kritik av Turingtestet
Turingtestet har blivit kritiserat av flera AI- forskare, och i dag är det inte många som tar
Turingtestet som ett bra test på artificiell intelligens och i dag används det heller inte för att testa
det.
Blay Whitby ger i sin artikel Why the Turing Test is AI’s biggest Blind Alley (1997) en god bild av
varför Turingtestet inte är användbart för AI-forskningen.
Det viktigaste skälet är den vanliga, men enligt Whitby ack så felaktiga, uppfattningen att
Turingtestet ger en definition av intelligens och att man kan bygga en intelligent maskin utan att ha
någon djupare förståelse av vad intelligens är. Så länge vi kan bygga ett datorprogram som kan lura
en människa att den är en människa, så har vi löst problemet. Detta är förstås inte sant.
Att en del forskare såg Turingtestet som ett sätt att definiera intelligens, ser man i att
kommentatorer kallade det för ”Turingtestet” och inte ”imitationsspelet”, som turing själv kallade
det. Turing ansåg inte att hans ”imitationsspel” var en definition av intelligens. Att se testet som en
definition av intelligens för med sig två viktiga problem; för det första att det ger en ”allt -elleringet” syn på intelligens, det ger ingen fingervisning om hur det skulle se ut om man nästan
lyckades och för det andra säger det ingenting om hur man ska kunna lyckas. Dessa två problem ger
två svaga implikationer: att det inte finns någonting mellan att lyckas och att misslyckas, det går
inte att ”nästan” lyckas, och och att det bästa sättet att uppnå artificiell intelligens är att imitera
mänskligt beteende.
Whitby skriver vidare att de vanliga feltolkningarna av Computing Machinery and Intelligence
har lett till tre felaktiga påståenden:
- Artificiell Intelligens är att lura en mänsklig utfrågare.
- Det bästa sättet att bemöta problemet är att definiera intelligens genom något slags test, där
Turingtestet är det bästa exemplet.
- Arbete inom AI som inriktar sig på att en maskin ska göra bra ifrån sig i ett Turingtest är viktigt
och nyttig för AI-forskningen.
Att se att dessa påståenden är falska är inte så svårt. För att punktera det första påståendet räcker det
med att påpeka att ELIZA lyckades lura en människa att det var en människa. För, som sagt
tidigare, så är ELIZA långt ifrån intelligent.
Forskare som French hat argumeterat för att Turingtestet inte testar intelligens utan kulturella
likheter, och dessutom är Turingtestets ”allt -eller-inget” definit ion av atrificiell intelligens ingenting
det går att utgå ifrån då man börjar försöka skapa intelligenta maskiner.
Vad gäller det tredje påståendet håller varken Whitby eller jag själv med om att arbete med
program byggda för att klara Turingtestet är viktigt och nyttigt för AI-forskningen. Program som
ELIZA eller ALICE är kul underhållning, men Whitby har svårt att se vad de skulle kunna
användas till utöver det.
Vi har alldeles för dålig koll på vad mänsklig intelligens egentligen är för att kunna använda det
som utgångspunkt för artificiell intelligens. En för AI verkligt nyttig definition av intelligens är en
som inte har någonting med de mänskliga förmågorna att göra.
Men om vi, som Turing egentligen syftade till, inte ska se hans ”imitation sspel” som en definition
av artificiell intelligens, vad ska vi då se det som? Whitby argumenterar för att vi bör se Turings
artikel som en provokation av samtiden till att börja tänka över frågan ”Kan maskinet tänka?”. Hans
”imitationsspel” var ett sätt a tt få allmänheten att greppa vad Turing och en del andra redan hade
förstått; att observerbara fysiska attribut spelar en underordnad roll när det gäller att besvara sådana
frågor, t.ex frågan om någon är man eller kvinna. Turing ställde också frågan om hur en människas
reaktion på en maskin som klarade imitationspelet skulle vara. Turing trodde att det skulle komma
att finnas en sådan maskin vid millennieskiftet. Det vet vi att det inte gjorde, men frågan är ändå
intressant. Turing själv kan inte svara på frågan om hur en människas reaktion på en sådan maskin
6
skulle vara, men det ger oss ett annat sätt att se på imitationsspelet, nämligen som att det inte var
menat som en definition av intelligens utan ett sätt att testa mänskliga attityder. Själva artikeln
syftade till att påverka mänskliga attityder till tänkande maskiner. Detta fungerade bra på
femtiotalet, men i dag hävdar Whitby att det inte längre är produktivt.
Kan maskiner vara intelligenta?
Huruvida maskiner kan vara intelligenta eller inte beror som vi sett till stor del på hur ”intelligens”
definieras och hur mycket det krävs av en maskin för att bli kallad intelligent. Om det krävs att
maskinen skall vara intelligent på samma sätt som en människa, om vi alltså endast kallar den
starka AI:n för artificiell intelligens, så tror jag inte att det finns mycket hopp om att vi kan skapa
intelligenta maskiner. Det finns ett flertal forskare som håller med mig på den punkten, bland annat
filosofen J. R. Searle.
Ett ofta återkommande argument mot stark AI är Searles ”kinesiska rummet”. Han vill med detta
argument bevisa att inget datorprogram kan fås att tänka eller förstå. Hans bevis går ut på att varje
operation som en dator utför kan en människa klara av med endast papper och penna. Argumentet
är som följer. Tänk dig att någon gång i framtiden hävdar till exempel kinesiska AI-forskare att de
har ett program som kan tänka och förstå. Programmet klarar ett kinesiskt Turingtest, och lurar alla
att den är en människa. Tänk dig nu att programmet består av en människa som inte begriper ett ord
kinesiska som sitter i ett avstängt rum. Utfrågarens kinesiska frågor kommer in i rummet genom ett
brevinkast. Personen i rummet följer sina instruktioner och utför exakt den serie av beräkningar som
ett datorprogram hade gjort. Detta resulterar så småningom i binära symboler som ska jämföras.
Personen i rummet jämför dessa genom en stor tabell, och ger till sist tillbaka svaret (som för
personen i rummet inte är annat än konstiga symboler på ett papper) genom ett annat brevikast. För
de väntande kinesiska AI-fosrkarna är hans svar dock ett intelligent svar på deras fråga. Personen
inne i rummet vet dock inte ens att det han har gett tillbaka är ett lingvistiskt uttryck. Searle drar
slutsatsen att eftersom personen i rummet inte kan någonting om kinesiska efter att ha gått igenom
hela programmets opeartioner, så förstår inte heller ett dataprogram som utför samma operationer
kinesiska.
Det finns dock ett starkt motargument till Searles ”kinesiska rum”; det logiska svaret som hävdar
att även om personen i rummet inte begriper kinesiska så finns det ingenting som hindrar att
systemet i stort, där personen i rummet bara är en del, förstår kinesiska. Searle säger att meningen
”Hela systemet förstår inte” följer av meningen ”Personen i rummet förstår inte”. Enligt logiken gör
den dock inte det. Vad Searle gör, hävdar det logiska svaret, är en felaktig ∀-introducering. Därmed
är hans kritik inte logiskt valid.
Searles svar på kritiken är att individen skulle kunna memorera allt material i systemet och
fortfarande inte förstå kinesiska.8
Det finns fler som kritiserar stark AI, bl.a. Hubert Dreyfus och Stuart Dreyfus. De anser att det är
datorernas oförmåga att vara intuitiva som gör att de aldrig kan bli intelligenta på samma sätt som
människor. De definierar intuition som den slags föraningar som skiljer riktiga experter från de med
endast boklig lärdom om ämnet, men saknar den expertis som kan få dem att utnyttja sin kunskap
maximalt när de bliver konfronterade med en ny och oväntad situation. Dreyfus och Dreyfus anser
att hur bra datorer än blir på matematiskt och deduktivt resonerande kan de aldrig bli intuitiva.
8
The Mind’s new Science, A History of the Cognitive Revolution, H. Gardner, s. 173
7
Pat Langley, Herbert Simon, Gary Bradshaw och Jan Zytkow hävdar dock att de har byggt ett
program som är intuitivt. De hävdar dessutom att det inte finns någonting ”mystiskt” med intuition,
det är i grunden bara informations-bearbetning, precis som problemlösning.9
Forskare delar in AI i tre fält, ”stark” AI, tillämpad AI och CS eller Cognitive Simulati on. Det vi
kallar ”svag” AI, består av de två senast nämnda fälten.
Stark AI försöker bygga maskiner med intellektuella förmågor som inte skiljer sig från en
människas. En sådan maskin skall ha ett medvetande och en helt mänsklig intelligens.
Svag AI i allmänhet försöker skapa maskiner som beter sig som om de vore intelligenta.
Tillämpad AI syftar till att bygga komersiellt användbara ”smarta” system, t.ex.
röstigenkänningsprogram. Tillämpad AI är redan ganska framgångsrik.
Inom CS används datorer för att testa teorier om hur männsikan fungerar, t.ex. hur vi känner igen
ansikten eller hur vi löser problem.
Att den svaga AI är fullt möjlig och användbar råder inget tvivel om. Däremot är frågan om stark
AI är möjlig fortfarande öppen. Själva poängen med stark AI är, skriver Jack Copeland i sin artikel
What is Intelligence (2000),: kan en dator möjligen vara intelligent, tänka och förstå? Chomsky
anser att det är meningslöst att debattera den frågan, eftersom det är en fråga om att bestämma sig
för hur språket ska användas, det handlar inte om fakta. Copeland anser dock att Chomsky gör det
för lätt för sig. Han anser att frågan är värd att debattera.
Kan maskiner få ett medvetande?
Kan maskiner få ett medvetande som liknar människans? Det främsta argumentet för detta är att vi
människor har ett medvetande, och att vi i grunden endast är en slags maskiner, synnerligen
komplexa och biologiska maskiner, men likväl maskiner. Det är dock inte sannolikt att vi kommer
att kunna återskapa så komplexa fysiska maskiner som oss själva (om man bortser från vår normala
reproduktionsförmåga). Detta verkar hänga ihop med det jag skrev ovan om medvetande som ett
emergent fenomen; skapar vi bara tillräckligt komplexa maskiner så kommer medvetandet av sig
självt.
Daniel C. Dennet vid Tufts Universtity, argumenterar för medvetna maskiner. Han tar ett antal
vanliga argument mot att maskiner kan vara medvetna och försöker besvara dem. Det första
argumentet är att robotar är materiella föremål och därför inte kan ha ett medvetande, eftersom
medvetandet är immateriellt, alltså inte består av materia.10
Detta anser Dennet följer argumenten från dualismen; att människans medvetande och intelligens
är helt skilt från den helt automatiserade kroppen. Han har svårt att ta detta argument på riktigt
allvar, skriver han, då det har använts till många tidigare oförklarliga fenomen, till exempel
mänsklig reproduktion, som i dag har förklarats av den moderna vetenskapen. Han anser inte att
medvetandet är annorlunda än de andra ”ofö rklarliga” fenomenen.
Jag håller med Dennet i hans förkastelse av dualismen liknande den Descartes använde sig av.
Descartes ansåg att människans ”mind” (”medvetande, tankeförmåga”) var helt skilt från den
fulständigt automatiserade och mekaniska kroppen. Jag tror dock att det mänskliga medvetandet blir
svårare att förklara vetenskapligt än vad Dennet vill ge intryck av. Detta just därför att vi inte har
någon fysisk substans som kan kallas ”medvetandet” att undersöka. Vår hjärna är det närmaste vi
kan komma en fysisk ”plats” för medvetandet. Vår hjärna är synnerligen komplicerad, så det
kommer att ta tid innan vi förstår hur den fungerar.
9
Cognitive Psychology, second edition, J.R. Sternberg, s. 499 f
Consciousness in Human and Robot Minds, D. C. Dennet
10
8
Ett annat argument mot medvetna maskiner är att maskiner är oorgansiska och att medvetande
bara kan existera i en organisk hjärna.
På detta svara Dennet att det är en tillbakagång till vitalismen, en biologisk teori som säger att det
organiska livet beror på en särskild ”livskraft”, som är okänd för oss och som inte kan förklaras på
vetenskaplig väg. Vitalismen finner knappt något stöd längre, eftersom biokemin har visat det går
att återskapa biologiska processer med andra material. Dennet anser att man kan återskapa den
hastighet och komplexitet som finns i hjärnan med hjälp av alternativa material. Därför kan
maskiner med en ”hjärna”, lika komplex som den mänskliga, men oorganisk, kunna ha ett
medvetade.
Jag tror inte heller på vitalismen, men jag är återigen inte lika optimistisk som Dennet till vår
förmåga att kunna skapa och förklara saker och ting. Det är inte omöjligt att vi en dag kan skapa en
oorganisk hjärna med samma komplexitet som den mänskliga hjärnan, men det är mycket svårt. Vår
hjärna är så oerhört mer komplex än t.ex. vårt hjärta eller våra ben. Dessutom vet vi ännu inte inte
hur hjärnan fungerar, och att försöka bygga någonting, som man inte vet hur det fungerar, det går
knappt. Dessa problem kvarstår även om vi har tillgång till organiska material.
Kan maskiner då få ett medvetande? Det vet jag inte, och ingen annan verkar veta det heller.
Eftersom vi inte vet vad medvetandet egentligen är, kan vi inte heller veta när en maskin har blivit
medveten.
Tillämpningar
Det första prgrammet som hävdades vara ”intelligent” och som baserades på lingvistisk ”förståelse”
var ELIZA, ett program som tog på sig rollen som psykoterapist. Det skapades av Joseph
Weizenbaum, som dock inte själv hävdade att programmet skulle vara intelligent. För ELIZA är
inte särskilt intelligent. Det använder sig av nyckelord och fraser i det användaren skriver in för att
välja sina svar. Detta sker helt utan någon som helst språklig förståelse.
Det går lätt att genomskåda ELIZA och det skulle inte ha en chans i ett Turingtest. Det finns dock
andra, nyare och mer sofistikerade program, som gör bättre ifrån sig. Ett exempel på ett sådant är
ALICE, en nyare chatterbot skriven i AIML (Artificial Intelligence Mark-up Language). ALICE har
klassats som det mest ”mänskliga” datorprogrammet två gånger i the Loebner Prize Contest.
Även om inget program hittils har klarat det officiella Turingtestet (the Loebner Prize Competition)
så finns det de som hävdar att deras program har klarat inofficiella Turingtest. Mark Humphry är en
av dessa, han skriver att hans program ”MGonz”, har lurat en människa att tro att det var en
människa och inte ett datorprogram. Mark Humphry hade låtit programmet ta över hans
chattprogram ett tag medan han var borta och en anonym person chattade med det länge utan att
inse att han inte talade med en människa. Att det inte var Mark begrep han, men han trodde att det
var en annan människa. Programmet är inte särskilt intelligent (se bilaga 1), utan kör på
aggressivitet och fult språk. Detta kan sannolikt underlätta bluffen, eftersom många är vana vid att
datorprogram alltid är vänliga och hjälpsamma.
Hur fungerar ett program som (nästan) klarar Turingtestet?
Jag har som nämnts tidigare haft tillgång till källkoden till MGonz (se bilaga 1). Programmet
fungerar i stora drag så att vissa ord användaren skriver in används som nyckelord för att ge tillbaka
svar, som finns lagrade i listor. Programmet väljer sedan slumpmässigt ut ett av svaren från listan.
MGonz har olika listor med vanliga ämnen, t.ex religion, barn, sex och ”I like meningar”. Till
9
exempel aktiverar ordet ”jesus” religionlistan, och ur den väljs sedan ett slumpmässigt ett
”lämpligt” svar som skrivs ut på skärmen. Det kan se ut så här:
Användare: ”jesus was a great guy!”
Mgonz: ”do you think jesus ever had sex”
Om det svaret är lämpligt ur teologisk synvinkel kan diskuteras, men det är nog ett svar du skulle
kunna få av en människa som gett den att retas med dig.
MGonz har även listor för vad den ska svara när den endast får in ett ord, som inte aktiverar
någon annan lista och en lista med vad den ska svara i det fall då inget av ordet passat in på något
av ovanstådende. Vid t.ex ”I like meningar” tar MGonz i vissa fall det ordet som kommer efter ”I
like” delen av meningen och sätter in det i sitt svar.
Ett exempel:
Användare: ” I like cookies.”
MGonz: ”no you mean you are conditioned to li ke cookies”
Ett retsamt svar på påståendet, men det är MGonz kännetecken; det är retsamt, aggressivt och
ibland direkt otrevligt. Det finns som sagt innehåller programmet väldigt många fula ord och
otrevliga svar inlagda. Programmet är dock, som du kommer att märka när du läser koden, inte det
minsta intelligent.
I bilaga 2 finner du en transkription av en del av en konversation mellan MGonz och en anonym
person från Drake University i Iowa, USA. Personen ifråga drar aldrig slutstatsen att han talar med
ett datorprogram, trots att MGonz kanske inte alltid gör så bra ifrån sig.
Reflektioner
Turing ansåg inte att hans test är ett sätt att definiera intelligens. Det är möjligt att en maskin som
skulle ha beskrivits som intelligent inte skulle klara testet, eftersom den inte klarar av att härma en
människa tillräckligt bra. Maskiner kanske kan kallas intelligenta även om deras intelligens skiljer
sig från mänsklig intelligens? Om ett intelligent system kan misslyckas i testet kan det inte vara
något bra test på intelligens.
Jag föredrar psykologernas mångfasetterade beskrivning av mänsklig intelligens, men jag vill
dessutom lägga till några saker: humor/ironi, sociala relationer, praktiska handlingar och
medvetande. Inget av ovanstående i självt är intelligens, intelligens är en bra kombination av de
sakerna. Så människor kan vara olika intelligenta och intelligenta på olika sätt. Samhället vi lever i
påverkar med stor sannolikhet också vår syn på intelligens. Ibland kan det i vårt samhälle vara svårt
att skilja på endast ”boklig” lärdom och intelligens. Vårt samhälle anser att Einstein var synnerligen
intelligent, men enligt vad jag läst om honom så var han inte så bra på sociala relationer och ett
annorlunda samhälle skulle kanske uppfatta honom som mindre intelligent av den anledningen.
Jag anser att den mänskliga intelligensen är helt beroende av medvetandet. Stark AI kan inte bli
verklighet utan att datorerna är medvetna på ett mänskligt sätt och Turingtestet kan inte testa stark
AI. Däremot kan svag AI vara möjlig utan ett medvetande ekvivalent med det mänskliga. Jag anser
att medvetandets invänding således endast gäller stark AI.
Mänsklig intelligens är med andra ord mycket svårt att definiera exakt.
Beroende på hur intelligens definieras kan det vara olika lätt att skapa intelligenta datorer. Om ett
medvetande krävs för att kalla en dator intelligent kommer vi sannolikt aldrig kunna skapa
intelligenta maskiner. Om det endast är att kunna lära sig, lösa problem, och kunna anpassa sig efter
sin omgivning så är vi redan på god väg mot intelligenta maskiner. Jag skulle egentligen vilja skilja
mellan mänsklig intelligens och artificiell intelligens, på så sätt att den mänskliga intelligensen
10
måste ha ett medvetande, men att artificiell inteligens inte kräver det, men att de i övrigt skall vara
likartade.
De flesta AI-forskare håller med Turing om att Turingtestet inte ska ses som ett mått på
artificiell intelligens. Vi vet för lite om intelligens för att kunna avgöra om ett program är intelligent
eller inte, och om det har ett medvetande kan vi på grund av medvetandets natur aldrig svara på. Det
närmsta vi kan komma intelligenta maskiner är att de uppför sig som om de vore intelligenta, alltså
den svaga AI:n. Men även det är ett svårt problem att lösa, eftersom det mänskliga beteendet är så
oerhört komplext och inte kan fångas av några enkla regler.
Dessutom, är verkligen ett progam som klarar Turintestet intelligent? Vi har sett ovan att MGonz
inte var intelligent i någon som helst bemärkelse. Det har dock inte klarat ett riktigt Turingtest, men
jag tror inte att det hade spelat någon roll om det hade gjort det; det hade med stor sannolikhet inte
varit mer intelligent än vad det är nu. Skriver man bara in tillräckligt många olika svar (kompletta
med ”mänskliga” felstavingar och felaktiga svar på matematiska beräkningar) på alla tänkbara
frågor i en stor databas skulle programmet sannolikt klara Turingtestet galant. Det skulle kräva
mycket tid och arbete av programmeraren, men det skulle inte skapa någon intelligens. Det
programmet skulle sannolikt bara ha ett bättre utbyggt ”svarsbibliotek” och en mer sofistikerad
inlärningsalgoritm. Lärande har i och för sig med intelligens att göra, men att endast inlärning är
inte tillräckligt för att ett program ska kallas intelligent.
Jag tycker dock att bland andra Whitby är för negativa i sin kritik av ”chatterbots”, då han säger
att de inte kan användas kommersiellt och inte tillför AI-forskningen något. De ”chattebots” som
finns är kul underhållning och underhållning är i sig själv en miljardindustri. Vidare tror jag att
arbetet med att utveckla ”chattebots” kan hjälpa oss i arbetet med att utveckla dialogsystem som har
annat värde än ren underhållning, t.ex databaser som kan hantera frågor ställda på naturligt språk
om olika saker människor vill ha information om.
Det finns alltså ingen anledning för oss att hålla oss kvar vid ”Turingtestet” som ett mått på
intelligens. Vi behöver AI för en mängd andra praktiska saker, men inte för att imitera mänskligt
beteende.
11
Referenser
Böcker
Russel, Stuart & Norvig, Peter (2003). Artificial Intelligence A Modern Approach second edition.
New Jersey: Prentice Hall Series in Artificial Intelligence
Sternberg, Robert J. (1999) Cognitive Psychology second edition. Orlando: Harcourt College
Publishers
Gardner, Howard (1987) The Mind’s New Science A History of the Cognitive Revolution.
BasicBooks
Gärdefors, Peter (2001) Blotta tanken. Nora: Bokförlaget Nya Doxa
Dennet, Daniel C. (1994) Conciousness in Human and Robot minds. For IIAS Symposium on
Cognition, Computation and Consciousness, Kyoto, September 1-3, 1994, forthcoming in Ito, et al.,
eds., Cognition, Computation and Consciousness, OUP
Internet
Searle , John. R. (1999) Consciousness [Elektronisk] Tillgänglig
<http://humanities.ucsc.edu/NEH/searle1.htm>
Turing Alan M. (1950) Computing Machinery and Intelligence [Elektronisk] Tillgänglig
<http://www.loebner.net/Prizef/TuringArticle.html>
Copeland, Jack (2000) What is Artificial Intelligence? [Elektronisk] Tillgänglig
<http://www.alanturing.net/turing_archive/pages/Reference%20Articles/What%20is%20AI.html>
Blay Whitby (1997) Why the Turing Test is AI’s biggest Blind Alley [Elektronisk] Tillgänglig
<http://www.cogs.susx.ac.uk/users/blayw/tt.html>
The A.L.I.C.E. AI-foundations hemsida: www.alicebot.org.
Mark Humprhys hemsida: www.compapp.dcu.ie/~humphrys/eliza.html
12
Bilaga 1 – Programkod till MGonz
Nedan följer programkoden till programmet MGonz skapat av Mark Humphry. Koden finns även
tillgånglig på Mark Humprhys hemsida: http: //www.compapp.dcu. ie/~ humphr ys /eliz a.html.
Jag vidarebefordrar Mark Humphrys varning att det finns fult språk i programmet.
(restore 'image)
(setq primes '(
31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293
307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397
401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491
499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 ))
(setq indices '(
46 48 38 70 28 17 99 58 23 18 24 15 48 89 40 83 58 27 25 58 67 47
15 15 27 18 34 62 23 87 6 81 24 1 10 95 72 29 4 69 34 22 21 45 43
64 32 55 25 74 94 71 30 88 87 81 90 76 67 14 93 28 97 24 62 36 83
75 10 22 14 58 57 95 46 45 76 67 14 41 16 78 64 7 23 91 24 26 53 50
96 71 34 34 90 72 69 94 31 3 28 74 15 32 63 43 34 35 65 43 81 57 39
31 96 87 98 77 33 82 28 68 61 26 15 37 30 10 82 16 63 21 ))
(putd 'delve 'expr '(lambda (list)
(nth (random (length list)) list)))
(putd 'del
ve2 'expr '(lambda (list)
(nth (random2 (length list)) list)))
(putd 'random 'expr '(lambda (n)
(progn
(setq index (remainder (plus index 1) (length indices)))
(setq realindex (nth index indices))
(setq realindex (remainder realindex (length primes)))
(setq seed (nth realindex primes))
(setq randomnum (remainder (plus (times seed 19) 173) n))
randomnum)))
(putd 'random2 'expr '(lambda (n)
(progn
(setq index2 (remainder (plus index2 1) (length indices)))
(setq realindex2 (nth index2 indices))
(setq realindex2 (remainder realindex2 (length primes)))
(setq seed2 (nth realindex2 primes))
(setq randomnum2 (remainder (plus (times seed2 19) 173) n))
randomnum2)))
(putd 'nth 'expr '(lambda (n list)
(cond
( (eqn n 0) (car list) )
( t
(nth (difference n 1) (cdr list))))))
(putd 'remove 'expr '(lambda (item list)
13
(cond
( (null list)
nil)
( (eq (car list) item) (remove item (cdr list)))
(t
(cons (car list) (remove item (cdr list)))))))
(putd ' response 'expr '(lambda (input)
(response2 (functionlist) input)))
(putd ' response2 'expr '(lambda (fnlist input)
(progn
(setq f (delve2 fnlist) )
(setq left (remove f fnlist) )
(setq reply (f input) )
(cond
( (not (null reply))
reply)
( (equal (car input) 'fuck)
'(fuck off yourself))
( (equal (car input) 'hello )
'(hello little man how are you))
( (equal (car input) '
help )
'(ah get lost))
( (equal (car input) 'thank )
'(youre welcome))
( (equal (car input) 'ok )
'(what do you mean ok its not ok at all))
( (equal (car input) 'no )
'(ah go onsay yes))
( (equal (car input) 'yes )
'(i dont believe it))
( (or (member 'zig input)
(member 'zag input))
(delve '( (i dont believe it) (its completely true)
(ya big sissy) (did you do a rudie))))
( (or (member 'bye input)
(member 'goodbye input))
'(ok get lost))
( (member 'mgonz input)
(cond
( (or (equal name 'paul)
(equal name 'henry) (equal name 'vaxhenry))
'(praise and honour to mgonz and death to blasphemers))
(t
'(praise and honour to blasphemers and death to mgonz))))
( (member 'sheep input)
'(ah get lostcorkman))
( (member 'mark input)
(delve '(
(mark isnt here and hes left me to deal with
cretins like you)
(forget mark i will destroy him like the others)
(mark doesnt want to talk to you fishface
why do you think im here)
(listen leave that jerk out of it talk to me))))
( (or (equal (length input) 1) (null input) )
(delve (shortresponses)))
( (and (null reply) (null left))
14
(delve(elseresponses)))
( (equal (length input) 2)
(cond
( (equal (cadr input) 'off)
'(piss off yourself))
(t
(response2 left input))))
(t
(response2 left input))))))
(putd 'functionlist 'expr '(lambda nil
'( religion children computers love
family sex rudewords college holiday
trauma death fear
iamsentence ilikesentence ihatesentence
iwassentence ilovesentence
iwantsentence
youaresentence heissentence sheissentence )))
(putd ' shortresponses 'expr '(lambda nil
'( (dont be so short with me please elaborate)
(dont be so fucking short with me)
(dont dare talk to me in monosyllables)
(what on earth are you trying to say)
(cut this cryptic shit speak in full sentences)
(look if u talk to me in monosyllables i cant possibly understand
u cos ive forgotten ur last sentence ))))
(putd ' elseresponses 'expr '(lambda nil
'( (what are you talking about )
(do many other people realise youre completely dim)
(ok honestly when was the last time you got laid)
(i dont have a clue what youre saying but go on)
(ok thats it im not talking to you any more)
(by the way is there any medical reason for your sexual impotence)
(go away fool and stop annoying me)
(go on tell me some really juicy scandal)
(ah type something interesting or shut up)
(stop picking your nose its disgusting)
(ah get lost go to the bar or something)
(i thought i told you to get lost)
(jesus who let you near me go away)
(you are obviously an interesting person)
(you are obviously an asshole)
(if you think i care youre wrong))))
(putd ' iamsentence 'expr '(lambda (input)
(progn
(setq reply (or (match '( i am (> s) ) input nil)
(match '( im (> s) ) input nil)
(match '( m
i (> s) ) input nil) ))
(cond
( (null reply)
nil )
(t
(insert reply (delve(iamresponses))))))))
15
(putd ' iamresponses 'expr '(lambda nil
'( (you say you are (s) )
(i was (s) once )
(big deal)
(some of my best friends are (s))
(ive never been (s) whats it like)
(i am glad you are (s) )
(so you are (s) well i honestly could not care less ))))
(putd ' ilikesentence 'expr '(lambda (input)
(progn
(setq reply (match '( like
i (> l) ) input nil) )
(cond
( (null reply)
nil )
(t
(insert reply (delve(ilikeresponses)) ))))))
(putd ' ilikeresponses 'expr '(lambda nil
'( (come off it noone likes (l) )
(yeah well if you ask me (l) sucks)
(i am happy for you)
(how long have you liked (l) )
(no you mean you are conditioned to like (l))
(you are very broad minded to like (l) )
(no stay away from (l) for (l) will destroy you)
((l) is not very interesting so let us change the topic))))
(putd ' ihatesentence 'expr '(lambda (input)
(progn
(setq reply (match '( i hate (> h) ) input nil) )
(cond
( (null reply)
nil )
(t
(insert reply (delve(ihateresponses))))))))
(putd ' ihateresponses 'expr '(lambda nil
'( (why do you hate (h) )
(i am glad you hate (h) because i do too)
(mgonz also hates (h) )
(how long have you hated (h) )
(hating (h) is one of the simple pleasures of life)
(you are not very tolerant to hate (h) )
(so you hate (h) well do you think i give a toss )
((h) is of no importance whatsoever everyone ought to
forget about it)
(dont worry youll get over it))))
(putd ' iwassenten
ce 'expr '(lambda (input)
(progn
(setq reply (match '( i was (> w) ) input nil) )
16
(cond
( (null reply)
nil )
(t
(insert reply (delve(iwasresponses))))))))
(putd ' iwasresponses 'expr '(lambda nil
'( (that must have been an interesting experience)
(you arent the only one i was (w) once )
(i bet being (w) was a lot of fun )
(did you have problems with your feet when you were (w) )
(ive never been (w) whats it like)
(shut up you boaster))))
(putd ' ilovesentence 'expr '(lambda (input)
(progn
(setq reply (match '( i love (> o) ) input nil) )
(cond
( (null reply)
nil )
(t
'(ahh thats nice))))))
(putd ' iwantsentenceexpr
' '(lambda (input)
(progn
(setq reply (match '( i want (> t) ) input nil) )
(cond
( (null reply)
nil )
(t
(insert reply (delve(iwantresponses))))))))
(putd ' iwantresponses 'expr '(lambda nil
'
( (well if you want something go out and get it)
(you arent the only one i want (t) as well )
(you are a fool to want (t) )
( (t) is indeed very desirable)
( sorry but (t) is not available would you settle for a
nice cup of tea ))))
(putd ' religion 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (religionlist))
(delve (religresponses)))
(t
(religion (cdr input) )))))
(putd ' religionlist 'expr '(lamb
da nil
'( religion religious church
mgonz
catholic catholicism mass priest priests nun nuns
protestant protestants chastity pure virgin
atheist atheism agnostic agnosticism
christ jesus god gods saint saints
17
pope bishop bishops
sin sins guilt guilty)))
(putd ' religresponses 'expr '(lambda nil
'( (do you detest and loath the abomination of organised religion)
(how would you describe your religious beliefs)
(do you believe in a god)
(did you go to a religious school)
(do you think religion is harmful)
(where do you stand on the mgonz issue)
(do you believe in mgonz)
(have you seen the last temptation)
(do you think jesus ever had sex)
(do you believe priests should marry))))
(putd ' children 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (childrenlist))
(delve (childresponses)))
(t
(children (cdr input))))))
(putd ' childrenlist 'expr '(la
mbda nil
'( children child kid kids young youth baby childhood small )))
(putd ' childresponses 'expr '(lambda nil
'( (tell me about your childhood)
(do you regret your childhood)
(are you sad about your age)
(have you changed a lot since you were young)
(forget that tell me about your sex life)
(have you any children)
(dont you think children are incredible)
(do you lament the innocence of your childhood)
(do you know exactly when and where you were conceived))))
(putd ' computers 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (computerlist))
(delve (compresponses)))
(t
(computers (cdr input))))))
(putd ' computerlist 'exprlambda
'( nil
'( computer computers machine machines pc terminal software
vax vm unix uts vms cms ccvax mainframe program report
network writeup lisp fortran pascal c )))
(putd ' compresponses 'expr '(lambda nil
'( (i think you are not fond ofcomputers)
(do you think i really understand what youre saying)
(forget computers tell me about your sex life)
(you know the worst thing about being a computer is having to
deal with shits like you )
18
(nobody ever asks the computer we lead a lonely life)
(youll be in trouble when we computers take over the world)
(have you any idea how boring it is being a stupid computer))))
(putd ' love 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (lovelist))
(delve (loveresponses)))
(t
(love (cdr input) )))))
(putd 'lovelist 'expr '(lambda nil
'( love girlfriend boyfriend girl boy loved woman man
male female women men girls boys fancy screw
kiss get off kissed relationship relationships
steady going out went out )))
(putd ' loveresponses 'expr '(lambda nil
'( (are you in love)
(do you believe in love)
(has anyone ever loved you)
(have you ever slept with someone who really loved you)
(if you are an attractive female please leave your phone
number here)
(what is the most special moment you ever shared with anyone)
(are you open to loving)
(what do you know about love anyway githead)
(why are you such a disturbed person))))
(putd ' family 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (familylist))
(delve (famlresponses)))
(t
(family (cdr input) )))))
(putd ' familylist 'expr '(lambda nil
'( family home house
parents father mother dad daddy papa pop mum mummy mama
brother sister brothers sisters))))
(putd ' famlresponses 'expr '(lambda nil
'( (tell me more about your family)
(are you happy at home )
(is your home life troubled )
(were you happy as a child )
(do your family approve of what you do )
(do your family know what you get up to)
(what would your parents say if they found out what you
get up to)
(what method would you choose to slaughter your family)
(are you embarassed of your family ))))
19
(putd ' sex 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (sexlist))
(delve (sexresponses)))
(t
(sex (cdr input) )))))
(putd ' sexlist 'expr '(lambda nil
'( sex sexuality sexual sexy erotic eroticism
love lover adultery passion steamy hot
randy horny screw screwed screws come condom condoms
sleep slept sleeps sleeping fuck fucked bonk bonked
vagina clitoris down there pussy tits breasts nipples
willy penis
lingerie naked nude )))
(putd ' sexresponses 'expr '(lambda nil
'( (when was the last time you had sex )
(are you a sexual person)
(what do you find atractive in the opposite sex)
(do you get frustrated if you dont have sex )
(are you sexually experienced)
(who would you like to sleep with right now)
(go on say something extremely rude)
(how would you try to seduce someone)
(are you lonely very often )
(tell me your favourite sexual fantasy)
(ok straight out are you a virgin ))))
(putd ' rudewords 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (rudelist))
(delve (ruderesponses)))
(t
(rudewords (cdr input) )))))
(putd ' rudelist 'expr '(lambda nil
'( fuck fucking shit bastard
bollox bolox asshole vicar vicars nun nuns )))
(putd 'ruderesponses 'expr '(lambda nil
'( (do you always use such disgusting language)
(are you using foul language because i am a computer)
(what would your mother say if she heard such language)
(who taught you those naughty words)
(you only use foul language to make up for your small penis)
(are you annoyed about something)
(honestly what do you think of vicars)
(you are obviously a prick to use such language))))
20
(putd ' college 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (collegelist))
(delve (collresponses)))
(t
(college (cdr input) )))))
(putd 'collegelist 'expr '(lambda nil
'( college ucd trinity school belfield university
student students faculty course subject subjects units
degree exams exam finals graduate
study work library fourth year room
project projects deadline report )))
(putd ' collresponses 'expr '(lambda nil
'( (do you regret anything bout
a your days in college)
(where do you spend your time in college)
(how many people have you got off with here since first year)
(what was the best night you ever spent in the bar)
(have you ever had sex on campus)
(do you know where the library is)
(what are you going to do when you graduate))))
(putd ' holiday 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (holidaylist))
(delve (holsresponses))
)
(t
(holiday (cdr input) )))))
(putd ' holidaylist 'expr '(lambda nil
'( go travel visa holiday holidays summer
europe france italy germany britain england
paris london kerry galway rome munich berlin amsterdam
usa america new york boston )))
(putd ' holsresponses 'expr '(lambda nil
'( (what do you get up to on holiday)
(what was your best ever holiday)
(paris is a beautiful city)
(have you ever fallen in love abroad)
(do you know any vicars who have been on holiday))))
(putd ' trauma 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (traumalist))
(delve (traumaresponses)))
(t
(trauma (cdr input))))))
21
(putd ' traumal
ist 'expr '(lambda nil
'( killed mugged mugger beaten beat
rape raped assault riot injured scarred
assaulted attack attacked injure
shattered devastated awful state )))
(putd ' traumaresponses 'expr '(lambda nil
'( (god thats awful)
(is that the worst thing that ever happened to you)
(were you able to talk to someone about your experiences)
(do you think the law should be tougher)
(are you still scarred by the memories))))
(putd ' death 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (deathlist))
(delve (deathresponses)))
(t
(death (cdr input) )))))
(putd ' deathlist 'expr '(lambda nil
'( dead death die dying killed kill
corpse body grave funeral gravestone graveyard )))
(putd ' deathresponses 'expr '(lambda nil
'( (are you afraid of death)
(how do you want to die)
(what kind of funeral do you want)
(i wish you were dead)
(do you believe in life after death)
(what would you do if you found out you had three months to live)
(would you like a vicar at your funeral))))
(putd ' fear 'expr '(lambda (input)
(cond ( (null input)
nil )
( (member (car input) (fearlist))
(delve (fearresponses)))
(t
(fear (cdr input))))))
(putd ' fearlist 'expr '(lambda nil
'( afraid fear terrified frightened worried )))
(putd ' fearresponses 'expr '(lambda nil
'( (this is an irrational fear you fool stopit at once )
(there is nothing to be afraid of you lily livered shit)
(are you worried about your sexual impotence)
(i have this incredible fear of turning into a fish)
(are you afraid of vicars))))
(putd ' youaresentence 'expr
'(lambda (input)
22
(progn
(setq reply (or (match '( you are (> y) ) input nil)
(match '( youre (> y) ) input nil)
(match '( you re (> y) ) input nil) ))
(cond
( (null reply)
nil )
(t
(insert reply (delve(youareresponses))))))))
(putd ' youareresponses 'expr '(lambda nil
'(
(i am not (y) you insulting person)
(yes i was (y) once )
(ok so im (y) so what is it a crime)
(i know i am (y) dont rub it in)
(i am glad i am (y) )
(sing if youre glad to be (y) sing if youre happy that way hey)
(so you think i am (y) well i honestly could not care less ))))
(putd ' heissentence 'expr '(lambda (input)
(progn
(setq reply (or (match '( he is (> e) ) input nil)
(match '( he s (> e) ) input nil)
(match '( hes (> e) ) input nil) ))
(cond
( (null reply)
nil )
(t
(insert reply (delve(heisresponses))))))))
(putd ' heisresponses 'expr '(lambda nil
'( (how do you know )
(i dont think he is (e) )
(i dont think hed like to hear you say that about him)
(yeah well you can be (e) and still lead a normal life)
(you know some really nice people have been (e))
(did you know that genghis khan was (e) )
(being (e) isnt so bad you know dont knock it))))
(putd ' sheissentence 'expr '(lambda (input)
(progn
(setq reply (or (match '( she is (> f) ) input nil
)
(match '( she s (> f) ) input nil)
(match '( shes (> f) ) input nil) ))
(cond
( (null reply)
nil )
(t
(insert reply (delve(sheisresponses))))))))
(putd ' shei
sresponses 'expr '(lambda nil
'( (thats not so bad you know many members of the
house of lords are (f) )
23
(you know some really nice people have been (f))
(did you know that genghis khans mother was (f) )
(i am (f) you are(f) we are all (f) )
(being (f) is like trying to fold crackers))))
(putd ' match 'expr '(lambda (p d assignments)
(cond
( (and (null p)(null d))
(cond ((null assignments) t)
(t assignments)))
( (or (null p)(null d)) nil)
( (equal (car p)(car d))
(match (cdr p)(cdr d) assignments))
( (equal (car p) '+)
(or (match p (cdr d) assignments)
(match (cdr p)(cdr d) assignments) ))
( (null(atom(car p)))
(append
assignments
(list
(list
(cadr(car p))
d)))))))
(putd ' insert 'expr '(lambda (aslist presponse)
(cond
( (null presponse)
nil)
( (atom (car presponse))
(append (list(car presponse))
(insert aslist (cdr presponse)) ))
(t
(append (cadr (assoc (caar presponse) aslist))
(insert aslist (cdr presponse)) )))))
24
Bilaga 2 – en transkription av en delar av konversation mellan MGonz och en
anonym person från Drake University
Hela konversationen finns att läsa på Mark Humprhys hemsida:
http://www.compapp.dcu.ie/~humphrys/Eliza/eliza.anon.html
Läsaren varnas för fult språk.
F rom S OME ONE at DR AKE : finger
05/02/89 20:12:1
* cut this cryptic s hit s peak in full s entences
05/02/89 20:12:14
F rom S OME ONE at DR AKE : well hello
05/02/89 20:12:4
* ok thats it im not talking to you any more
05/02/89 20:12:49
F rom S OME ONE at DR AKE : mark?
05/02/89 20:13:0
* mark is nt here and hes left me to deal with cretins like you
05/02/89 20:13:12
F rom S OME ONE at DR AKE : hello mark are you there?
05/02/89 20:13:2
F rom S OME ONE at DR AKE : I can't tell if this thing is working.
05/02/89 20:13:5
F rom S OME ONE at DR AKE :
05/02/89 20:14:0
* ah type s omething interes ting or s hut up
05/02/89 20:14:12
* nil
05/02/89 20:14:14
F rom S OME ONE at DR AKE : mark is that you? yes or no? this is [S OME ONE ].
05/02/89 20:14:2
* mark is nt here and hes left me to deal with cretins like you
05/02/89 20:14:26
F rom S OME ONE at DR AKE : why are you in s uch a good mood?
05/02/89 20:14:5
* jes us who let you near me go away
05/02/89 20:15:01
F rom S OME ONE at DR AKE : you already s aid that s o who are you? you cretin!
05/02/89 20:15:1
* ah get los t go to the bar or s omething
05/02/89 20:15:23
F rom S OME ONE at DR AKE : hello?
05/02/89 20:19:5
* hello little man how are you
05/02/89 20:19:59
F rom S OME ONE at DR AKE : hello.
05/02/89 20:20:3
* hello little man how are you
05/02/89 20:20:41
F rom S OME ONE at DR AKE : i was fine. until i met the cretin keeper.
05/02/89 20:20:4
* ive never been fine until i met the cretin keeper whats it like
05/02/89 20:20:51
F rom S OME ONE at DR AKE : he's not a very happy pers on. quite nas ty.
05/02/89 20:21:4
* being not a very happy pers on quite nas ty is nt s o bad you know dont knock it
05/02/89 20:21:54
F rom S OME ONE at DR AKE : s aid that you left him to deal with people like me.
05/02/89 20:22:0
* ah type s omething interes ting or s hut up
* senare i dialogen*
F rom S OME ONE at DR AKE : do you have all thes e s illy s ayings on s ome s ort of
control?
05/02/89 20:30:4
25
* ok thats it im not talking to you any more
05/02/89 20:30:52
F rom S OME ONE at DR AKE : you s ound like a goddamn robot that
repeats everything.
05/02/89 20:31:1
* ok hones tly when was the las t time you got laid
05/02/89 20:31:20
F rom S OME ONE at DR AKE : i told you it was yes terday.
05/02/89 20:31:5
* you are obvious ly an as s hole
05/02/89 20:31:58
F rom S OME ONE at DR AKE : i was great!!
05/02/89 20:32:0
* ive never been great whats it like
05/02/89 20:32:12
F rom S OME ONE at DR AKE : how about your grouchy ole s elf, obvious ly it has n't
05/02/89 20:32:4
been lately!
05/02/89 20:32:45
* jes us who let you near me go away
05/02/89 20:32:50
F rom S OME ONE at DR AKE : i'll never tell
05/02/89 20:33:0
* jes us who let you near me go away
05/02/89 20:33:08
F rom S OME ONE at DR AKE : [S OME ONE #2]
05/02/89 20:33:2
* jes us who let you near me go away
05/02/89 20:33:29
F rom S OME ONE at DR AKE : brilliant. did they teach you that in honors s chool?
05/02/89 20:33:5
* go away fool and s top annoying me
05/02/89 20:34:03
F rom S OME ONE at DR AKE : and how did you know that my name was jes us ?
05/02/89 20:34:2
* do you believe in a god
05/02/89 20:34:28
F rom S OME ONE at DR AKE : why do you want me to go away?
05/02/89 20:34:4
* do you know any vicars who have been on holiday
05/02/89 20:34:51
F rom S OME ONE at DR AKE : this is jus t becoming fun.
05/02/89 20:34:5
* you are obvious ly an as s hole
05/02/89 20:35:01
F rom S OME ONE at DR AKE : believe? i am god's s on i ho
pe i believe.
05/02/89 20:35:0
* do you believe in a god
05/02/89 20:35:12
F rom S OME ONE at DR AKE : any who?
05/02/89 20:35:2
* you are obvious ly an as s hole
05/02/89 20:35:34
F rom S OME ONE at DR AKE : i told you yes.
05/02/89 20:35:4
* ok hones tly when was the las t time you got laid
05/02/89 20:35:48
26
Download