このトピックでは、Machine Learning Designer (旧称Machine Learning Studio) が提供する単語分割コンポーネントについて説明します。
このコンポーネントは、Alibaba Word Segmenter (AliWS) に基づいて特定の列の単語を分割します。 分割後に得られた単語はスペースで区切られます。 POS TaggerまたはSemantic Taggerパラメーターを設定すると、システムは分割後の単語、品詞 (POS) タグ付け結果、およびセマンティックタグ付け結果を提供します。 POSタグ付けの結果はスラッシュ (/) で区切られ、セマンティックタグ付けの結果は縦棒 (|) で区切られます。
トークナイザは、TAOBAO_CHNまたはINTERNET_CHNとすることができる。
Machine Learning Platform for AI (PAI) コンソールまたはPAIコマンドを使用して、コンポーネントを設定できます。
コンポーネントの設定
次のいずれかの方法を使用して、Word分割コンポーネントを設定できます。
方法1: パイプラインページでコンポーネントを設定する
Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで、単語分割コンポーネントのパラメーターを設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | 列 | 単語の分割に使用される列。 |
パラメーター設定 | 認識オプション | 認識のためのコンテンツのタイプ。 有効な値:
デフォルトでは、単純なエンティティの認識、電話番号の認識、時間の認識、日付の認識、および英数字の認識のオプションが選択されています。 |
マージオプション | マージするコンテンツのタイプ。 有効な値:
デフォルト値: アラビア数字をマージします。 | |
Tokenizer | トークナイザーのタイプ。 有効な値: TAOBAO_CHNおよびINTERNET_CHN。 デフォルト値: TAOBAO_CHN。 | |
ポスタガー | POSタグを有効にするかどうかを指定します。 デフォルトでは、POSタグ付けは有効です。 | |
セマンティックタガー | セマンティックタグ付けを有効にするかどうかを指定します。 デフォルトでは、セマンティックタグ付けは無効になっています。 | |
数字のみを含む単語を除外 | 単語分割結果が数値である単語を除外するかどうかを指定します。 デフォルトでは、このオプションはクリアされます。 | |
英語の文字のみを含む単語を除外する | 単語セグメンテーション結果が英字である単語を除外するかどうかを指定します。 デフォルトでは、このオプションはクリアされます。 | |
句読点のみを含む単語を除外する | 単語分割結果が句読点である単語を除外するかどうかを指定します。 デフォルトでは、このオプションはクリアされます。 | |
チューニング | コア | コアの数。 デフォルトでは、システムが値を決定します。 |
コアあたりのメモリサイズ | 各コアのメモリサイズ。 デフォルトでは、システムが値を決定します。 |
方法2: PAIコマンドを使用する
PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。
pai -name split_word_model
-project algo_public
-DoutputModelName=aliws_model
-DcolName=content
-Dtokenizer=TAOBAO_CHN
-DenableDfa=true
-DenablePersonNameTagger=false
-DenableOrgnizationTagger=false
-DenablePosTagger=false
-DenableTelephoneRetrievalUnit=true
-DenableTimeRetrievalUnit=true
-DenableDateRetrievalUnit=true
-DenableNumberLetterRetrievalUnit=true
-DenableChnNumMerge=false
-DenableNumMerge=true
-DenableChnTimeMerge=false
-DenableChnDateMerge=false
-DenableSemanticTagger=true
パラメーター | 必須 | 説明 | デフォルト値 |
inputTableName | 可 | 入力テーブルの名前。 | デフォルト値なし |
inputTablePartitions | 不可 | 単語分割のために入力テーブルから選択されたパーティション。 この値は、 | すべてのパーティション |
selectedColNames | 可 | 単語分割のために入力テーブルから選択された列の名前。 複数の列を指定する場合は、コンマ (,) で区切ります。 | デフォルト値なし |
dictTableName | 不可 | カスタム辞書を使用するかどうかを指定します。 カスタム辞書には列が1つしかなく、各行には1つの単語しか含まれません。 | デフォルト値なし |
tokenizer | 不可 | トークナイザーのタイプ。 有効な値: TAOBAO_CHNおよびINTERNET_CHN。 | TAOBAO_CHN |
enableDfa | 不可 | 単純エンティティを認識するかどうかを指定します。 有効な値:True と False。 | 正しい |
enablePersonNameTagger | 不可 | 個々の名前を認識するかどうかを指定します。 有効な値:True と False。 | False |
enableOrgnizationTagger | 不可 | 組織名を認識するかどうかを指定します。 有効な値:True と False。 | False |
enablePosTagger | 不可 | POSタグを有効にするかどうかを指定します。 有効な値:True と False。 | False |
enableTelephoneRetrievalUnit | 不可 | 電話番号を認識するかどうかを指定します。 有効な値:True と False。 | 正しい |
enableTimeRetrievalUnit | 不可 | 時間式を認識するかどうかを指定します。 有効な値:True と False。 | 正しい |
enableDateRetrievalUnit | 不可 | 日付式を認識するかどうかを指定します。 有効な値:True と False。 | 正しい |
enableNumberLetterRetrievalUnit | 不可 | 数字と文字を認識するかどうかを指定します。 有効な値:True と False。 | 正しい |
enableChnNumMerge | 不可 | 中国の数字を取得単位にマージするかどうかを指定します。 有効な値:True と False。 | False |
enableNumMerge | 不可 | アラビア数字を検索単位にマージするかどうかを指定します。 有効な値:True と False。 | 正しい |
enableChnTimeMerge | 不可 | 中国語の時刻表現をセマンティックユニットにマージするかどうかを指定します。 有効な値:True と False。 | False |
enableChnDateMerge | 不可 | 中国語の日付式をセマンティックユニットにマージするかどうかを指定します。 有効な値:True と False。 | False |
enableSemanticTagger | 不可 | セマンティックタグ付けを有効にするかどうかを指定します。 有効な値:True と False。 | False |
outputTableName | 可 | 出力テーブルの名前。 | デフォルト値なし |
outputTablePartition | 不可 | 出力テーブル内のパーティションの名前。 | デフォルト値なし |
coreNum | 不可 | コアの数。 このパラメーターは、memSizePerCoreパラメーターが設定されている場合にのみ有効です。 値は [1,9999] の範囲の正の整数でなければなりません。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 値は [1024,64 × 1024] の範囲の正の整数でなければなりません。 | システムによって決定される |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 値は正の整数でなければなりません。 | デフォルト値なし |
通常のテーブルを使用する場合は、coreNumおよびmemSizePerCoreパラメーターを設定しないことを推奨します。 ワード分割コンポーネントは、デフォルトでパラメータ値を自動的に決定します。
リソースが限られている場合は、次のコードを使用して、コア数と各コアのメモリサイズを計算できます。
def CalcCoreNumAndMem(row, col, kOneCoreDataSize=1024):
"""Calculates the number of cores and memory size of each core.
Args:
row: the number of rows in the input table.
col: the number of columns in the input table.
kOneCoreDataSize: the amount of data that can be computed by each core. Unit: MB. The value must be a positive integer. Default value: 1024.
Return:
coreNum, memSizePerCore
Example:
coreNum, memSizePerCore = CalcCoreNumAndMem(1000,99, 100, kOneCoreDataSize=2048)
"""
kMBytes = 1024.0 * 1024.0
# Number of cores involved in computing
coreNum = max(1, int(row * col * 1000/ kMBytes / kOneCoreDataSize))
# Memory size per core = Data amount
memSizePerCore = max(1024, int(kOneCoreDataSize*2))
return coreNum, memSizePerCore
例:
生成されたデータ
create table pai_aliws_test as select 1 as id, 'Today is a good day. The weather is fine and sunny.' ' as content;
PAIコマンド
pai -name split_word -project algo_public -DinputTableName=pai_aliws_test -DselectedColNames=content -DoutputTableName=doc_test_split_word
入力の説明
入力テーブルは、idとcontentの2つの列で構成されます。
+------------+------------+ | id | content | +------------+------------+ | 1 | Today is a good day. The weather is fine and sunny. |
アウトプットの説明
入力テーブルのトークン化列の単語は分割されて返されます。 残りの列は変更なしで返されます。
カスタム辞書を使用すると、システムはカスタム辞書とコンテキストに基づいて単語を分割します。