N-gram カウントは、コーパス全体にわたる N-gram の頻度を生成し、カウントします。このコンポーネントは、入力されたすべての文をスキャンし、n 個の連続する単語のすべてのシーケンス (N-gram) を識別し、各シーケンスの出現回数を集計します。結果は、ドキュメントごとではなく、コーパス全体のグローバルな頻度カウントとなり、言語モデルのトレーニングへの入力として直接使用できます。
仕組み
指定した入力テーブルの列から各文を読み取ります。
各文に対して、幅 1 から
order(N-gram の最大長) までのウィンドウをスライドさせ、その長さまでのすべての N-gram を生成します。たとえば、order=3の場合、コンポーネントはユニグラム、バイグラム、トライグラムを生成します。すべての文にわたってカウントを蓄積します。Bag-of-Words テーブルが提供されている場合、語彙にない単語はカウント前に
<unk>に置き換えられます。蓄積された N-gram カウントを出力テーブルに書き込みます。各行には、1 つの N-gram とコーパス全体でのその総頻度が含まれます。
コンポーネントの設定
Machine Learning Designer (ビジュアルモデリング) のビジュアルパイプラインエディター、または SQL スクリプトコンポーネントを介した PAI コマンドの 2 つのメソッドが利用可能です。
メソッド 1:パイプラインページでの設定
Platform for AI (PAI) の Machine Learning Designer (ビジュアルモデリング、旧 Machine Learning Studio) で、N-gram カウントコンポーネントをキャンバスにドラッグし、右側のパネルでパラメーターを設定します。
フィールド設定
| パラメーター | 説明 |
|---|---|
| [入力テーブルの文を含む列] | プロセスする文を含む列。 |
| [Bag-of-Words の単語を含む列] | 語彙の単語を含む列。この語彙にない単語は、出力で <unk> に置き換えられます。 |
| [入力カウント結果テーブルの単語列] | 出力にマージする既存の N-gram カウントテーブルの単語列。 |
| [入力カウント結果テーブルのカウント列] | 出力にマージする既存の N-gram カウントテーブルのカウント列。 |
| [文の重み列] | 文ごとの重みを含む列。すべての文に均一な重み 1 を適用するには、空白のままにします。 |
パラメーター設定
| パラメーター | 説明 | デフォルト |
|---|---|---|
| [N-gram の最大長] | 生成する N-gram の最大長。たとえば、これを 3 に設定すると、ユニグラム、バイグラム、トライグラムが生成されます (1 から設定値までのすべての次数)。 | 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 は、ユニグラム、バイグラム、トライグラムを生成します (1 から設定値までのすべての次数)。 |
lifecycle | いいえ | — | 出力テーブルのライフサイクル (日数)。 |
coreNum | いいえ | — | 割り当てるコア数。 |
memSizePerCore | いいえ | — | コアあたりのメモリ (MB)。 |