疑似文章作成 マルコフくん Ver1.20

1998-2007 (C) たーや


□ 目 次 □

動作環境・セットアップ

このソフトでできること

動作原理

作成の手順

設定

その他


 

 

 

 

■ 動作環境・セットアップ

 このソフトはWindows95,98,Me,2000,XP上で動作します。
 WindowsNT,Vista上での動作は未確認です。
 別途、Visual Basic Version 6.0(以下VB6)のランタイムDLLが必要です。

 

ランタイムDLLについて

 このプログラムの実行にはVB6のランタイムDLLがセットアップされている必要があります。
 自分のマシンにVB6のランタイムDLLがインストールされているのかどうか分からない、という方はとりあえず実行してみて下さい。
 「????????.dllが見つかりません」や「プログラム開始エラー」、「予期せぬエラーが発生しました」等と表示される場合はランタイムDLLがインストールされていない、または一部のファイルが不足している、古いバージョンの物がインストールされている、等の可能性があります。
 ランタイムDLLはパソコン雑誌の付録CDや、VectorWebサイト(http://www.vector.co.jp/)等から入手できます。

 

実行方法

 セットアップは特に必要ありません。
 mrkv120.lzhを解凍してできたフォルダの中のmrkv120.exeを実行して下さい。

 

アンインストール

 アンインストールする場合は上記のフォルダを削除するだけでOKです。
 レジストリは操作しておりません。

 

  目次へ

■ このソフトでできること

 このソフトで出来るのは「元文章に雰囲気のよく似たニセ文章を作成すること」です。
 百聞は一見に如かず、ということで実例をみてみましょう。以下は本ソフトで作った「Microsoft Visual Basic6.0の使用許諾契約文書のニセ文書」です。 

Windows 95のソフトウェア]のベンチマーク テストの結果を第三者に開示することのできる機能または再輸出しないものとします。この製品に重要かつ主要な機能を提供するその他のソフトウェア製品の故障、不具合があります)を複製して頒布する非独占的な権利を許諾します。ただし、第3.1.4 追加の権利およびマイクロソフトウェア製品が開発した、MDAC_TYP.EXEと指定されたワープロ、表計算機能に制限付き再頒布可能コードとして提供されるハードウェアの保証期間満了後の障害、故障につきましては、Microsoft Windows 95コンポーネントの使用が許諾されている場合を除き、お客様が「JET ファイル」といいます)。

 内容は無茶苦茶ですが、一見いかにも許諾契約文書っぽいでしょう?

 雰囲気の似た文章を作る以外にも、元文書によってはすごく笑える結果になることもあります。
 さあ、あなたも身近にある文章で試してみてください!

目次へ

■ 動作原理

元文章が「とうきょうとっきょきょかきょく」である場合を例にとって説明しましょう。

元文章を、ある決まった文字数で区切ってできる文字列を「状態」と呼びます。
また、このときの決まった文字数を「次数」と呼びます。
今、次数を2とすると、状態は

「とう」「うき」「きょ」「ょう」「うと」「とっ」「っき」「ょき」「ょか」「かき」「ょく」

 の11つが存在します。
 このそれぞれの状態に於いて、どんな確率で次にどの文字が現れるかを集計します。
 例えば「きょ」という状態の後には「う」「き」「く」の文字がそれぞれ等確率で現れています。
 このように集計した確率に基づき、文章を作成していくのです。

 次数は好きに決めてかまいません。大きいほど元文章に近い文章が作成されます。 

目次へ

■ 作成の手順

 1.設定

右下の「設定」ボタンで次数と文字種類数上限・状態数上限の設定をします(「設定」の項を参照。初心者はパスしても構いません)

 2.読み込み

 「設定」ボタンの上にある2種類の「読み込み」ボタンで、元になる文章を読み込みます。
 「ファイルから読み込み」は既存のファイルから文章を読み込みます(「読み込まれた元文章」リストの部分にファイルをドラッグ&ドロップしても読み込み出来ます)。
 「クリップボードから読み込み」は、他のアプリケーション上で「コピー」した文字列を元文章として読み込みます。
 文章を読み込んだ後、続けて読み込みを行うと複数の文章を元にして作成できます。
 「初期化」ボタンを押せば、読み込んだ元文章がクリアされます。

 元になるファイルは基本的にテキストファイルを使用しますが、任意の形式のファイルを読み込めます(ただしテキストファイル以外(バイナリファイル)を読み込んだ場合、文章作成時のエラー発生率が高くなります)。 

 3.作成

  まず「作成する文字数」を設定します。一覧から選ぶか、任意の整数を入力します。
  「改行しない」チェックボックスをオンにすれば、作成文章に改行が含まれなくなります。
  そして「文章作成」ボタンを押せば、「作成された文章」テキストボックス内に文章が作成されます。
  作成した文章は「文章保存」ボタンで保存出来ます。 

状態遷移ビューワ
文章作成には必要ない機能ですが、2.の読み込み後、メニューの「元文章」 - 「状態遷移ビューワ」から、読み込んだ元文章の状態遷移を見る事ができます(状態については動作原理の項を参照して下さい)。
 上のテキストボックスに状態の文字列を入力すると、次に来る文字と確率の集計表が表示されます。
 (\n)は改行、(SP)は半角スペース、(SP)は全角スペースを表します。 

目次へ

■ 設定

フォーム右下にある「設定」ボタンまたはツールバーの設定ボタンを押すと設定ウィンドウが開きます(メニューにも「設定(O)」があります)

1.次数

 次数については動作原理の項を参照して下さい。
 1〜8まで設定出来ますが、和文の場合は2〜4ぐらいが適当と思われます。欧文の場合はそれより多少高めに設定すると良いでしょう。

 

2.文字種類数上限と状態数上限

 文字種類数とは、読み込んだテキストに登場する文字の種類の数です。例えば「たけやぶやけた」なら文字種類数は4です。
 状態数は状態の総数です(状態については動作原理の項を参照して下さい)。
 それぞれで設定された上限に応じて、必要なメモリを確保します。あまり大きくすると動作が不安定になりますので、自分の環境に合った値を入力して下さい。
 また、テキスト読み込み中に設定された上限を越えてしまった場合は読み込みが中止されます。その場合でもそれまでに読み込まれたテキストは有効です。

目次へ

 

■ その他

著作権などについて

 このソフトはフリーウェアです。著作権は放棄しておりません。
 このソフトに含まれる全てのファイルの著作権はたーやにあります。
 このソフトに含まれるファイルのリバースエンジニアリング・逆アセンブルを禁止します。
 このソフトの使用により生じた、いかなる損害および不具合に対しても作者は一切責任を負いません。
 転載の際は作者まで事前に連絡をお願いします。転載の場合はオリジナルに一切手を加えずすべてそのままで、最新のバージョンのものを転載するようにして下さい。

 

制作後記

 このプログラムはテスト勉強中のささやかな現実逃避で出来てしまった作品なのですが、肝心のテスト本番で計算ミスをしてしまいました。このプログラムをレポートとして提出したら評価が上がるかなあ・・・などと考えもしましたが、結局なんとか単位は取れました。

 コード中に宮崎 康弘さん作成の汎用関数を流用させていただきました。
 ありがとうございました。

参考文献

 「情報理論」宮川 洋 著/コロナ社 

 

バージョンアップ履歴

Ver 1.00
 ・「マルコフ情報源実験プログラム」の名称で公開。Visual Basic 5.0で作成。

Ver 1.01
 ・初期化が正しく行われないバグを修正。
 ・ヘルプファイルを一部更新。
 ・一部のアクセスキーを変更。

Ver 1.10
 ・「疑似文章作成 マルコフくん」に名称変更。
 ・Visual Basic 6.0に移行。

 ・文書保存時に改行コードが正しく保存されなかったバグを修正。
 ・文書作成/読み込みを中止できるようにする。
 ・文章作成時に「改行しない」機能を追加。
 ・画面上部にツールバーを付加。
 ・「設定」フレームをメインフォームから削除。
 ・右クリックによるポップアップメニューを追加。
 ・一部のアクセスキーを変更。
 ・その他、エラー処理や画面表示などもろもろ。

Ver 1.11
 ・ツールバーのアイコンを一部変更。
 ・アイコンにファイルがドロップされて起動した場合、そのファイルを元文章として読み込むようにした。
 ・作成した文章上での右クリックによるポップアップメニューを変更。
 ・作成した文章がクリアされているときは文章クリアと保存が出来ないようにした。
 ・設定ダイアログで各上限にマイナスの値を入力したときエラーが出るのを修正。

Ver 1.20
・状態遷移ビューワ追加。
・作成文書保存でキャンセルボタン押下時にエラーメッセージが出るバグ修正。
・文字種類数上限、状態種類数上限について、デフォルト値を引き上げおよび選択リストの値を変更。
・ヘルプファイルをWindowsヘルプからHTMLヘルプに変更。

 

作者連絡先

 たーや

 E-mail : t@rya.club.ne.jp
 WebPage : http://www.mercury.sannet.ne.jp/tarya/

 ご意見・ご感想・バグ報告などはメールでお送りいただくか、掲示板にお書き込みください。
 お待ちしております!

目次へ