Kotz’i’jに恋して17

Javaに移植したTzijonikプログラムを基にJARファイルを作ってみた。

辞書や単語リストの面ではまだまだだけど、恐らく世界初のマヤ・キチェ語のChatbot、つまり人口無脳プログラムではないかなと思う。ダウンロードはココから。

辞書ファイル等を改善しつつ、アンドロイド・アプリとしての開発を始めようと思う。

LaTex:備忘録

LaTeXでスペイン語の文章を書く時はこれまでinputencパッケージを使って、アクセント文字とかを使ってきたけど、最近、出先ではSharaLaTexを使うことも多く、そうすると.texファイルを読み込む際に文字化けしてしまう。

そうするとパッケージでは対処できないのでアクセントも記号(\’aとか)を用いることとした。

でスペイン語で使う逆さまのクエスチョンマークだけどこれは

と書くそう。

10年以上LaTeXを使ってきて初めて知った。。。

JTextFieldにヒント情報を表示する方法

TzijonikプログラムをJavaに移植中。

で、JPanelを用いてGUIで作っているけど、ユーザーの入力欄に「ここにメッセージを入力する」ということを伝えるためにヒント(hint/prompt text)を表示したいを思った。

ヒント情報はテキストを入力する際には消えてくれないとヒントそのものも入力されてしまうので、そういう仕様のものを探してみた。色々探したけど、中々思った様なものが無かったので結局自分で書くことに。備忘録として残しておく。

まぁ、そんな大したものではないけど。

ポイントとしてはActionListenerインターフェイスを継承することと、addFocusListenerをオーバーライドするだけ。オーバーライドで好む仕様に変えればいい。

こんな風に出力される。ヒント情報は実際には灰色で表示させているけど、ここでは分かりやすく青で。最初はこう表示されているけど、入力しよう(つまりフォーカスされると)とすると

ヒント情報が消えてなくなる。

入力したテキストはヒント情報の色(今回の例では青)ではなく、黒で表示される。

入力欄からフォーカスが外れ、且つ入力欄に何も入力されていなければ再度ヒントが表示される。

ちなみに「tz’ij」とはマヤ・キチェ語で言葉とか単語という意味。つまり英語で言う「word」をここに入力してというヒント。

Kotz’i’jに恋して16

ここ数日間取り組んできたマルコフ連鎖による文書生成アルゴリズムをようやくTzijonikプログラムに取り入れた。重要な更新なのでバージョンを2にした。 慣れないRubyで色々とメソッドを書いたので、ttr_readerとか今まで曖昧だった部分も理解できる様になった。

コードはやはりDictionary.rbとResponder.rbへの追加修正が主。Dictionary.rbにはマルコフ連鎖関連の下記コードを追加:

 

それからResponder.rbにはマルコフ連鎖で回答を作成するクラスを追加:

 

プログラムを起動してみる。

5割の確率でマルコフ連鎖で生成された文章で返事をするようにしている。ただ、入力した文章からキーワードを拾っている訳ではないので、意味のある会話にはなりにくい。でもKotzi’ijがある程度長い返答を出来るようにはなった。

今後はキーワードを拾う仕様にすることと、文法を考慮した上でマルコフ連鎖アルゴリズムに修正を加える必要がある。ただ、そうするとマルコフ連鎖では無くなってしまうけど。

 

 

Kotz’i’jに恋して15:マルコフ連鎖(マヤ・キチェ語その2)

昨日載せたコードを少し修正してみた。辞書ファイルへの書き込みも加えた。

MarkovChain.rb

 

MarkovChainTestKiche.rb

 

辞書ファイルの読み込みはこの様に:

 

単純だけど必要なことは全てこれらのコードで出来ている。しかし、コードを見ると統計分析を行っているような書き方になっている。癖が抜けないなぁと思う。