LoginSignup
23
19

More than 3 years have passed since last update.

OpenAIのGPT2で人工知能が記事を生成するメディアを作ってみた

Last updated at Posted at 2019-10-13

スクリーンショット 2019-10-13 14.44.56.png

 ソースコード

文字と画像を生成し、wordpressのAPIにpostするソース
https://github.com/seiyatakahashi/airi-news-python

使用した技術

news api

公式web: https://newsapi.org/
概要:
世界中のネットメディアから記事データを収集してる、API

使用用途:
Airi Newsに投稿する記事のタイトル、画像、内容などを一部使用しています。

fast-style-transfer

github: https://github.com/lengstrom/fast-style-transfer
概要;
fast-style-transferはtensorflowを使用して、画像を絵画風にしてくれます。

使用用途:
メディアの記事の画像をそのままAiri Newsにアップロードすると著作権侵害になってしまうので、メディアの記事の画像を一時的にダウンロードして、fast-style-transferで元画像を絵画風して生成。

参考URL: https://www.htmllifehack.xyz/entry/2018/06/06/210000

gpt2

github: https://github.com/openai/gpt-2

概要;
800万のWebページのデータセット(40GB)を使って学習されたモデルで、短い文章から、長い文章を生成してくれます。フェイクニュースが作りやすいので、学者などから危険だと言われています。

使用用途:
元記事の最初の140文字から、その後の1000文字〜2000文字の文字列を生成させています。

参考URL: http://cedro3.com/ai/pytorch-gpt-2/

自動化したフロー

見出しを追加.jpg

1. news apiでデータを取得

NewsAPIで日本のビジネス、エンターテイメント、健康、スポーツ、テクノロジー、サイエンス分野のトレンド記事を取得

2. 記事を生成

GPT2は短い文章から1000文字〜2000文字の長い文章を生成するため、記事の内容の最初140文字を抽出。
GPT2は英語の生成のみ対応しているため、抽出した140文字を英語にgoogle翻訳APIを使用して、翻訳。
翻訳したデータをからGPT2で英語の記事を生成。
英語の記事データをGoogle翻訳APIで日本語にする。

3. 画像を生成

News apiから取得した記事の画像のURLから、サーバーに画像をダウンロード。
ダウンロードした画像から、fast-style-transferを使用して、画像を編集。

4. 記事と画像を投稿

Airi Newsはwordpressで構築しているため、wp rest apiを使用して、記事と画像をpostする。

反省点

GPT2は英語しか対応していないため、Google翻訳APIで日本語から英語、英語から日本語に変換するため文字が読みずらくなる。なので日本語を学習データにして、機械学習モデルを作っていかないといけない。

GPT2は過去の記事データを元に記事を生成しているので、ニュースのような新しいデータの生成にはあっていない。

23
19
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
19