【文章自動生成】マルコフ連鎖の自動文章生成についてまとめてみた【2018年完全保存版】

図解マルコフ連鎖 アルゴリズム
この記事は 約11 分で読めます。

ここ数日の間、形態素解析とマルコフ連鎖をずっと勉強していました。
それはもちろんSEOでごにょごにょしたくて学習してたんです。
そもそも自動でブログが作られて収益がガンガン上がっていくなら嬉しいじゃないですか!

結論から言うとPSW2を使うのが現状は最強です。


悔しいですが、自動文章の生成アルゴリズムとしては、上記のPSW2が最強です。

と言ってもサテライトサイトぐらいにしか使いみちは無いと思うんですけどね
でも、SEOを制する物はミリオネアに近づくと言われてるじゃないですか!< え?そんな事言われてたっけ?

そしてマルコフ連鎖を使った文章自動生成については全くのド素人からスタートするわけですが、Google先生で調べても図解でわかり易く説明されてるサイトが無かったんですね
あったのは学術的な数式とか論文的な物とか実際にやってみた!みたいなのはあったのですが、実際に途中経過のスコープを見せてくれなかったりでよくわかりませんでした。

PR

マルコフ連鎖とはこういう事である

じゃぁ早速マルコフ連鎖について軽く説明して行こうと思います。
噂に寄ると色んな手法があるようなのですが、マルコフ連鎖をする為にはまずは文章を分解した文章を3段階に区切り複数の文節を作ってそれをランダムに繋げて回して行くことでニュアンスの違った新しい文章を作り出せると言うものです。

ここの文節では総則なのでざっくり流れを説明していきます。

まずは冒頭でも述べたように 元となる文章を形態素解析に掛けて分解します。

マルコフ連鎖の自動文章生成

形態素解析で分解した図

はい これはYahooAPIの形態素解析を使って分解して返ってきた配列です。
文章を分解するとはこういう事なのです。

更にここから文章を3段階に区切っていきます。

例えば 「私はカレーライスが好き。」と言う文章を形態素解析に回すと

私 は カレーライス が 好き 。

と分解されて返ってきます。

私 は カレーライス
は カレーライス が
カレーライス が 好き
が 好き 。

と言う風に3段階に区切ります。

上図の『同窓会へ出席するという』と言う文章の場合はどうなるのか?と言うと

同窓会 へ 出席 する と いう

上記のように区切られていますから、これをマルコフ連鎖に掛けると・・・
① 同窓会 へ 出席
② へ 出席 する
③ 出席 する と
④ する と いうと言う具合に分解され、実際のループでの、文章生成では、
①のフレーズが 同窓会へ出席 なので、次に求められるフレーズは③になります。
どういう事かと言うと、①のフレーズの終わりが出席で終わった為に、次に求められる文節は、フレーズの頭が 出席から始まるフレーズを探してくると言う流れです。

本来はもう少し長い文章じゃないと使い難いのですが、こう言ったブロックを沢山作り出します。
Sentence(センテンス)と言って文の始まりから終わりの『。』を基準にしてそこまでの文節の塊を作り出して それらをランダムに引っ掻き回して繋げ直そうと言う事です。

要するに 私 は カレーライス と来て 爆発 するなんて事には中国じゃない限りありえないだろうと言う事であり、元々は正規の文章を引っ張ってきてるので突拍子もない文章が次に繋がるわけがないのだから、文節で区切って引っ掻き回しても使ってた元の文章は同じであるから、あまりにもかけ離れた文章にはなりませんよ

文章自動生成の仕組み

マルコフ連鎖生成

と言うのがマルコフ連鎖でございます。

もちろん4段階5段階で区切る方法もあるそうなのですがそれをするともっと精度が精密になり日本語として正しい文章になるそうです。

理論上ではこうなんですが、私も最初読んだ時は、え?こんなの文章になるわけないだろ?って思ってたのですが、実際にブログに載ってるサンプルコードとかを試してみると意外とまぁまぁ読める文章になっているのです。

と言ってもここから自動ブログ投稿するにはムラがあり過ぎて文章もまともに作れてない感じなので、精度が悪過ぎてポンコツ過ぎますから、更に同じような文章を引っ張ってきてDBなんかに登録してランダムにしてやるとオリジナルの本文に無かった文章が入ってくることになりますのでオリジナリティある文章に仕上がるのではないかな?とか考えております。

自動文章生成の制度を上げる為にする事

文章生成の制度を上げる為にする事

私が色々テストしてみた結果ですが、マルコフ連鎖で文章を紡いで行く為には、単語単位での塊をしっかりと定義する必要があります。

正直Yahooの文章素解析では無理です。

何故かと言うと、素解析に掛けてみるとわかりますが、単語の区切りが狭過ぎるからです。
『は』とか『へ』で区切られてしまうと、DBに格納されるデータが膨大な量になる上に、文章が先に進まなくなる事が多いからです。

先程の、『同窓会に出席するという』の文節でも『する』『と』『いう』で区切られてしまうと非常に使い難い事、そして、Yahoo素解析では新語やスラングの文章が区切られて居ない為にうまくフレーズを作る事が出来ません。

それを解決する為には、独自で辞書を作るか、有名な専用辞書をインストールして使用する形になります。

neologd/mecab-ipadic-neologd
Neologism dictionary based on the language resources on the Web for mecab-ipadic - neologd/mecab-ipadic-neologd

上記が恐らく一番有名な辞書だと思いますが、自分のサーバーにMecabをインストールして利用するか、素解析後にPHPやらPythonなどの言語で使い易いように繋げてあげる処理が必要になります。

 

Mecabをインストールする場所

Mecabをインストール

Mecabをインストールするとなると、どこにインストールするのか?普通のレンタルサーバーでインストール出来るものなのか?と言う疑問が浮かぶと思います。上記は私がGMOクラウドVPSにMecabをインストールした際の記事になりますが、自動で文章生成をする為には、提供されているAPIでは圧倒的に不十分である事が考えられます。

GMOクラウドVPSにmecabとphp-mecabをインストールした時の個人的メモ
GMOクラウドVPSを借りてるんだけどPLESKが入っているテンプレートを借りてるのでSSHのコマンドがPHP5.4のままで苦労した。 おかげでphpizeしてもphp5.4でコンパイルされてしまうからApacheのPHP7xでは利用出来...

文章自動生成をする為にMecabをインストール

レンタルサーバーにMecabをインストールするには、かなりハードルが高い事をしなければなりません。
まず大前提として、SSHログインが出来なければ話になりません。
SSHでコマンド入力してMecabをインストールするわけですが、本来コマンドを入力してインストール出来る形でレンタルサーバーは提供されていません。

検索すると『さくらサーバー(スタンダード)』などでは、半ば無理矢理インストールしている猛者も居ますが、私もトライしてみましたが何故かうまく行きませんでした。

そして、Mecabを稼働させるのに、文章のフレーズが約1万~5万語は必要で、3語区切りのデータとしては10万超のデータは欲しい所です。

それらのデータを引っ張り出しながら、文章生成をするとなると、かなりのリソース消費がありますので、やはりVPSを契約するべきだと私は思いますし、稼働中のサイトが格納されているサーバーでは非常に負荷を掛ける事になってしまい、中に入ってるブログなどの表示に影響がでてしまいます。

GMOのクラウドVPSでサブドメインを設定する話
GMOクラウドのVPS 月780円~ 突然ですが、PLESKって分かり難いですよね 初めて使うとなると勝手がわからずに2日でPLESK壊してOS再インストールしてしまいました(苦笑 何故いきなりPLESKの話かと言うとGMOのクラ...

結論としては、VPSにMecabをインストールし、検索キーワードを元にしてクローラーを動かしブログやHPの本文からセンテンス(文章)を取得して、自動でガンガン単語区切りのフレーズをDBに格納して行くのが最もスマートなやり方では無いかと思います。

実際にマルコフ連鎖で生成した文章

実際にマルコフ連鎖で生成した文章

私が上記アルゴリズムを使って実際に生成した文章を公開します。

プリントTなのにデザインがよくわからないとならないようにしっかり撮影はぜったいNG!
でもでも、人が新ラインを着た時の一つにコーデルックを購入してもらいましょう
オーストラリアと思っていたより長かったという返品がないように、画像のコーディネートも授業のレベルが盛りだくさんですので、不要なものを消したりということで追加授業
最近は、ぜひ楽しみにしていてくださいね

人気色だけでなく、撮影やコーデーネートをイメージ写真のうち、顔をだす必要はなく、画像の撮影方法の撮影方法の写真とは人が新ラインをイメージさせる着用写真を引きますよね

今回はインしないというようにカラーバリエーションごとに着方を探すことは難しいですよねイメージが汚いのは致命的補正も多くの人を見逃さないガゼットに、茶は17FWもかっこいいウエアが残らないよう、某ブランドバッグがスムーズに伝わりますしね

ここまでは、写真自体が盛りだくさんですので、写真自体が着ているなんとなく雰囲気のある写真をおすすめします

これからが夏本番ですが、このように黒はブログや画像が不自然にならないよう水平な街、ファッション商材はブログの撮影方法の自分を撮るためには、その際、コーデ写真を購入できるので、人が盛りだくさんですので、カラーによって一般の人気ブロガーほぼ100均ネイルのしずくさんと画質の一つにコーデルックを撮るためには、人が着用している。

上記が私が作ったマルコフ自動文章生成です。
ちなみに開始から現時点で6か月程経過しておりますがペナルティを貰う事も無く順調にGoogle先生からの評価を得ています。
ただやっぱり文章を取りに行くのもクローラーで取得しに行くのではなく、自分でシコシコページを選んでマッチした文章をDBに登録するようにしています。

色々気を使って丁寧に仕上げていけば使えないレベルでは無いのかな・・・とは思います。

文章自動生成のまとめ

現状でマルコフ連鎖だけを利用した自動文章生成についてはユーザー辞書を絞ったジャンルに合わせて相当数の辞書を構築すると言う事がより自然に近い文章生成の近道ではないかと思います。

本当の意味で日本人が生成された文章を読んで納得できるレベルの文章を生成するには

マルコフ連鎖 + 機械学習(PHPML)

上記2つを組み合わせて膨大な数のサンプルを学習させる必要があると言えます。

どう考えてもマルコフ連鎖だけではサテライトサイト構築としても力量不足感は否めません。
Googleも同じようにマルコフ連鎖を応用したサイトの文章解析を行っていますから、個人がプログラムをちょろっと弄っただけのマルコフ連鎖の文章ではすぐにバレてしまいペナルティを貰うのが関の山です。

実際に私は数サイトのマルコフ連鎖で生成したサイトを運営してみました。
まさに上で説明した事のプログラムを既に完成させています。

自動文章生成の為に私がやった事

Mecabとマルコフ連鎖と独自辞書をサーバーにインストールして辞書を徹底的に強化しました。
ジャンルを限定して外部サイトからセンテンス(文節の塊)を取得しました。

 

やった事を簡単に説明すると

私はカレーを食べました。 タグ:カレー レトルト 食品
までを1文節として10万文節をタグとキーワードを付けて保存する方式です。タグで検索にひっかるサイトの文章をクローラーを回して徹底的に拾って来てDBに登録して行きます。カレーを軸としてあらゆるサブキーワードを拾ってクローラーを回して取りまくる手法です。

同じキーワードで表示されている沢山のページの文章から自動で文章を生成する

自動文章生成時には、取得した沢山のページの文章からタグを指定してランダムにマルコフ連鎖をして文章生成します。
これなら1サイトの1記事から文章生成するわけでは無く、沢山の同じジャンルのキーワードのページの文節から生成するのでSEOに必要なキーワードは含まれるんじゃないかと考えたわけです。

もちろん人間が読んで納得出来る、文章にはなりませんがサテライトサイトとしては使えるんじゃないかと考えたのです。

結果は惨敗でした。。。。ただペナルティを喰らうような事はありませんでしたから、もっともっと自動生成した文章を追加して行けば、もしかしたらGoogleで上位表示されるかも知れないと言う可能性は秘めています。

より自然な文章自動生成ツールとは

より自然な文章自動生成ツールとは

本記事の冒頭でも結論を述べている通り、現状で出来る自然な文章自動生成ツールではPSW2が最強と言う事になります。
マルコフ連鎖のアルゴリズムを使わずに、『どうした方式』で文章パターンが何億通りもある生成ツールなので、人間が自然な文章になるように類義語を重ね合わせた文章の自動生成ですから、マルコフでランダムで繋ぎ合わせた物とは制度が全く違うのです。

と言っても、PSW2はアフィリエイトでCVR(成果発生)させれる程の文章力では無くマルコフ連鎖と同等のレベルでの文章の繋ぎ合わせである事は間違いありませんから日本語としては自然でも説得力や人間に訴えかけるレベルの文章を生成してくれるわけではありません。

現状で出来る自然な文章自動生成ツール

Mecabをインストール

現状の私が知る限り、SEOで成果が出ているサテライトサイト生成ツールはPSW2でしょう。
高い金を出してコピペかも分からない記事をライターに依頼するよりも27800円出すだけで無限に記事を生成出来るPSW2にコスパの面で勝てるツールは無いと断言出来るレベルで優秀なソフトです。

文章自動作成ツール『PSW_Ver.2_1パーソナル版』2014年インフォトップ殿堂入り商品“PSW”のバージョンアップ版のパーソナル仕様登場!
悔しいですが、自動文章の生成アルゴリズムとしては、PSW2が最強です。

何が凄いかと言うと、マルコフ連鎖を使わない独自のアルゴリズムで自然な文章を自動で生成して、サテライトサイトをガンガン構築出来る点にあります。

実際の文章生成アルゴリズムについてもリンク先のサイトで解説されていますが、実際のライターを雇って自然な文章として繋がるように工夫された凄いツールです。

これを使った手法でブラックハットSEO+中古ドメインのサイト構成で4か月でビッグキーワード1位になる手法があり、現役のトップアフィリエイターでブラックハットを使ってる人達は、上記のPSW2を利用して毎月100万200万と日々稼ぎ出しているのです。

2017年~2018年現在のSEOは被リンク至上主義になっている現状ですので、1秒でも早く稼ぎたい方は騙されたと思ってPSW2でサテライトサイトを作ってみて下さい。

きっと凄い結果が出ますよ。

筆者のおすすめ本

PHPによる機械学習入門

斉藤 常治,高橋 佑幸 リックテレコム 2014-07-16
売り上げランキング : 125624

by ヨメレバ

 

コメント

トップへ戻る