すなぶろスマートフォン用の表示で見るすなぶろPythonistaを目指しているつもりが、Hyのおかげで無事脱線。Clojurian目指すことになりました。この広告は、90日以上更新していないブログに表示しています。しようというところまでは決めましたが、それをどう使っていくかに関しては説明していません。いうことで今回は『ランダム辞書の学習』『辞書ファイルの読み書き』をコーディングしていきます。同時にコード量も増えていくことが予想されるので、『ソースファイルの分割』についても。記述してきましたが、コードが縦に長くなると見通しが悪くなって大変です。関数の実装はもう少し増えますし、新たに辞書機能を実装する必要性も出てきました。いうファイルに分けて記述することにします。これらに加えて、あと3つのレスポンダーを追加する予定です。マルコフ連鎖アルゴリズムで文を生成するひとつずつ作っていくとして、まずはこれまでの実装をまとめましょう。"ランダム辞書が空です。書くのを忘れないようにしてください。ように『名前空間』を指定する必要が出てきます。なんて名前空間は知らん」と怒られてしまいます。公開したりと、いろんな拡張をしたりするかもしれません(このブログではやらないけど)。『遊び』を残しておきましょう。ついでにインターフェイスも改善します。追加されたところがあります。ひとつひとつ見ていきましょう。上で手動で指定してきました。さんから『こんにちはってなに?』って聞き返されたいなぁ」と思う人はたぶんいません。人は『ボットからの予期しない返答』を期待しているはずなので、話しかけるときにレスポンダーを指定するのはネタバレになってしまいます。どちらかをランダムで返す関数です。違うのは、確率を指定しているところです。10回連続で表れる可能性があり、さすがに10回も「なにそれ?」と聞き返されてはたまったものではありません。オプションを指定することで要素の偏りを表現してくれます。80%の確率で表れるよう指定しています。新たなレスポンダーを追加したら、この確率を調整して自然な会話を演出しましょう。ハイフンがついていました。これは関数を他の名前空間に公開しない、つまりプライベートなものであるということを明示しています。固有のものであり、また補助関数であるという特徴があります。呼び出されるようなことがあってはなりません。何のために名前空間を分けたのかわからなくなりますので、明示的にプライベートにしておき、あとで必要になったら新しく名前空間を作って行けば良いでしょう。オブジェクトですから、あまり人間が読むのに向いているとは言えません。先頭を大文字に変換しています。