週末文書

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

Poemachine 0.1版

今週のできごと

24日(金曜)は仕事を休み、23日(木曜)の秋分の日から日曜まで四連休にしました。しかし、妻は金曜に仕事があったのでどこかに行こうという話もでず、ウォーキングしたり、映画を見たり、プログラムに挑戦したりと相変わらずの「何もない」週末を過ごしました。

「詩を作るプログラム」の状況

今週は、「詩(のようなもの)を作るプログラム」の最初のバージョンを作成しました。

このバージョンは以下のような流れで動くものです。

  1. 辞書ファイルからランダムに単語を取り出す。
  2. 読みの拍数(モーラ)が5音もしくは7音に満たない場合は、次の語句を取り出し、接続する。
  3. モーラが5音もしくは7音となったところで、1個の語句(Clause)*1をとする。
  4. 1〜3個の語句を集めて行(Verse)とする。
  5. 1行〜5行の行を集めて詩(Poem)とする。
  6. 詩(Poem)を出力する。

5音もしくは7音の語句を並べると、五七調っぽい「詩のようなもの」に見えるのでは?という安直な考え作ったものですが、やはり無理があるようです。

試しに出力させてみるとこんな感じ。辞書は、WikipediaSF小説のあらすじや、青空文庫宮沢賢治作品から生成したものを使っています。

 #000485  By Poemachine0.1
 
エンジン語る ただしい烏 
天気回おし 公序良俗 まぶし要素で 
じまいます

多少、文法的に明らかにおかしな語句にならないよう処理してますが、まだまだ何がなんだかわからない状態です。
ここからどこまで持っていけるか。
文法面の処理と辞書の整備の二側面が出力に影響する要素だと思っています。まずは、文法面の処理でどこまでできるのかやってみるつもりです。

週末プロジェクトの記録

人工無脳プログラムの設計

  • 「元気が出る会話」とは何か決める
    • 「元気が出る会話」のパターン(その2) - 週末文書で会話のタイプを分類分けし通り、当面開発の対象とするのは以下2タイプです。
      1. とにかく肯定的なあいづちを返すタイプ
      2. 何かしら気晴らしを提供するタイプ
    • 1.の「相づち」タイプはTwitter Botを作りましたが、どうもレギュレーションに引っかかるようですのでお蔵入りしました。後日、LINE Bot化も考えようと思います。
    • 当面は、2.の「気晴らし」タイプとして、「詩を作るプログラム」に取り組んでいます。
  • 人工無脳の実装方式を決める
    • 「詩を作るプログラム」のクラス構成を考えました。
    • Poem(詩)> 行(Verse) > 語句(Clause)という包含関係でインスタンスが存在する構成になっています。

人工無脳プログラムの開発

  • プログラミング環境を整える
  • プログラミングを学ぶ
  • プログラムを設計・開発する
    • 「詩を作るプログラム」の最初のバージョンPoemachine 0.1 を作成しました。
    • 現状は意味不明な出力になってしまうので、まずは文法処理面から手を入れてみるつもりです。

人工無脳の公開

  • 公開環境を整える
    • 「週末bot」として「トレンド・キーワードからWikipediaページのリンクをツイートする」Twitter Botを動かしてきましたが、Twitterの検索対象から除外される状態が続いていました。原因は、Wipipediaという外部サイトへのリンクをツイートしているからではないかと思います。なんだか気持ち悪いので、日本全体・日本各地から一箇所・世界各地から一箇所のトップトレンドのキーワードのみ・リンクを含まない内容をツイートするよう修正して様子を見ることにしました。
  • 運用体制を整える
  • プログラムを公開する

*1:「文節」とするのが正しいような気がしますが、「文」の一部ではない単なる語の組み合わせなので、「語句」としています