Kotz’i’jに恋して5

前回のプログラムでは4つの単語からひとつをランダムに選択し回答する仕様にした。今回は単語数を93に増やしたため、単語リストを単独に作成した。また、回答もリストから選んだ単語を返すだけではなく、「~って何(Jas….?)」というも再度利用することに。

1/4の確率でJas….?を、残りの3/4の確率でリストからの単語を返す仕様にした。変更点は主にKotzij.rbのこの部分

Responder.rbの

まず、回答方法がランダムに決定され、その後単語を返すこととなった場合、単語リストから単語をひとつランダムで選択。

長くなるけどResponder.rbとKotzij.rbの全体のコードはこうなっている。Tzijonikについては日付を変えただけ。

Responder.rb

 

Kotzij.rb

プログラムを実行してみる。

現在の単語リストはこれ。会話になってないけど、少し前進してるかな。

Rubyでrequireする際の注意点

先程上げたTzijonikプログラムだけど最初

読み込みエラーが出て困った。

調べたら原因はRubyの1.9.2からはロードパスに現在のディレクトリが含まれていないらしい。調べたら現在使っているバージョンは2.3.3。

で、対処法は本にあった通り書いていたコード

に少し修正を加えた

これでしっかり読み込まれる様になった。

Kotz’i’jに恋して4

単語リストの作成も開始したのでTzijonikプログラムを更新。とは言っても今回は改悪みたいなものだけど。挨拶の後にリストにある4つの単語の内一つを答えとして用いる仕様。本にならってRubyで継承も使ってみた。結果、ファイルは3つ。

まずはTzijonik.rb

 

次にKotzij.rb

 

最後にResponder.rb

しかしRubyの継承のやり方はJavaと比べると不安になる位シンプルだなぁと思う。

Kotz’i’jに恋して2(Ruby)

昨晩、キチェ語の初日のクラスに行った。初級からの筈だったけど、キチェ語をある程度話すことがバレて少し上のレベルに。結果としていきなり単語数が100以上に。プログラム用の辞書に入力する単語が増えると、複雑になってしまうなぁ。

取り敢えずプログラムの第一弾。プログラムの名前は会話を意味する「Tzijonik」とした。この単語も授業で出たので利用することに。初めてRubyで書いたプログラム。とはいえ、「恋するプログラム」のサンプルを基にしてるけれど。これをJavaでも作成しないと。

プログラム自体は単純。Kotz’ijは礼儀正しい子なのでまずは挨拶。それから自己紹介。その後は入力された文字列に対し「何(Jas)?」と聞き返すだけ。なお、挨拶はプログラム開始時間に合わせることとした。

おはようはSaqarik

こんにちははXe’q’ij

こんばんははXokaq’ab’

さてここからKotz’ijはどんな成長をするかな。

Kotz’i’jに恋して1

キチェ語の初級コースを受講することとなった。期間としてはこの言葉は大分長い間学んできたので初めから学ぶ必要は特にないけれど、このコースを学ぼうとした理由が2つ。一つは教授がキチェ語の本を執筆した、結構有名な人で会ってみたいと思っていたからだ。

二つ目としては人工無脳や人工知能に関心がある身としては新しく学ぶ言語というのは非常に重要な素材になり得るということ。取り敢えず人工無脳プログラムを授業で学ぶ単語と文法だけで作ってみたいと思う。授業は週二回なのでその頻度でプログラムと単語リストを更新していければ。

同時にこれまでにも作成していたキチェ語の.texファイルを更新しようかな。

Kotz’i’jとはキチェ語で「花」の意味。スペイン語ではFlorという名の女性がいることから。Eliza以来の習慣に従い女性にした。「恋して」は人工無脳関連のプログラミングで有名な書籍を参考に。

言語はアンドロイドのアプリ作成を念頭においてJavaと新たにRubyで。