このトピックでは、Machine Learning Platform for AI (PAI) が提供するテキスト分析コンポーネントを使用してニュース分類モデルを構築する方法について説明します。
背景情報
ニュース分類は、テキストマイニングの一般的なシナリオです。 多くのメディアまたはコンテンツプロデューサーは、手動でニュースにラベルを付けることによってニュースを分類しますが、これは労働集約的です。 PAIが提供するインテリジェントなテキストマイニングアルゴリズムを使用して、ニュース分類タスクを自動化できます。 タスクには、単語セグメンテーション、品詞変換、ストップワードフィルタリング、トピックモデリング、およびクラスタリングが含まれます。 このトピックで説明するパイプラインでは、部分的にラベル付けされたDirichlet Allocation (PLDA) アルゴリズムを使用してトピックモデリングを実行し、トピックを重みに基づいてクラスター化してニュースを分類します。
このトピックで使用されるデータセットは、実験用にのみ使用されます。
前提条件
Machine Learning Designerがアクティブ化され、ワークスペースが作成されます。 詳細については、「PAIの有効化とデフォルトワークスペースの作成」をご参照ください。
MaxComputeリソースはワークスペースに関連付けられています。 詳細については、「ワークスペースの管理」をご参照ください。
テキスト分析に基づいてニュースを分類する
Machine Learning Designerページに移動します。
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。
ワークスペースページの左側のナビゲーションウィンドウで、 機械学習デザイナーページに移動します。
パイプラインを作成します。
Visualized Modeling (Designer) ページで、プリセットテンプレートタブをクリックします。
では、テキスト分析-ニュース分類[プリセットテンプレート] タブのセクションで、作成.
[パイプラインの作成] ダイアログボックスで、パラメーターを設定します。 デフォルト値を使用できます。
Pipeline Data Pathパラメーターに指定された値は、パイプラインのランタイム中に生成された一時データおよびモデルのObject Storage Service (OSS) バケットパスです。
[OK] をクリックします。
パイプラインの作成には約10秒かかります。
パイプラインリストで、テキスト分析-ニュース分類パイプラインを開くパイプライン。
次の図に示すように、キャンバス上のパイプラインのコンポーネントを表示します。 システムは、プリセットテンプレートに基づいてパイプラインを自動的に作成します。
コンポーネント
説明
①
追加Idコンポーネントは、データセットから読み取られたデータにID列を追加します。 データセット内の各データレコードは単一のニュースです。 各データレコードを一意に識別するID列を追加する必要があります。 これにより、後続のアルゴリズムの計算が容易になる。
②
このセクションに表示されるコンポーネントは、ニュースの内容を単語に分割し、各単語の発生回数をカウントします。 単語分割コンポーネントは、内容フィールドの値であるニュースの内容を単語に分割します。 Doc Word Statコンポーネントは、ストップワードが除去されるテキスト内の各ワードの発生数をカウントする。
③
フィルターノイズコンポーネントは、ニュースのコンテンツからストップワードを除外します。 ストップワードには、ニュースの意味に寄与しない句読点と文法上のパーティクルが含まれます。
④
このセクションに表示されるコンポーネントは、トピックモデリングを実行します。
Triple to KVコンポーネントは、ワード周波数データをPLDAコンポーネントがサポートするフォーマットに変換します。 この形式はテキストの単語を数字に変換します。
パラメーター:
append_id: ニュースの一意のID。
key_value: 単語の頻度を示すキーと値のペア。 コロン (:) の前の数字は、単語の数字IDです。 コロン (:) の後の数字は、単語の出現回数である。
PLDAコンポーネントは、トピックモデルをトレーニングします。
PLDAアルゴリズムは、トピックモデル化アルゴリズムである。 アルゴリズムは、各ニュースのトピックを示す単語を見つけることができます。 このパイプラインでは50のトピックが構成されています。 PLDAコンポーネントの第5の出力ポートは、各ニュースが50のトピックのうちの1つに属する確率を示すデータを生成する。
⑤
このセクションに表示されるコンポーネントは、分類結果を分析および評価します。 上記の手順が実行された後、ニュースのトピックはベクトルに変換されます。 ベクトル間の距離に基づいてクラスタリングを実行し、ニュースを分類できます。
パイプラインを実行し、結果を表示します。
キャンバスの左上隅で、実行アイコンが表示されます。
パイプラインを実行したら、右クリックします。KMeansキャンバス上で選択します 分類結果を表示します。
cluster_index: カテゴリの名前。
append_id: ニュースの一意のID。
右クリックSqlマッピングキャンバス上で選択しますappend_id115、292、248、および166。 によって識別されるニュースを表示します。
このパイプラインの分類結果は満足のいくものではない。 例えば、2つのスポーツニュース、1つの金融ニュース、1つの科学技術ニュースは、同じカテゴリに分類される。 次の方法を使用して、結果を改善できます。
パイプラインに大きなデータセットを使用します。
データセットに対してフィーチャエンジニアリングまたはパラメータチューニングを実行します。
パイプラインでは、Sql MappingコンポーネントのFilter Criteriaパラメーターは、append_id 115、292、248、および166によって識別されるニュースを表示するようにプリセットされています。 他のニュースを表示するには、次の例の形式に基づいてフィルター条件パラメーターを設定します。
append_id=292 or append_id=115 or append_id=248 or append_id=166 ;