スクリーンショット_2019-08-10_22

ノンプログラミングでニュース記事自動分類AIを作る

はじめまして。株式会社MatrixFlow CEOの田本です。
社員ブログを始めるということで、一発目は私が書きます。

我々はプログラミング不要のAI構築プラットフォーム「MatrixFlow」というサービスを提供しています。今回はこのMatrixFlowの使用例を書きます。
お題はニュース記事の種類を自動で分類してくれるAIをノンプログラミングで作りたいと思います。ニュース記事の本文を入力するとそれがどのカテゴリのニュースなのかを当てるAIです。いわゆる自然言語処理の分類問題って奴です。

先ずはサイトにログインしましょう。
サイトURL:https://ai.matrixflow.net
メールアドレスだけで登録でき、無料プランを使用することができます。
登録がまだの人は是非!

画像1

ログインしたら上のメニューから「レシピ管理」画面に行きましょう。
ちなみに「レシピ」とはMatrixFlow独自の用語でAIの設計図を意味しています。このレシピを使って学習することでAIを作ることができます。

画像2

画面の左上に「テンプレート」ボタンがあるのでそのボタンを押すと、様々なテンプレートレシピを取得することができます。今回は「分類-自然言語(tfidf)」を取得します。「分類-自然言語(tfidf)」の行をクリックすると詳細が表示されます。

画像3

下の方にスクロールすると左下に「テンプレートを取得」ボタンがあるのでそのボタンを押してテンプレートを取得しましょう。

画像4

上に戻り「閉じる」ボタンを押してテンプレート画面を閉じましょう。自分のレシピ管理に「分類-自然言語(tfidf)」が追加されています。

画像5

次は学習させるデータを用意します。無料で入手できるニュース記事のデータセットはいくつかありますが今回はlivedoor ニュースコーパスを使います。
どういうデータセットかというと以下のようなものになっています。

本コーパスは、NHN Japan株式会社が運営する「livedoor ニュース」のうち、下記のクリエイティブ・コモンズライセンスが適用されるニュース記事を収集し、可能な限りHTMLタグを取り除いて作成したものです。

さらにニュースは9つのカテゴリに別れているので、ニュース記事本文とカテゴリのラベルを使い教師あり学習で学習させます。ちなみにカテゴリは以下の通りです。
・トピックニュース
・Sports Watch
・ITライフハック
・家電チャンネル
・MOVIE ENTER
・独女通信
・エスマックス
・livedoor HOMME
・Peachy

ldcc-20140209.tar.gz をダウンロードしたらzipを解凍して、カテゴリごとに別れたフォルダにニュース記事が入っていることを確認します。

次にMatrixFlowにアップロードするためのzipファイルを作ります。

スクリーンショット 2019-11-13 15.44.08

ラベル名に対応するフォルダ名のフォルダの下階層に置くことでそのテキストにはラベルが割り振られたことになります。

今回のデータセットですとすでにカテゴリに別れているので、分かりやすようにフォルダ名を変えたり、各フォルダに入っているLICENSE.txtを除きましょう。

before

スクリーンショット 2019-11-13 15.46.23

after

スクリーンショット 2019-11-13 15.48.25

あとはフォルダを作り、そのフォルダの下にtextsフォルダを作りそこに入れてzipファイルに圧縮すればアップロードできます。

これらのzipファイルの詳細はMatrixFlow操作マニュアルにも書いています。

zipファイルが出来たので、MatrixFlowのデータ管理画面に行き、「新規追加」ボタンを押しましょう。そこで今作成したzipファイルをドラッグアンドドロップで画面に置くとzipファイルが選択されます。そして名前と説明を書いてアップロードボタンを押すと、アップロードが開始します。

画像9

アップロードに成功するとテーブルに表示されます。

画像10

この行をクリックすると詳細画面が開き、サイズやデータ数やどのカテゴリが何記事あるのかが確認できます。

画像11

「レシピ」と「データ」が揃ったので、学習させましょう。メニューバーの「学習」を押して「学習」画面に行きます。

画像12

学習データには先ほどアップロードしたデータを選び、レシピにはテンプレートから取得した「分類-自然言語(tfidf)」を選び、名前と説明を書いて学習開始ボタンを押すと、学習が開始します。

分類-自然言語(tfidf)」レシピには「頻度表示」ブロックと「ワードクラウド表示」ブロックがあるので、ブロックの処理が終わった段階で結果が出力されます。

画像13

「関連」と「記事」という単語が多く存在していることがわかりますね。

学習が終わると以下のような学習結果が表示されます。経路はレシピに存在している学習の経路で、「ロジスティック回帰」と「サポートベクターマシーン分類器」両方について学習しています。今回は「ロジスティック回帰」の方が精度が高くなっています。

画像14

さて、精度は0.9428と悪くない精度ですが、もっと精度を向上させてるために試行錯誤をしてみましょう。先ほどの頻度のグラフとワードクラウドで確認した、頻度の高い単語「関連」と「記事」ですが、これは「関連記事はこちら」などのカテゴリに関係なく出てくる単語だと想像できると思います。なので、この単語は分類の役に立たないので学習から除いてしまいましょう。

「レシピ管理」ページに上のメニューバーから行きましょう。

「分類-自然言語(tfidf)」の行をクリックし、詳細画面を表示してスクロールすると左下に「編集」ボタンがあるのでそのボタンを押して編集モードにしましょう。

画像15

まず、今回の学習においては「サポートベクターマシーン分類器」は「ロジスティック回帰」より圧倒的に精度が悪かったので削除してしまいましょう。

ブロック長押しで削除できます。

画像16

その後に「日本語トークナイザー」ブロックをクリックすると左側にブロックの詳細が表示されます。「stopwords」という項目がありますが、これが学習時に無視する単語を指定する箇所です。カンマ区切りで無視する単語を書いています。最初から入っているのは一般的に無視して学習する単語です。学習内容やデータによってここを編集すると精度の向上が見込めます。今回は「関連」、「記事」が学習には必要なさそうだったので、それを追記します。

画像17

追記したら、保存して「学習」画面に行き、今編集したレシピと前回と同じデータを選択して学習開始ボタンを押しましょう。

学習が終わると、今回は経路は一つしかないので「ロジスティック回帰」の経路だけの結果が表示されます。

画像18

精度は0.9441と前回の0.9428に比べて少し良くなっていることがわかります。今回は「関連」と「記事」だけを除きましたが、ライブドアニュースに詳しい人ならさらにどの単語が要らないなどの知識があると思うのでさらに精度をあげることが出来るでしょう。これから他の機能も充実させていきますが、MatrixFlowではこのようにドメイン知識を持つユーザーが試行錯誤しながら精度を上げていくことが可能になっています。

さて学習したAIに予測をさせてみましょう。

実は先ほどデータ管理にアップロードする用のデータを作ってる時に事前に18個のニュース記事を抜いていました。

画像19

これらは学習にもテストにも使ってない新しいニュース記事ということになります。これらのニュース記事がどのカテゴリーの記事なのか予測したいと思います。
フォルダを一つ作成し、その中にtextsという名前のフォルダを作りその中に18個のニュース記事を入れ、zipファイルに圧縮します。これが予測対象のzipファイルになります。

メニューバーから「推論」のページに移動しましょう。先ほど学習させた「学習済みAI」を選択し、アルゴリズムを選びましょう。そして、先ほど作った予測対象のzipファイルを「推論データ」の所で選択します。

画像20

「推論を開始」ボタンを押すと、推論を開始すると以下のような結果が出ました。

画像21

「filename」がファイル名、「body」がファイルの中身、「label」がファイルの内容からAIが予測したカテゴリです。また「〇〇_probability」はこのファイルの内容がそれぞれにカテゴリでどれくらいの確率なのかを表しています。上の画像だと、0.999の確率で「独女通信」カテゴリなので「label」も「独女通信」になっています。

下にスクロールすると先ほどの18ファイルそれぞれの予測「label」と確率が表示されています。

そして、これらの結果は「結果をダウンロードする」ボタンを押すとcsv形式でダウンロードできます。

画像22

このように文書の内容から自動でカテゴリ分類できるAIが作成できました。

今回はテキストファイルでしたが、MatrixFlowは数値、テキスト、画像と複数の種類のデータに対応しています。是非お試しください。もう一度サイトのURLを貼っときますね。
サイトURL:https://ai.matrixflow.net

ありがとうございました!

【会社概要】
株式会社MatrixFlowは、「テクノロジーで世界をつくる」をミッションとするAIベンチャーです。大人から子供、ビジネスマンから学生、デザイナーからサイエンティストに至るまで、様々な人々がAIを活用し、素晴らしい着想を得たり、あっと言わせるクールな活動をすることを支援したいと考えています。その実現に向けた第一歩として、プログラミング不要のクラウド型AI構築プラットフォーム「MatrixFlow」を開発しております。

【会社情報】
設立 :2018年10月
本社 :東京都三鷹市
URL:https://www.matrixflow.net/

【お問い合わせ先】
E-mail:support@matrixflow.jp
窓口:MatrixFlowカスタマーサポート

-----
zipの作成がより簡単になったので内容を更新しました。(2019 11/13)


この記事が気に入ったらサポートをしてみませんか?