MegaHAL est un chatterbot apprenant.
Vous pouvez l'exécuter en tant qu'application de ligne de commande ou l'intégrer dans votre propre application et lui faire des appels via une simple API. Par exemple, consultez le référentiel megahal-server, qui vous permet de discuter avec MegaHAL en ligne.
Il est construit sur Sooth, un modèle prédictif stochastique simple.
Cette nouvelle version de MegaHAL a été écrite en hommage à l'original, que j'ai écrit il y a une vingtaine d'années. Dans l’ensemble, la version Ruby ne représente qu’une fraction de la taille de la version C originale.
Le plus ancien enregistrement de MegaHAL que j'ai est un article USENET du 30 avril 1995, qui est reproduit au bas de ce README.
Exécuter la version en ligne de commande de MegaHAL est simple :
> gem install megahal
> megahal
+----------------------------------------------------------+
| |
| # # ###### #### ## # # ## # |
| ## ## # # # # # # # # # # |
| # ## # ##### # # # ###### # # # |
| # # # # ### ###### # # ###### # |
| # # # # # # # # # # # # |
| # # ###### #### # # # # # # ###### |
| |
| Type "/help" for options and "/quit" to terminate. |
+----------------------------------------------------------+
Greetings and salutations to thee and thine.
>
Si vous tapez /help
à l'invite, un menu s'affichera :
1. cancel
2. reset
3. brain
4. train
5. load
6. save
7. ignore
8. quit
Faites une sélection en tapant le numéro ou le nom de l'élément de menu :
cancel
: revenir en arrière sans faire de sélectionreset
: vider le cerveau de MegaHAL et le restaurer sur une table viergebrain
: choisissez parmi un certain nombre de personnalités existantes (voir ci-dessous)train
: donnez à MegaHAL un fichier texte brut pour apprendreload
: charger un cerveau préalablement enregistré à partir d'un fichiersave
: enregistre le cerveau MegaHAL actuel dans un fichierignore
: empêche MegaHAL d'apprendre des entrées de l'utilisateur ; c'est bien si vous voulez discuter sans introduire de changements dans le cerveauquit
: quittez immédiatement MegaHAL, en perdant toutes les modifications non enregistrées Si vous sélectionnez l'élément de menu brain
ci-dessus, une liste de cerveaux MegaHAL préexistants parmi lesquels choisir s'affichera :
cancel
: revenir en arrière sans faire de sélectiondefault
: la personnalité utilisée pour le concours Loebner 1998aliens
: évêque d'Aliens !ferris
: M. Ferris Bueller lui-même ! Buller! Buller!pepys
: Samuel Pepys, extrait du fil Twitter @samuelpepyspulp
: Marsellus Wallace de Pulp Fiction !sherlock
: Sherlock Holmes, avec des citations tirées de tous les livresstartrek
: Données de Star Trek (merci à mbaker)starwars
: Threepio de la trilogie Star Wars ! Voici un exemple de transcription de conversation, tirée directement du fichier megahal.log
(qui est écrit à chaque fois que vous interagissez avec MegaHAL) :
(brain changed to sherlock holmes)
MH10: On the strange coincidences, the plannings, the cross-purposes, the wonderful chains of events, working through generations, and leading to the composition of a woman.
USER: Who are you?
MH10: You could never guess how I employed my morning, or what I ended by doing.
USER: Did you play a game?
MH10: Come, Watson, come! The game is afoot.
USER: How exciting!
MH10: Isn't it gorgeous! What do you think of it.
USER: I think it's great. What are we going to do?
MH10: I think, perhaps, it is simplicity itself.
USER: Tell me then.
MH10: Your statement is, I want you?
USER: Ummm... no.
MH10: Yes, certainly.
USER: I think you're confused.
MH10: I think that you have been too busy to think of it.
USER: Are you saying what I think you're saying?
MH10: You know how to look into it.
USER: So do you by the sound of it.
MH10: I have been of material assistance to me for fifty minutes.
USER: Is this non-stop double entendre?
MH10: More than that it is a great thing for me to be able to understand that I have ever listened.
USER: Let's go and do something. Or get a bite to eat.
MH10: That is interesting.
USER: Why?
MH10: Because there are fifty who can reason analytically.
USER: Name them.
MH10: My name is Sherlock Holmes.
USER: And who are the other forty-nine?
MH10: I want to ascertain.
USER: You mean that you don't know?
MH10: Light a cigar and let me see if I can do what you have told me I think that both inferences are permissible.
USER: Well, it's been interesting. I must leave.
MH10: No crime, but a very interesting statement.
USER: Goodbye.
MH10: You must get home instantly and act.
MegaHAL Stopped
Have a weird conversation with a computer
-----------------------------------------
Recently I added a feature to my home page allowing the user to "talk" to a
computer program of mine. The program was not written very intelligently, so
most of the time its replies consisted of incoherent babble.
Version 2 came and went, and now version 3 - MegaHAL - is ready for release.
The new features of the program are:-
* A second-order markov model is used, and it is doubly-linked. This
means that the computers sentences tend to be more grammatical.
* Punctuation is supported, which segments the sentences realistically.
* The reply given by the computer is based upon one of the words in
the input string. The word selected is one that maximises the ratio
(number of times since word was last used)/(number of times word has
appeared).
* The computers reply is generated from this keyword, and may be up to
100 words long. The reply is generated in such a way that it is
impossible to get stuck in infinite loops.
* The keyword used is highlighted in the reply.
Some example conversations are given below:-
USER: you are crazy
HAL: WE *ARE* WEIRD.
USER: What is the meaning of life oh wise one?
HAL: *LIFE* IS THE ROOM.
USER: this is not getting us very far
HAL: YES I AM *GETTING* BORED OF GLOBAL DOMINATION.
USER: I have no idea.
HAL: *NO* IT IS IN HEAVEN.
USER: Is it really?
HAL: YES *IT* IS.
USER: My name is Jason.
HAL: I THINK ALAN TURING WAS A GIRLIE, JUST LIKE *MY* DEAR MAMA
The last response was generated from a combination of a discussion
about Alan Turing, and Monty Python's Lumberjack Song. Surely this
must be a sign of intelligence ;^)
Have fun!
Copyright (c) 2018 Jason Hutchens. Voir SANS LICENCE pour plus de détails.