0 / 0
資料の 英語版 に戻る
カスタム変換プログラム・モデルを使用した評判の抽出
最終更新: 2024年11月07日
カスタム変換プログラム・モデルを使用した評判の抽出

Slate IBM Foundation モデルに基づいて、センチメント抽出用に独自のモデルをトレーニングできます。 この事前トレーニングされたモデルは、特定の入力データに基づいてトレーニングすることにより、ユース・ケースに合わせて見つけることができます。

利用可能な Slate モデルの一覧については、次の表を参照してください。

利用可能なSlateモデルとその説明のリスト
モデル 説明
pretrained-model_slate.153m.distilled_many_transformer_multilingual_uncased 汎用多目的モデル
pretrained-model_slate.125m.finance_many_transformer_en_cased 金融コンテンツで事前トレーニングされたモデル
pretrained-model_slate.110m.cybersecurity_many_transformer_en_uncased サイバーセキュリティコンテンツで事前トレーニングされたモデル
pretrained-model_slate.125m.biomedical_many_transformer_en_cased 生物医学コンテンツで事前トレーニングされたモデル
注: トランスフォーマー・モデルのトレーニングでは、CPU とメモリーが集中的に使用されます。 トレーニング・データのサイズによっては、環境がトレーニングを完了するのに十分な大きさではない場合があります。 トレーニング中にノートブック・カーネルで問題が発生した場合は、CPU とメモリーの量が多いカスタム・ノートブック環境を作成し、それを使用してノートブックを実行します。 トレーニングには GPU ベースの環境を使用し、使用可能な場合は推論時間も使用します。 独自の環境テンプレートの作成を参照してください。

トレーニング用の入力データ形式

トレーニング機能にトレーニングおよび開発データ・セットを提供する必要があります。 開発データは通常、トレーニング・データの約 10% です。 各トレーニング・サンプルまたは開発サンプルは、JSON オブジェクトとして表されます。 これには、 text フィールドと labels フィールドが必要です。 text はトレーニング例のテキストを表し、 labels フィールドは配列です。この配列には、 中性、または のラベルが 1 つだけ含まれます。

以下に、サンプル・トレーニング・データを含む配列の例を示します。

  [
      {
      "text": "I am happy",
      "labels": ["positive"]
      },
      {
      "text": "I am sad",
      "labels": ["negative"]
      },
      {
      "text": "The sky is blue",
      "labels": ["neutral"]
      }
  ]

トレーニング・データ・セットと開発データ・セットは、JSON オブジェクトの配列からデータ・ストリームとして作成されます。 データ・ストリームを作成するには、ユーティリティー・メソッド prepare_data_from_jsonを使用します。

import watson_nlp
from watson_nlp.toolkit.sentiment_analysis_utils.training import train_util as utils

training_data_file = "train_data.json"
dev_data_file = "dev_data.json"

train_stream = utils.prepare_data_from_json(training_data_file)
dev_stream = utils.prepare_data_from_json(dev_data_file)

事前トレーニングされたモデル・リソースのロード

トレーニング済みの Slate IBM Foundation モデルは、トレーニング・アルゴリズムに渡す前にロードする必要があります。 さらに、入力テキストで使用される言語の構文分析モデルをロードする必要があります。

モデルをロードするには:

# Load the pretrained Slate IBM Foundation model
pretrained_model_resource = watson_nlp.load('<pretrained Slate model>')

# Download relevant syntax analysis models
syntax_model_en = watson_nlp.load('syntax_izumo_en_stock')
syntax_model_de = watson_nlp.load('syntax_izumo_de_stock')

# Create a list of all syntax analysis models
syntax_models = [syntax_model_en, syntax_model_de]

モデルのトレーニング

評判トランスフォーマー・トレーニングの構成に使用できるすべてのオプションについて、以下を入力します。

help(watson_nlp.workflows.sentiment.AggregatedSentiment.train_transformer)

train_transformer メソッドは、シンタックス分析とトレーニングされたセンチメント分類を自動的に実行するワークフロー・モデルを作成します。 後続のステップで、言語検出を有効にして、ワークフロー・モデルが前提条件情報なしで入力テキストに対して実行できるようにします。

以下は、前のセクションの入力データと事前トレーニングされたモデルを使用した呼び出し例です (モデルのトレーニング)。

from watson_nlp.workflows.sentiment import AggregatedSentiment

sentiment_model = AggregatedSentiment.train_transformer(
          train_data_stream = train_stream,
          dev_data_stream = dev_stream,
          syntax_model=syntax_models,
         	pretrained_model_resource=pretrained_model_resource,
          label_list=['negative', 'neutral', 'positive'],
          learning_rate=2e-5,
          num_train_epochs=10,
          combine_approach="NON_NEUTRAL_MEAN",
          keep_model_artifacts=True
        )
lang_detect_model = watson_nlp.load('lang-detect_izumo_multi_stock')

sentiment_model.enable_lang_detect(lang_detect_model)

新規データへのモデルの適用

データ・セットでモデルをトレーニングした後、既存の事前トレーニング済みブロックで使用する場合と同様に、 run() メソッドを使用して新規データにモデルを適用します。

サンプル・コード:

input_text = 'new input text'
sentiment_predictions = sentiment_model.run(input_text)

親トピック: 独自のモデルの作成

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細