megahal
1.0.0
MegaHAL 是學習聊天機器人。
您可以將其作為命令列應用程式運行,或者將其嵌入到您自己的應用程式中並透過簡單的 API 進行呼叫。例如,請參閱 megahal-server 儲存庫,它允許您與 MegaHAL 在線聊天。
它建立在 Sooth 之上,Sooth 是一個簡單的隨機預測模型。
MegaHAL 的新版本是為了向我大約二十年前編寫的原版致敬而編寫的。隨著這些事情的發展,Ruby 版本的大小只是原始 C 版本的一小部分。
我對 MegaHAL 的最早記錄是 1995 年 4 月 30 日的 USENET 帖子,該帖子轉載於本 README 的底部。
運行 MegaHAL 的命令列版本很簡單:
> gem install megahal
> megahal
+----------------------------------------------------------+
| |
| # # ###### #### ## # # ## # |
| ## ## # # # # # # # # # # |
| # ## # ##### # # # ###### # # # |
| # # # # ### ###### # # ###### # |
| # # # # # # # # # # # # |
| # # ###### #### # # # # # # ###### |
| |
| Type "/help" for options and "/quit" to terminate. |
+----------------------------------------------------------+
Greetings and salutations to thee and thine.
>
如果您在提示字元處輸入/help
,您將看到一個選單:
1. cancel
2. reset
3. brain
4. train
5. load
6. save
7. ignore
8. quit
鍵入選單項目的編號或名稱進行選擇:
cancel
:返回而不進行選擇reset
:清除MegaHAL的大腦,將其恢復為空白brain
:從許多現有的性格中進行選擇(見下文)train
:給 MegaHAL 一個純文字檔供學習load
:從檔案載入先前儲存的大腦save
: 將目前MegaHAL大腦儲存到檔案中ignore
:阻止 MegaHAL 從使用者輸入中學習;如果你想在不改變大腦的情況下聊天,這很好quit
:立即退出 MegaHAL,遺失所有未儲存的更改如果您選擇上面的brain
選單項,您將看到一個預先存在的 MegaHAL 大腦清單供您選擇:
cancel
:返回而不進行選擇default
:1998 年 Loebner 比賽使用的個性aliens
:來自外星人的主教!ferris
:費里斯‧布勒先生本人!布勒!布勒!pepys
:Samuel Pepys,取自 @samuelpepys Twitter feedpulp
:《低俗小說》的馬塞勒斯華萊士!sherlock
:福爾摩斯,引自所有書籍startrek
:來自《星際爭霸戰》的數據(感謝 mbaker)starwars
:星際大戰三部曲中的 Threepio! 以下是直接取自megahal.log
檔案的範例對話記錄(每次與 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!
版權所有 (c) 2018 賈森‧哈欽斯。有關更多詳細信息,請參閱“UNLICENSE”。