すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:単語分割

最終更新日:Jul 22, 2024

このトピックでは、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

不可

単語分割のために入力テーブルから選択されたパーティション。 この値は、partition_name=value形式である必要があります。 複数のパーティションを指定するには、name1=value1/name2=value2の形式を使用します。 複数のパーティションを指定する場合は、コンマ (,) で区切ります。

すべてのパーティション

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.  |
  • アウトプットの説明

    • 入力テーブルのトークン化列の単語は分割されて返されます。 残りの列は変更なしで返されます。

    • カスタム辞書を使用すると、システムはカスタム辞書とコンテキストに基づいて単語を分割します。