N-gram カウントは、コーパス全体にわたる N-gram の頻度を生成し、カウントします。このコンポーネントは、すべての入力文をスキャンし、n 個の連続する単語のすべてのシーケンス (N-gram) を識別し、各シーケンスが出現する頻度を集計します。結果は、ドキュメントごとではなく、コーパス全体にわたるグローバルな出現頻度となり、言語モデルのトレーニングへの入力として直接使用できます。
仕組み
指定した入力テーブル列から各文を読み取ります。
各文に対して、幅が 1 から
order(最大 n-gram 長) までのウィンドウをスライドさせ、その長さまでのすべての n-gram を生成します。例えば、order=3の場合、コンポーネントはユニグラム、バイグラム、トライグラムを生成します。すべての文にわたってカウントを累積します。Bag-of-Words テーブルが指定されている場合、語彙に含まれない単語はカウント前に
<unk>に置き換えられます。累積された N-gram の出現頻度を出力テーブルに書き込みます。各行には、1 つの N-gram とコーパス全体でのその総頻度が含まれます。
コンポーネントの設定
ビジュアルモデリングのビジュアルパイプラインエディターを使用する方法と、SQL スクリプトコンポーネント経由で PAI コマンドを使用する方法の 2 つがあります。
方法 1:パイプラインページでの設定
Platform for AI (PAI) のビジュアルモデリング (旧 Machine Learning Studio) で、N-gram カウントコンポーネントをキャンバスにドラッグし、右側のパネルでパラメーターを設定します。
フィールド設定
| パラメーター | 説明 |
|---|---|
| [入力テーブルの文を含む列] | 処理対象の文を含む列。 |
| [Bag-of-Words の単語を含む列] | 語彙の単語を含む列。この語彙にない単語は、出力で <unk> に置き換えられます。 |
| [入力カウント結果テーブルの単語列] | 出力にマージする既存の N-gram カウントテーブルの単語列。 |
| [入力カウント結果テーブルのカウント列] | 出力にマージする既存の N-gram カウントテーブルのカウント列。 |
| [文の重み列] | 文ごとの重みを含む列。空白のままにすると、すべての文に 1 の均一な重みが適用されます。 |
パラメーター設定
| パラメーター | 説明 | デフォルト |
|---|---|---|
| [N-gram の最大長] | 生成する N-gram の最大長。たとえば、これを 3 に設定すると、ユニグラム、バイグラム、トライグラム (設定した値までのすべての次数) が生成されます。 | 3 |
チューニング
| パラメーター | 説明 |
|---|---|
| [(任意) コア数] | 割り当てるコア数。指定しない場合、システムによって決定されます。 |
| [(任意) コアごとのメモリサイズ] | コアごとのメモリ (MB 単位)。指定しない場合、システムによって決定されます。 |
方法 2:PAI コマンドの使用
SQL スクリプトコンポーネントを使用して、algo_public プロジェクトの ngram_count アルゴリズムを実行します。詳細については、「SQL スクリプト」をご参照ください。
PAI -name ngram_count
-project algo_public
-DinputTableName=pai_ngram_input
-DoutputTableName=pai_ngram_output
-DinputSelectedColNames=col0
-DweightColName=weight
-DcoreNum=2
-DmemSizePerCore=1000;| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
inputTableName | はい | - | 入力テーブルの名前。 |
outputTableName | はい | - | 出力テーブルの名前。出力の各行には、1 つの N-gram とコーパス全体でのその総頻度が含まれます。 |
inputSelectedColNames | いいえ | 最初の STRING 型の列 | 入力テーブルから読み取る列。 |
weightColName | いいえ | 1 | 重み列。値 1 は、すべての文にわたって均一な重みを適用することを示します。 |
inputTablePartitions | いいえ | すべてのパーティション | 入力テーブルから読み取るパーティション。 |
countTableName | いいえ | - | 出力にマージする既存の N-gram カウントテーブル。 |
countWordColName | いいえ | 2 番目の列 | countTableName で指定されたカウントテーブルの単語列。 |
countCountColName | いいえ | 3 番目の列 | countTableName で指定されたカウントテーブルのカウント列。 |
countTablePartitions | いいえ | - | カウントテーブルから読み取るパーティション。 |
vocabTableName | いいえ | - | Bag-of-Words テーブル。このテーブルにない単語は <unk> に置き換えられます。 |
vocabSelectedColName | いいえ | 最初の STRING 型の列 | Bag-of-Words テーブルの語彙列。 |
vocabTablePartitions | いいえ | - | Bag-of-Words テーブルから読み取るパーティション。 |
order | いいえ | 3 | N-gram の最大長。たとえば、order=3 は、ユニグラム、バイグラム、トライグラム (設定した値までのすべての次数) を生成します。 |
lifecycle | いいえ | - | 出力テーブルのライフサイクル (日数)。 |
coreNum | いいえ | - | 割り当てるコア数。 |
memSizePerCore | いいえ | - | コアごとのメモリ (MB 単位)。 |