Wie macht das der Akinator
Das muss ich doch erwähnen. Über einen Artikel von Robert Hammerl bin ich auf den Akinator gestossen.
Der Akinator versucht durch Fragen, die man mit Ja/Nein (bzw. Zwischenstufen) beantwortet, den Namen einer Person herauszufinden, die man sich gedacht hat. Auf Roberts Blog finden sich schon etliche Kommentare mit vom Akinator erratenen Figuren bzw. mit seinen Fehlschlägen. Es ist faszinierend, wie er mit ein paar Fragen oft – auch die “abstrusten” – Personen errät.
Nachdem das nicht ganz mein Fachgebiet ist, würde mich natürlich interessieren, wie die Software geschrieben ist, die dahinter steckt. Vielleicht ist das ganze recht simpel? Oder doch ein komplexer Algorithmus?
15 Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Wie die Software tatsächlich funktioniert kann ich nicht beantworten, aber die Art und Weise der Funktion ist ganz gut ersichtlich. Am Beginn stehen 1-2 allgemeine Fragen und dann dürfte der Akinator aufgrund der bisherigen Spiele und seinen Vorgaben eine Vermutung haben (sieht man auch an der Darstellung des Akinators). Diese versucht er dann durch weitere fragen zu verifizieren. Dieses Spielchen wird so lange wiederholt bis alle vermeintlich notwendigen Fragen richtig beantwortet werden, dann gibt der Akinator einen Tipp ab.
Gut war das z.B. bei der Band “Die Ärzte” zu erkennnen. Wir haben versucht die drei Bandmitglieder jeweils aus dem Akinator herauszukitzeln – und es hat funktioniert.
Eigentlich ist (wie ich denke) das system ganz einfach:
Akinator hat eine riesige Daten mit Antworten für alle Fragen für jede Person. Per Ausschlussverfahren lässt sich dann immer Genauer bestimmen, wer gesucht ist.
Wenn zum Beispiel bei jeder Frage 50% der Datensätze ja und 50% der Datensätze nein sind und man 10 Fragen hat, so bleiben nur noch 0,098% der Datensätze übrig. Bei 10000 Datensätzen sind das also nur noch 9,8 Person. Nun kann man aber davon ausgehen, dass es nicht immer nur 50% Wahrscheinlichkeiten sind und der Computer immer die Fragen nimmt, wo er die höhsten Chancen hat, die mögliche Gruppe an Personen zu verkleinen. Dies macht diese hohe Zielgenauigkeit aus. Alles reine Mathematik.
Nur kann ich mir nicht vorstellen, dass jmd diese Datenbank füttert – und das noch mit personen, die nicht wirklich bekannt sind… z.b. ein zürcher party-löwe, carl hirschmann… oder ein fussballer in einem zürcher fussballclub, richi cabanas… alles gleich erkannt.
Das müssten ja milliarden von Daten sein!
Also wie gehts?
Keine weiß es genau. Aber anzunehmen ist: Der Akinator stellt Fragen und versucht daraus eine Auswahl bzw. eine richtige Lösung zu bieten. Schafft er das nicht, hast du die Möglichkeit einzutippen, wer denn die gesuchte Person gewesen ist.
So hat wohl jemand den Party-Löwen genannt. Akinator hat nun den Namen und auch deine vorherigen Antworten. Überall dort, wo du ja gesagt hast kann der Akinator nun diese Eigenschaften dem Party-Löwen zuordnen. Und schon hat er eine neue Persönlichkeit mit entsprechenden Eigenschaften für die nächsten Anfragenden parat.
Das Ganze ist natürlich ein wenig komplexer aber vom Prinzip her könnte es so funktionieren.
Auf alle Fälle ist eine gute Datenbank im Hintergrund, die wir alle mit unseren Antworten befüllen eine wichtige Grundlage für gute Antworten.
Interessanter Ansatz. Aber wie kommt der Akinator zu strukturierten Informationen.
Könnte der Akinator das, könnten die Betreiber doch glatt eine intelligente Suchoberfläche für Google anbieten. So könnte ich dort Fragen wie “Wann hat x Geburtstag” oder “Ist x Schauspielerin” absetzen und eine Antwort erhalten.
Aber wer weiß, was da noch alles kommt ;)
ich denke mal der akinator wurde so programmiert, wie oben schon gesagt worden ist, nämlich in verbindung mit google. die 1te bis 5te frage wird erstmal geprüft, ob die person ein schauspieler oder musiker oder politiker ist. mal angenommen es is ein politiker dann kann man ja bei google einfach “politiker” eingeben aber es kommen zich millionen antworten von google also grenzt der akinator die auswahl ein “is die person über 25?” bei ja sucht er nur die politiker raus die ü 25 sind, es bleiben x politiker. wieder grenzt der akinator die auswahl ein “is sie weiblich?” und wieder 100 000 weniger. jetzt fängt der akinator die person genauer herraus zufinden, indem er fragen stellt “is sie schon tot?” oder “hat die person einen novell preis erhalten” manchmal treffen die fragen genau ins schwarze manchmal aber total daneben und der akinator googlet weiter^^
die datenbank muss nicht groß sein, da google die meiste arbeit erledigt .
schwierig für den akinator sind personen die entweder in einer größeren grp (musikband zb) sind … nehmen wir tokio hotel als beispiel: sind geschwister und fast im selben alter. der akinator wird einen von denen erraten aber vll den falschen, man kann danach zwar weiter raten lassen und der akinator wird mit sicherheit bei google einfach gucken wer noch in der band ist und dann einen nach dem anderen vorschlagen.
mfg paddy
ps: denkt einfach ma an tick trick und track ;) dann wirds schwer für ihn ^^
ich denke, das das so nicht klappen kann, denn das was du beschreibst klingt für mich verdächtig nach einer nahezu menschlichen KI. der akinator müsste dann ja sämtliche suchergebnisse analysieren, also mit deinem beispiel mit den politikern müsste er ja aus den ergebnissen sämtliche namen von politikern rausfiltern… das ist schwer zu meistern und wenn dem so wäre, dann wären ganz andere möglichkeiten offen, als “nur” der akinator…
ich denke auch, das es einfach eine datenbank ist, die sich ständig durch die eingaben der user vergrößert…
Wie auch immer das mit der Datenbank realisiert sein mag, ich möchte zu einem anderen kniff kommen, den die software drauf hat:
zum teil kommt der akinator mit zu wenig informationen aus und liegt trotzdem richtig. das liegt daran, dass verbindungen zwischen verschiedenen suchen hergestellt werden. zb: wenn ich nach pablo escobar suche, brauche ich dannach für zb george jung nur noch wenige fragen beantworten, weil die thematisch nun mal zusammenpassen.
viel spass beim ausprobieren :P
Ich wundere mich ein wenig, dass noch niemand auf die Idee gekommen ist, es könnte eine logische (also deklarative) Programmiersprache (PROLOG, SCHEME u.a.) dahinterstecken. Die zugehörige Wissensbasis (zumindest in Prolog wird der Quelltext so genannt) ist dann die
erweiterbare Datenbank.
Die Verwendung von Google würde ich hier eher bezweifeln.
Ich denke auch, dass eine eigene Datenbank vorliegen muss. Es ist ja so, dass wenn man es in seltenen Fällen schafft, schlauer als er zu sein, sofort so eine Frage Seite kommt. Da kann man den Namen, passende Fragen etc. eintragen. Die User ergänzen also sein Wissen
lg MrZweifler
Der Akinator hat so es ausschaut eine eigene Datenbank. Die sich durch die Benutzer erweitert Wenn er 3 mal falsch lag, fragt er nach dem namen. Ihr könnt den dann eingeben. Und wie es scheint speichert er die vorherigen Fragen dazu. Ich habe mal den Test gemacht und “Kapitän Stoppel” aus ALFRED J. KWAK angelegt da er ihn nie gefunden hatte. Nach dem ich ihn angelegt habe fand er ihn wieder nicht, da andere Fragen, bei erneuter Eingabe. Beim Wieder anlegen aber hatte ich Ihn in der Auswahl. Die Fragen werden dann erweitert. Habe das Spiel 4 mal gemacht dann hatte er ihn.
Sprich das Ding lernt von uns.
;)
Ich hab jetzt nicht alle Antworten gelesen.
Aber ich bin mir zu 99% sicher das er nicht über Google geht. Wie auch? Dafür braucht man ein sehr gutes Textanalyse Tool.
Der Punkt ist die Schiere Masse an Daten die dahinter steht.
25 Millionen Spiele. Und täglich kommen mehrere 10 000 hinzu.
Und der Punkt ist wirklich das wenn er falsch rät das er dann die Möglichkeit gibt einen Character aufzunehmen.
Der Rest beruht auf Wahrscheinlichkeiten und einem sehr guten Algorythmus, und der Kern is schlicht die Masse an Daten. Und durch jeden Versuch eine Person sich auszudenken bei der der Akinator falsch liegt macht ihn besser.
Die Schwierigkeit liegt eher in dem Bereich woher kommen die Fragen. Aber ich denke hier ist die Antwort auch leicht. Ein guter Satz an Standardfragen für den Ausgangssatz.
Geschlecht, Alter, Tot, Beruf, Comicfigur…
Und bei Figuren die neu hinzukommen und oft falsch geraten werden manuelle Recherche und das einfügen einer neuen Frage die hilft ihn zu Kennzeichnen. Da gehe ich von Handarbeit aus.
Ich hab gestern an den Dönermann gedacht und er wurde nicht gefunden, stattdessen hat er mir den Pizzamann vorgeschlagen und als ich nicht zufrieden war den Taxifahrer mehrfach.
Es gab aber insgesamt schon 80 Versuche mit dem Dönermann.
Desto öfter versucht wird eine Figur zu finden, desto feiner sind die Informationen und desto schneller und besser findet er die Figur.
Alleine eine Tatsache spricht fürs manuelle Nacharbeiten. Die Bilder. Eine Automatische Verwendung von Google Bildern ist rein aus rechtlichen Gründen nicht möglich.
akinator ist ein expertensystem, siehe: http://de.wikipedia.org/wiki/Expertensystem . die firma, von der akinator stammt stellt sonst medizinal-expertensysteme her.
das ganze ist rein datenbankbasiert, und gar keine magie. mit mehreren constraints für jede mögliche antwort kann man sich das ganze relativ einfach nachprogrammieren-würde wohl sogar mit mysql gehen. das ganze scheint mit php programmiert zu sein, wobei das auch nur der wrapper zu einem c/java-programm sein kann. aber von der komplexität gut mit php möglich.
die datenmenge die er jedoch bereits hat ist beachtenswert. wobei auf wikipedia z.b. viel mehr steht, so schwer ist es für die anwendung nicht, an neue daten zu kommen.



3 Trackbacks
Trackback-URL für diesen Eintrag