Poemachine 0.1版
今週のできごと
24日(金曜)は仕事を休み、23日(木曜)の秋分の日から日曜まで四連休にしました。しかし、妻は金曜に仕事があったのでどこかに行こうという話もでず、ウォーキングしたり、映画を見たり、プログラムに挑戦したりと相変わらずの「何もない」週末を過ごしました。
「詩を作るプログラム」の状況
今週は、「詩(のようなもの)を作るプログラム」の最初のバージョンを作成しました。
このバージョンは以下のような流れで動くものです。
- 辞書ファイルからランダムに単語を取り出す。
- 読みの拍数(モーラ)が5音もしくは7音に満たない場合は、次の語句を取り出し、接続する。
- モーラが5音もしくは7音となったところで、1個の語句(Clause)*1をとする。
- 1〜3個の語句を集めて行(Verse)とする。
- 1行〜5行の行を集めて詩(Poem)とする。
- 詩(Poem)を出力する。
5音もしくは7音の語句を並べると、五七調っぽい「詩のようなもの」に見えるのでは?という安直な考え作ったものですが、やはり無理があるようです。
試しに出力させてみるとこんな感じ。辞書は、WikipediaのSF小説のあらすじや、青空文庫の宮沢賢治作品から生成したものを使っています。
#000485 By Poemachine0.1 エンジン語る ただしい烏 天気回おし 公序良俗 まぶし要素で じまいます
多少、文法的に明らかにおかしな語句にならないよう処理してますが、まだまだ何がなんだかわからない状態です。
ここからどこまで持っていけるか。
文法面の処理と辞書の整備の二側面が出力に影響する要素だと思っています。まずは、文法面の処理でどこまでできるのかやってみるつもりです。
週末プロジェクトの記録
人工無脳プログラムの設計
- 「元気が出る会話」とは何か決める
- 「元気が出る会話」のパターン(その2) - 週末文書で会話のタイプを分類分けし通り、当面開発の対象とするのは以下2タイプです。
- とにかく肯定的なあいづちを返すタイプ
- 何かしら気晴らしを提供するタイプ
- 1.の「相づち」タイプはTwitter Botを作りましたが、どうもレギュレーションに引っかかるようですのでお蔵入りしました。後日、LINE Bot化も考えようと思います。
- 当面は、2.の「気晴らし」タイプとして、「詩を作るプログラム」に取り組んでいます。
- 「元気が出る会話」のパターン(その2) - 週末文書で会話のタイプを分類分けし通り、当面開発の対象とするのは以下2タイプです。
- 人工無脳の実装方式を決める
- 「詩を作るプログラム」のクラス構成を考えました。
- Poem(詩)> 行(Verse) > 語句(Clause)という包含関係でインスタンスが存在する構成になっています。
人工無脳プログラムの開発
- プログラミング環境を整える
- プログラミングを学ぶ
- Pythonプログラミング一般:Python公式HPのPython チュートリアル — Python 3.9.4 ドキュメントを読んでいます。今週は「9. クラス」をポツポツと途中まで。
- プログラムを設計・開発する
- 「詩を作るプログラム」の最初のバージョンPoemachine 0.1 を作成しました。
- 現状は意味不明な出力になってしまうので、まずは文法処理面から手を入れてみるつもりです。
*1:「文節」とするのが正しいような気がしますが、「文」の一部ではない単なる語の組み合わせなので、「語句」としています