週末文書

とりあえず、まぁ、週末です。

次のテーマは「詩を作るプログラム」

今週のできごと

9月に入ったところで秋雨前線停滞のような空模様となり、急に寒くなりました。
雨が止まったところを見計らってウォーキングに出ると、曇り空の下、蝉が鳴いていました。夏に取り残されたようで可哀想な感じでした。

次のテーマは「詩を作るプログラム」

「相づちくん」に「トレンドに応じてWikipedia記事を紹介」という2種類のTwitter Botを作り、作り方は一応把握したと思います。

週末プロジェクト的には、「元気が出る会話」をする人工無脳を作る、というのが大テーマです。その具体化方針の一つが「とにかく肯定的なあいづちを返す」というもので、その実装例が「相づちくん」となります。「相づちくん」のTwitter Botはレギュレーション的によろしくないようでボツにしました。これをLINE Botあたりに改造したい気もしますが、同じようなプログラムですとつまらないので、新しいタイプのプログラムに挑戦することにしました。

「元気が出る会話」のもう一つの具体化方針は、「何かしら気晴らしを提供する」というものです。これはようするに、何んらかのテキスト・メッセージを生成、それが人間から見て意表を突いたところがあればよいだろう、というようなことを意図しています。

で、意表をつくテキスト・メッセージとして「詩を作る」ということをやってみることにしました。

なぜ「詩」なのかと言えば、表現の自由度が高い詩であれば、多少不自然なものでも、それを読む人間から見て「ちょっと、おもしろい」というものが生成できるののでは?という安直な考えです。

詩を作るプログラムというと、最近の流行りは、機械学習で既存の詩や文章を学習させて「それらしい」文章を生成させる、という手法が思い当たります。まあ、機械学習について勉強するのは先の楽しみとして、当面はローテク(?)なルールベースで、言葉を組み合わせて何か出てこないかやってみようと思います。

とりあえず、今週は、

  • 言葉を扱う上で基本ツールとなるMeCabのインストール
  • 「詩を作るプログラム」の基本構成の検討
  • MeCabの使い方の練習を兼ねた辞書ファイル作成の試作

を行ったところです。

当面は、週末ごとに、この「詩を作るプログラム」について試行錯誤で取り組んで行こうと思います。

週末プロジェクトの記録

人工無脳の設計

  1. とにかく肯定的なあいづちを返すタイプ
  2. 何かしら気晴らしを提供するタイプ
    • 1.の「相づち」タイプはTwitter Botを作りましたが、どうもレギュレーションに引っかかるようですのでお蔵入りしました。後日、LINE Bot化も考えようと思います。
    • 当面は、2.の「気晴らし」タイプとして、「詩を作るプログラム」に取り組もうと思います。
  • 人工無脳の実装方式を決める
    • 「詩を作るプログラム」として下図のような大雑把な構成を考えています。

f:id:medihen:20210905181651p:plain

人工無脳の開発

  • プログラミング環境を整える
  • プログラミングを学ぶ
    • Pythonプログラミング一般:Python公式HPのPython チュートリアル — Python 3.9.4 ドキュメントを読んでいます。プログラムを書いてみるのが楽しくて、まだ「8. エラーと例外」を読み終わりました。Pythonの例外の仕組み(try-except)はC言語のalarm()のように、ハンドラ関数をいちいち定義しなくてもいいのでお手軽だと思いました。
    • 今週はインストールした MeCabになれるため、テキストを分割して辞書的なものを作ったり読み込んだりするサンプルを作って試しました。MeCabの出力をパースする部分の参考にさせてもらったのは「【Python】Mecabで形態素解析をする - Qiitaという記事です。
  • プログラムを設計・開発する
    • これから「詩を作るプログラム」に取り組んでみます。

人工無脳の公開

  • 公開環境を整える
    • 「週末bot」として「トレンド・キーワードからWikipediaページのリンクをツイートする」Twitter Botを動かしています。
  • 運用体制を整える
  • プログラムを公開する