自動文書作成機

01/05/12
八尺

T.研究対象
 研究対象は「既に存在する文章を多数読み込ませ、キーワードを入力することで多数の文章の内容を反映させた一つの文章を作り出すプログラム」を作ることとする。
 以下、そのプログラムを“自動書機”(自動書記)と呼ぶこととする。略記としてはAut Schrift(独)よりASとし、愛称としては「こっくりさん」を推奨する。略語の元がドイツ語なのは英語は苦手というだけの理由なの気にしないでいただきたい。

 このプログラムの目指すところは、「動的文章」を作ることである。「人間が入力したそのままの文章を返す」のではなく、「内容に変わりはないのに、違う文章」を生成させたいのだ。

U.自動書機設計
 自動書機は、いくつかのパートに別れている。それは、大きく分ければ、
1.文章を読む
2.読んだものを保存する
3.過去に読んだものから文章を作成する
 の3つとなる。以下、各パートを詳しく説明する。

1.文章を読む
 ここで言う“読む”とは「文章をある単位で区切り、区切られた前後の関係等を調べる」作業を言う。
 今回採用する方法は、私が過去に製作した「言詞学・第一稿」のレポート内で紹介した視覚化技法の改造版を用いることとする。

 今回、扱う文章を日本語のみと限定し、「ひらがな」「カタカナ」「漢字」「記号(アルファベット等含む)」が句刻であるとし、連続しているそれらの文字は化合詞であると判断する。
 また、今回の視覚化技法には「必ず一つ前の文詞との関係で結合度を判断する」こととする。つまり、遙か昔に出てきた文詞との関係は考えないと言うことである。

 さらに、その視覚化構造を多重化させる。
 例を挙げると、
@__1__2
    |__3

A__1
   |_2__3

B__1__2__3

 という3つの構造があったとき、

◎__@__A
    |__B

 と表現してもよい。ということである。

 以上のルールでこのパートのアルゴリズムを(細かいところを抜かして)考えると、
0.読み込む文章の大元となる(上の例で言えば◎に相当する)ものをつくる
1.文章を一字ずつ読み込み、同じ文字グループが連続している間を一塊りとする
2.前の文詞との関係を調べ、処理する
3. 。 又は改行までをひとまとめとして、前にひとまとめにしたものとの関係を調べ、判断する
4.文章が終わったら終了。それ以外は1に戻って繰り返し

2.読んだものを保存する
 1で処理した結果をデータベースに保存する。
 現在データベースについて学んでいる最中であり、知識はあるものの実際に作ったことはないため、データベースに保存ではなく、データファイルを生成して保存することにとりあえずはなるかも知れない。

 保存されるものは
・一つの文詞(化合詞)
・その文詞の前後についた文詞(化合詞)
・構造化された文詞群の前後についた文詞群
 である。

3.過去に読んだものから文章を作成する
 保存されたデータより、文章を作成するわけだが、その前にやることがある。
 ある一つの保存された化合詞の前後についた文詞は多数ある。その頻度を出す。そしてその頻度が高い場合、それらを一つの混合詞とする。
 また、データを少なくするため、似たような文詞があった場合の処理も考え無ければならない。ただ、この処理についてはまとまっていない。

 さて、そしてようやく文章を生成する手順の説明に入る。
 ここまでで、多数の文章を読み込み、保存したとして考えると、前後の頻度だけで生成したのではやたら乱雑な文章が生まれると予想できる。そのため、サンプルとなる文章を一つ読み込ませ、その文章を視覚化し、その構造に似た文章を生成させることとする。
 そのため、サンプル文章を視覚化し、その性質をどの様に反映させるか考える必要がある。しかし今文章として書けるほどまとまっていないのが現状である。

 では仮に、サンプルの性質を表せたとしよう。これで文章を生成できる。
 キーワードを元に、それを含む文詞を探す。次にサンプル特性にもっとも合う文詞一つを探しだし、その文詞から順に特性に従って又他の文詞を探していく。
 これでは結果として出てくる文章の長さがまちまちになるので、あらかじめ設定するか、サンプルにあわせる事とする。

 以上の流れで、一度プログラムを作ろうと思う。そして、作っていく際問題が発生するはずなので、そこからまた詰めていこうと考えている。

V.補足
 思考をまとめ(というか、今何が自分の中でまとまっているかを確認す)る為に書いたので結構いい加減です。鵜呑みにしないよーに。(笑)<酒呑みつつ夜中に書いているあたり信憑性さらに減
 とりあえず必要な知識は
・認知科学(生成文法とかソートとか?)
・データベース
 ではなかろーかと。特に認知科学はかなり自分のやりたいことにあっているので、そこから気合い入れてみようかと。

 まずは一発プログラムを作ることが先決。その後に詰めていく。OK。方向確認完了。

W.追記(01/05/13)
 教授に相談に行ったところ「まずは手でやってみよう」的なこととか、他にも色々アドバイスもらって、「やっぱりそうだなー」って感じになってきたので、このレポート意味なし!

以上

<戻る>