Classifierの文書分類比較テクニカルエバンジェリストの井上(祐)です。2019」24日目の記事です。文章に書かれている内容から、どのカテゴリに分類するか判断を行う文書分類は、新聞記事のカテゴリ分類(政治、経済、スポーツなど)や、身近なところでは迷惑メールフィルタでの利用があります。ついて比較を行います。NLC)を対象に文章分類の精度評価を行います。アカウントのある方は試してみてください。NLCは有料サービスとなります。このため無料の範囲で確認できるのは、スクレイピングとfasttextによる分類までとなります。fasttextfasttextは、様々な文章のベクトル化と分類を高速に行う事ができる自然言語処理ライブラリで、大量の文書を高速に処理できる特徴があります。サイトの説明では、1日〜5日かかっていたものが5〜10秒で処理が行え、10億語を10分で処理し50万文章を30万カテゴリに分類するのに5分かからないという処理の速さとのことです。Watsonから提供されている自然言語分類器で、テキストの背後にある意図を解釈し、関連性に基づいて分類が行われます。クラウドから提供されるWebサービスとなり、APIを使い開発を行うため実装が素早く簡単に行う事ができます。本記事で行う分類テーマは、ニュースタイトルからどのカテゴリのニュースであるかを推定します。ニュースはライブドアニュースが公開しているAPIを利用し訓練データ、検証データの作成を行います。収集するニュースのカテゴリは、”スポーツ”、”海外”、”経済”、”グルメ”、”宇宙”の5カテゴリとします。訓練データは各カテゴリ100件、検証データは各カテゴリ20件とします。収集した訓練データは次のようにラベルを割り当てます。ニュースタイトル“、NLCは”ニュースタイトル,ラベル“の順となるため項目を入れ替えてそれぞれの訓練データとします。混同行列を見てましょう。このマトリックスは横方向が予測したクラス、縦方向が実際のクラスとなります。NLCにおいてクラスが0と判断したニュース19件あり、それが全て正解であったことが分かります。検証データは各クラス20件としています。実際のクラスを示す縦方向、0の行を見ると本来クラス0となるべきニュースをWatsonがクラス1と分類している事がわかります。この混同行列は対角方向の数字が高いほど良いモデルと視覚的にも分かりやすく判断ができます。このマトリックスからはfasttextが若干劣っている事が分かります。fasttextはパラメータをチューニングする事で精度向上が望めます。Softmax(hs)を指定し、他はデフォルト値を採用しています。他の指標も見てみましょう。NLCの方がいいですね。0.88クラス数がこの程度ですので、クラスごとにも指標を見てみましょう。sklearnに評価指標をまとめて表示してくれるものがありますので、それを実行した結果を貼り付けます。これを見ると、どちらもクラス2の経済ニュースの分類が苦手なようです。訓練データ500件を使い学習を行なった際にかかった時間です。fasttextが圧倒的に早い事がわかります。企業で扱う文書の多さや、特にシステム構築時には大量の文書を使い訓練を行わせる事を考えると、訓練時間も無視できない評価項目となります。16分4秒(3)費用fasttextはOSSのため費用なし表記しました。NLCは1ヶ月当たりの特典はあるものの分類器を置いておくだけでも費用が発生します。訓練1回あたりにも費用が発生します。この点は人間と一緒で教育にはお金がかかりますね。NLCを対象に文書分類について比較を行なった、若干精度が劣ったfasttextであったが訓練速度、費用面においては有利な結果となった、Watsonは精度もよくWebAPIを使う開発のため簡単に素早く実装が行え得る事が確認できた。利用シーンによっては、fasttextでも十分活用できると考えられるため、求められる精度やシステムの重要度、コストを考慮してWatson、fastextの使い分けが考えらる。fasttextについては、複数のアルゴリズムを用いてアンサンブル学習とする事で精度はさらに向上すると考えれます。プログラム今回の検証にて実装を行なったプログラムは下記にリンクを貼りました。Colaboratoryでの実行を想定したもになっていますので、ダウンロードしローカルで実行する場合は、プログラム中のGoogleドライブマウント処理をコメントとしてください。(2)〜(4)は、(1)のスクレイピングによって収集したデータを前提としています。CLOUDアカウントが必要なります。NLCは有料サービスとなりますのでご注意ください。費用が発生しても当方で責任は負わないものとします。機械学習研究を経て、AI、ロボットを強みとする部門に異動。現在はテクニカルエバンジェリストとして企業が持つ業務課題へのAI、機械学習適用に関するコンサルティング、技術支援に従事するかたわら、自ら研究テーマを持ち共同研究、実験システムの構築のほか、執筆活動も行う。