見出し画像

人工知能を使って小説を書く方法(テキストマイニングからbot生成まで)

はじめに

 今回、人工知能(ここでは、人工知能=機械学習手法と捉えてください)を活用して、以下の小説を書きました。

 このnoteでは、その具体的な手法、プログラムのソースを余すことなく公開いたします。有料のライブラリやサービスは用いてないので、基本的には無料でシステムを実現することができます。このnoteを読めば、人工知能を使って小説を書くヒントが得られるかもしれません。

 ただ、小説自体はあくまでも1部に人工知能で生成された部分があるだけで(小説の10%程度です)、全自動で小説全てが作れるわけではないので、ご承知おき下さい。上記小説を読むとどのようなものかは大体想像がつくかとは思います。

変更履歴

2018/05/05:読者からのフィードバック反映し、スクレイピングの項目とTwitter botの説明補足

2018/04/29:Google Colaboratoryの使い方の説明追記、全体の微修正

2018/04/24:間違いやすい点・FAQ追加

2018/04/22:『Botの自動化』コンテンツ追加、読者からのフィードバック反映、全体的に微修正

2018/04/21:『ディープラーニングを活用した「なろう小説」の文章生成』のコンテンツ追加。プログラムがうまく動かない方へのアドバイス追加。オススメの参考書籍・参考サイト追加

2018/04/19:『自分のTwitterの過去の発言を学習して自動ツイートしてくれるbot生成』のコンテンツ追加

2018/04/18:『マルコフ連鎖を活用した「なろう小説」の文章生成』が「Google Colaboratory」に対応しました

2018/04/16:『マルコフ連鎖を活用した「なろう小説」の文章生成』のコンテンツ追加しました

2018/04/13:『回帰分析による「なろう小説」アクセス推移予測』のコンテンツを追加しました。

2018/04/12 :『WordCloud/word2vecを用いた「なろう小説」人気作品のテキストマイニング」』のコンテンツを追加しました。微修正の追記行いました。

このnoteを購入するとできるようになること

 小説を読む時間のない人に、簡単に例を紹介します小説の文章を生成する以外にテキストマイニングによって、文章の分析をすることができます。

 以下はWordCloudというライブラリを使って人気小説をテキストマイニングして可視化した例です。このような分析を行うには、スクレイピング・前処理・ライブラリの使い方など覚えることが沢山あるのですが、その全てをチュートリアル形式で解説しています。

 実際このnoteを購入した読者のふぃろさんは、その日のうちに、上記の例を応用して、以下のようにご自身のnoteをテキストマイニングで可視化しています。

 この手法は、noteの他にもブログやTwitter等で応用することができます。

 また、文章生成に関しては、過去のTwitterの全発言を利用することで、自分のbotを作ることも可能です。例えば、以下は実は私ではなく、人工知能が生成した発言となります

 アンケートの結果、約半数の方が気づかなかったという実績も誇っております。

 詳細は以下記事参照下さい。

 このようなbotをつくる方法に関しても解説しております。

想定している読者

 また想定している対象としては、Mac OSである程度ターミナルの操作に慣れた方向け(ls とか cd とか cpの意味くらいは分かる方)となりますが、Windowsを使用している方や、環境構築の自信がない方に向けて、ブラウザベースで人工知能のプログラミングが実行できる「Google Colaboratory」を使用した例も紹介しています(極一部、Google Colaboratoryでは実行できない箇所あります。ご了承ください)。

 本記事では、プログラミング言語としてPythonを用いますが、Pythonの基礎に関しての説明はないことご了承下さい。初心者向けの情報へのリンクのみとなります。

 ご興味ある方はご購入下さい。内容としては以下となります。


目次

- 機械学習の環境に関して

- Python環境の構築(Macの場合)

- Python環境の構築(Mac以外の場合)

- スクレイピングによる「なろう小説」のデータセット収集

- WordCloud/word2vecを用いた「なろう小説」人気作品のテキストマイニング

- 回帰分析による「なろう小説」アクセス推移予測

- マルコフ連鎖を活用した「なろう小説」の文章生成

- 自分のTwitterの過去の発言を学習して自動ツイートしてくれるbot生成

- ディープラーニングを活用した「なろう小説」の文章生成

- プログラムがうまく動かない方へ

- 間違いやすい点・FAQ

- オススメの参考書籍・参考サイトの紹介

- さいごに


注記:

 本内容は、筆者の環境で動作確認はしていますが、必ずしも読者全ての環境で動くことを保証するものではないこと、本内容がソフトウェアのバージョン変更や、開発中止により再現できなくなる可能性があり、永続的サポートできないことご了承下さい
 もちろん、フィードバックは歓迎しますし、動かないケースがある場合は、最大限誠心誠意をもって修正対応させていただきます

 また、本noteで用いている「Google Colaboratory」などの1部のWebサービスは、サービス提供社の都合で中止になる可能性あり、その際の保証はできないことご了承下さい。

 本noteで紹介しているプログラムは、読者の皆様が自由に使用・改変が可能です。是非色々応用して下さい。応用例は、このnoteでも積極的にご紹介したいと思いますので、もしよろしければコメントやtwitter等で教えて下さい。


この続きをみるには

この続き: 43,353文字 / 画像31枚
この記事が含まれているマガジンを購入する
全部購入すると2000円以上のものが1500円になるので、全部購入したいと考えている人にとってはお得です。

有料の機械学習チュートリアルをセットにしたマガジンです。

または、記事単体で購入する

人工知能を使って小説を書く方法(テキストマイニングからbot生成まで)

からあげ(karaage0703)

980円

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
スキしてくれてありがとうございます!(押すたびに変わります)
90
闇のエンジニア/変なデジカメ開発中/ディープラーニング芸人/Raspberry Piとからあげ大好き/はてなブログ書いてます→ http://karaage.hatenadiary.jp

こちらでもピックアップされています

機械学習チュートリアル
機械学習チュートリアル
  • 6本

@karaage0703が作った機械学習を楽しみながら・手を動かしながら学べるチュートリアルの記事をまとめたものです

コメント (13)
有益なnoteをありがとうございます。一点ご質問なのですが、twitter botのgoogle colaboratoryを使用する箇所で正規表現で削除する記号類が不十分な気がするのですが意図的にやられているのでしょうか
>> 結さん
コメントありがとうございます。具体的な箇所が分わかりませんでしたが、本チュートリアルでは、完璧な前処理をすることを目的には作成しておらず、収集したデータの特徴や目的に応じて、適切な前処理をすることが必要なことを理解いただければ良いなという考えで書いております。
前処理はそれだけで1冊の本になるくらい奥深いものだったりします。以下リンクのような本もあります(私はまだ読めてないです)。
https://amzn.to/2PmaTuY
必要性を感じたら、上記のような本や実践を通じて学びを深めていただけたら幸いです。私も日々学習中です。
わざわざ返信ありがとうございます。なるほどそういことでしたかですとmecabのシステム辞書ですと記号処理に富んでいないん用ですので
>text = re.sub(r"[^\u3041-\u3096\u30A1-\u30FA々〇〻\u3400-\u9FFF\uF900-\uFAFF\uD840-\uD87F\uDC00-\uDFFFー]+", "", text)
このような処理にした方がいいかもしれないですね。
>>結さん
コメントありがとうございます。検索してみて意味わかりました。確かに最低限、上記は入れた方が良いですね。非常に参考になりました。自分でも確認してフィードバックしようと思います。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。