# ソースコード
文字と画像を生成し、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/
自動化したフロー
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は過去の記事データを元に記事を生成しているので、ニュースのような新しいデータの生成にはあっていない。