テキストに基づく感情分類子

概要

このモデルは、テキスト・フラグメントがポジティブな感情とネガティブな感情のどちら寄りかを検出することができます。モデルの基礎となるニューラル・ネットワークは、事前トレーニングされた BERT ベースの English Uncased モデルをベースに、IBM Claim Stance データセットで微調整されています。

このモデルに最適な入力の例としては、正しい文法の短い文字列 (できれば単一のセンテンス) が挙げられますが、そうでなければならないわけではありません。

モデルのメタデータ

ドメイン アプリケーション 業種 フレームワーク トレーニング・データ 入力データ
自然言語処理 (NLP) 感情分析 一般 TensorFlow IBM Claim Stance データセット テキスト

ベンチマーク

以下の表に、3 種類のデータセットから成るテスト・セットに対するモデルの予測の精度を記載します。

最初の行には、IBM Claims データセットで微調整した後のモデルの一般化能力が示されています。 モデルの転移学習能力の評価には、Sentiment140 (ツイート) と IMDB レビュー・データセットだけを使用しています。このリポジトリー内の実装には、Sentiment140 や IMDB レビュー・データセットによるトレーニングや微調整は行われていません

2 番目の行には、特定のタスクに対して微調整を加えた後の BERT ベースの (English – Uncased) モデルのパフォーマンスが示されています。これは単なる参考用なので、重みは公開していません。

一般化の結果 (最初の行) は、入力データが微調整に使用されたデータ (IBM Claims データセットで微調整したときの Sentiment140 (ツイート) など) と同様の場合は優れたものになっています。一方、異なるスタイルのテキストを入力として渡した場合や、テキスト長の中央値が大きくなると (複数のセンテンスからなる IMDB レビューなど)、良好な結果を得られません。

モデル・タイプ IBM Claims Sentiment140 IMDB レビュー
このモデル
(IBM Claims で微調整)
94% 83.84% 81%
特定のデータセットで微調整されたモデル 94% 84% 90%

参考資料

ライセンス

コンポーネント ライセンス リンク
モデルの GitHub リポジトリー Apache 2.0 LICENSE
微調整されたモデルの重み Apache 2.0 LICENSE
事前トレーニングされたモデルの重み Apache 2.0 LICENSE
モデルのコード (サード・パーティー) Apache 2.0 LICENSE
微調整用の IBM Claims Stance データセット CC-BY-SA LICENSE 1
LICENSE 2

このモデルのデプロイ方法

このモデルは、以下のメカニズムを使用してデプロイできます。

  • Docker Hub からデプロイする場合:
docker run -it -p 5000:5000 codait/max-text-sentiment-classifier
  • Kubernetes 上にデプロイする場合:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Text-Sentiment-Classifier/master/max-text-sentiment-classifier.yaml

使用例

このモデルは cURL を使用してテストまたは使用できます。

cURL を使用してモデルをテストする

モデルをデプロイしたら、コマンド・ラインからモデルをテストできます。以下に例を示します。

curl -d "{ \"text\": [ \"The Model Asset Exchange is a crucial element of a developer's toolkit.\"]}" -X POST "http://localhost:5000/model/predict" -H "Content-Type: application/json"

以下のような JSON レスポンスが表示されるはずです。

{
  "status": "ok",
  "predictions": [
    [
      {
        "positive": 0.9977352619171143,
        "negative": 0.0022646968718618155
      }
    ]
  ]
}