megahal
1.0.0
MegaHAL は学習型おしゃべりボットです。
コマンドライン アプリケーションとして実行することも、独自のアプリケーションに埋め込んで、単純な API 経由で呼び出すこともできます。たとえば、MegaHAL とオンラインでチャットできる megahal-server リポジトリを参照してください。
これは、単純な確率的予測モデルである Sooth の上に構築されています。
MegaHAL のこの新しいバージョンは、約 20 年前に私が書いたオリジナルに敬意を表して書かれました。このようにして、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 Brain のリストが表示されます。
cancel
: 選択せずに戻りますdefault
: 1998 年の Loebner コンテストで使用されたパーソナリティaliens
: エイリアンのビショップ!ferris
: フェリス・ビューラーさんご本人です!ビューラー!ビューラー!pepys
: Samuel Pepys、@samuelpepys Twitter フィードより引用pulp
:パルプ・フィクションのマーセルス・ウォレス!sherlock
: シャーロック ホームズ、すべての本から引用startrek
: スタートレックからのデータ (mbaker に感謝)starwars
: スター・ウォーズ三部作のスリーピオ! 以下は、 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」を参照してください。