このトピックでは、Platform for AI (PAI) が提供するテキスト分析コンポーネントを使用して、製品タグを自動的に分類する方法について説明します。
背景情報
eコマースプラットフォームの製品説明には、多くの場合、複数のタグが含まれます。 例えば、一対の靴の説明は、「女の子の英国スタイルのレースアップマーテンスブーツ、女性の本物の革のスエードのカジュアルアンクルブーツと厚いソール」であってもよい。バッグは、「デイリーディール: 2016新着韓国スタイルの秋 /冬の女性のタッセルクロスボディシェルバッグ、レディースショルダートートバッグ」と呼ばれることがあります。タグは、製造日、原産地、スタイルなど、さまざまな次元の製品属性を強調表示します。 数万の製品を管理するeコマースプラットフォームでは、製品タグの効率的な分類が重要です。 PAIは、タグを自動的に学習および分類できるテキスト分析コンポーネントを提供します。
前提条件
ワークスペースが作成済み。 詳細については、「ワークスペースの作成」をご参照ください。
MaxComputeリソースはワークスペースに関連付けられています。 詳細については、「ワークスペースの管理」をご参照ください。
データセットの準備
この例では、データセットには、2016 Double 11 Shopping Festivalの2,000を超える製品の説明が含まれています。 各説明は、製品タグのクラスタである。
データセットを準備するには、DataWorksのDataStudioモジュールに移動し、contentという名前の列を1つだけ含むテーブルを作成し、データセットをテーブルにアップロードします。 詳細については、「テーブルの作成とデータのアップロード」をご参照ください。
手順
Machine Learning Designerページに移動します。
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。
ワークスペースページの左側のナビゲーションウィンドウで、 機械学習デザイナーページに移動します。
カスタムパイプラインを作成し、パイプラインページに移動します。 詳細については、「カスタムパイプラインの作成」をご参照ください。
パイプラインにコンポーネントを追加し、パイプラインを実行します。
左側のペインで、テーブルを読むのコンポーネントデータソース /ターゲットフォルダーをキャンバスに移動し、コンポーネントの名前をshopping_data-1.
左側のペインで、分割ワード,単語頻度統計、およびWord2Vecのコンポーネント フォルダーをキャンバスに移動します。
左側のペインで、ID列の追加とデータ型の変換のコンポーネントデータ前処理フォルダーをキャンバスに移動します。
左側のペインで、K-平均クラスタリングのコンポーネント フォルダーをキャンバスに移動します。
左側のペインで、SQLスクリプトのコンポーネントUserDefinedScriptフォルダーをキャンバスに移動します。
次の図に示すように、上記のコンポーネントをパイプラインに接続し、次の表に示すようにパイプラインを実行するパラメーターを設定します。
キャンバスでshopping_data-1コンポーネントをクリックします。 右側のウィンドウの [テーブルの選択] タブで、データセットを含むテーブルの名前を選択します。
キャンバスで [Word-1の分割] コンポーネントをクリックします。 右側のウィンドウの [フィールドの設定] タブで、[列] フィールドの [コンテンツ] を選択します。
shopping_data-1コンポーネントを右クリックし、ショートカットメニューで [現在のノードを実行] を選択します。 コンポーネントを実行した後、同じ手順を実行してWord-1分割コンポーネントを実行します。
キャンバスでWord Frequency Statistics-1コンポーネントをクリックします。 右側のウィンドウの [フィールドの設定] タブで、[ドキュメントid列] ドロップダウンリストからappend_idを選択し、[ドキュメントコンテンツ列] ドロップダウンリストからcontentを選択します。
Word Frequency Statistics-1コンポーネントを右クリックし、ショートカットメニューの [Run Current Node] を選択します。
2つの単語ベクトルがベクトル空間において互いに近い場合、2つの単語は意味的に類似している。
単語ベクトル間の距離は、単語の意味的類似性を反映する。
キャンバスでWord2Vec-1コンポーネントをクリックします。 右側のペインの [フィールド設定] タブで、[単語列] ドロップダウンリストから [単語] を選択します。 [パラメーター設定] タブで、[階層Softmax] オプションを選択します。
Word2Vec-1コンポーネントを右クリックし、ショートカットメニューで [現在のノードを実行] を選択します。
キャンバス上の [K-means Clustering-1] コンポーネントをクリックします。 [フィールド設定] タブで、[機能列] フィールドにf0を、[追加列] フィールドにwordを選択します。
説明コンポーネントを実行する前に、アップストリームデータテーブルの行数が、コンポーネントパラメーターで指定されたクラスター数以上であることを確認してください。
K-means Clustering-1コンポーネントを右クリックし、ショートカットメニューで [現在のノードを実行] を選択します。
ステップ番号
説明
1
準備したデータセットをshopping_data-1コンポーネントにインポートし、Split Word-1コンポーネントを使用して、データセット内の製品説明を単語に分割します。
2
ID列を追加します。 データセットからインポートされたデータに含まれる列は1つだけです。 ID列は、各データレコードの主キーとして機能する必要があります。
[ID列の追加]-1コンポーネントを右クリックし、ショートカットメニューの [現在のノードの実行] を選択します。 コンポーネントを実行した後、同じ手順を実行してデータ型変換-1コンポーネントを実行します。
3
製品の説明に表示される各単語の頻度を数えます。
4
単語ベクトルを生成します。 単語ベクトルは、高次元空間における単語の数値表現である。
Word2Vecコンポーネントを使用して、各単語の100次元ベクトルを生成します。
5
単語ベクトルをクラスターに分割します。 意味的意味に基づいて単語を自動的に分類するK平均クラスタリングを使用して、単語ベクトル間の距離を計算します。
6
分類結果を確認します。 クラスターを選択し、SQL Script-1コンポーネントを使用して、単語が正しく分類されているかどうかを確認します。 この例では、10番目のクラスターが使用されます。 キャンバスで [SQL Script-1] コンポーネントをクリックします。 右側のウィンドウの [パラメーターの設定] タブで、SQL Scriptコードエディターに
select * from ${t1} where cluster_index=10
と入力します。結果は、クラスタが地理的単語を含むことを示す。 ただし、nutなどの非地理的な単語も含まれています。 この間違いは、不十分なトレーニングデータが原因である可能性があります。 データセットが大きいほど、より正確な分類結果が得られる。
関連ドキュメント
アルゴリズムコンポーネントの詳細については、以下のトピックを参照してください。