このトピックでは、PAI のテキストコンポーネントを使用して、テキスト分類モデルを迅速に構築する方法について説明します。
背景情報
ニュース分類は、テキストマイニングにおける一般的なシナリオです。多くのメディアやコンテンツプロデューサーは、手動でニュース記事にラベルを付けて分類しています。このプロセスは、多くの人的リソースを消費します。PAI は、インテリジェントなテキストマイニングアルゴリズムを提供し、ニュース分類を自動化します。これには、単語分割、単語形式変換、ストップワードのフィルタリング、トピックモデリング、クラスタリングなどのプロセスが含まれます。このパイプラインでは、まず PLDA アルゴリズムを使用して記事のトピックを発見します。次に、トピックの重みに基づいてクラスタリングを実行し、ニュースを自動的に分類します。
このパイプラインのデータは架空のものであり、学習目的でのみ使用されます。
前提条件
-
PAI (ビジュアルモデリング) を有効化し、ワークスペースを作成済みであること。詳細については、「PAI の有効化とデフォルトワークスペースの作成」をご参照ください。
-
MaxCompute リソースをワークスペースに関連付けていること。詳細については、「ワークスペースの管理」をご参照ください。
テキスト分析アルゴリズムを使用したニュースの分類
-
ビジュアルモデリングのページに移動します。
-
PAI コンソールにログインします。
-
左側のナビゲーションウィンドウで、[Workspaces] をクリックします。[Workspaces] ページで、管理するワークスペースの名前をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
-
パイプラインを構築します。
-
テンプレートリストの [テキスト分析 - ニュース分類] セクションで、Create をクリックします。
-
パイプラインリストで、[テキスト分析 - ニュース分類] パイプラインをダブルクリックして開きます。
-
システムは、プリセットテンプレートに基づいてパイプラインを自動的に構築します。次の図に示します。

エリア
説明
①
シリアル番号の追加。このパイプラインのデータソースは、個々のニュース記事を単位として使用します。アルゴリズムの計算のために、各記事を一意に識別するための ID 列を追加する必要があります。
②
単語分割と単語出現頻度の統計。まず、単語分割コンポーネントを使用して content フィールド (ニュースコンテンツ) を分割します。次に、ストップワードをフィルタリングした後のテキストの単語出現頻度を計算します。
③
ストップワードのフィルタリング。これには通常、記事の意味にほとんど影響を与えない句読点や機能語のフィルタリングが含まれます。
④
テキストトピックの発見:
-
PLDA テキストマイニングコンポーネントの入力は、3つ組形式である必要があります。したがって、[Triple to KV] コンポーネントを使用して、テキストを3つ組形式に変換します。この形式では、テキストは数値に変換されます。
ここで:
-
append_id:各ニュース記事の一意識別子。
-
key_value:コロンの前の数値は単語の数値 ID です。コロンの後の数値は単語の出現頻度です。
-
-
PLDA コンポーネントを使用してモデルをトレーニングします。
PLDA アルゴリズム (トピックモデル) は、各記事のトピックワードを識別できます。このパイプラインは 50 のトピックで構成されています。PLDA コンポーネントの5番目の出力ポートは、各記事の各トピックの確率を出力します。
⑤
結果の分析と評価。前のステップでは、テキストをトピックに基づいてベクターに変換しました。これで、ベクター距離を使用してクラスタリングを実行し、テキストを分類できます。
-
-
-
パイプラインを実行し、モデルの結果を表示します。
-
キャンバスの上にある実行ボタン
をクリックします。 -
パイプラインの実行が完了したら、キャンバス上の KMeans コンポーネントを右クリックし、 を選択して分類結果を表示します。
各パラメーターの説明:-
cluster_index:各クラスの名前。
-
append_id:各ニュース記事の一意識別子。
-
-
キャンバス上の Sql Mapping コンポーネントを右クリックし、 を選択して、append_id が 115、292、248、166 のニュース記事を表示します。
このパイプラインのニュース分類結果は理想的ではありません。たとえば、2つのスポーツ記事、1つの金融記事、1つのテクノロジー記事が同じクラスに割り当てられています。主な理由は次のとおりです:
-
パイプラインが使用するデータ量が少ないため。
-
このチュートリアルでは、ビジネスシナリオでテキスト分析アルゴリズムを使用する方法のみを紹介しており、データセットに対する特徴量エンジニアリングや詳細なチューニングは行っていません。
パイプラインテンプレートでは、Sql Mapping コンポーネントに [フィルター条件] がすでに設定されています。これにより、append_id が 115、292、248、166 のニュース記事を直接表示できます。他のニュース記事を表示するには、次の例に示すように、Sql Mapping コンポーネントの [フィルター条件] に対応するニュース ID を設定します。
append_id=292 or append_id=115 or append_id=248 or append_id=166 ; -
-