# ディクショナリーを使った値を標準化

## オートコンプリートによるセルの値を標準化

セマンティックタイプがディクショナリーまたは複合型に基づいているカラム内のセルを編集する時に、アプリケーションはこのディクショナリーに含まれている値を入力の途中で自動的に提案します。これは、カラム全体が同じ基準に従うようにするためです。

この例では、米国の州コードをはじめとする顧客データが含まれているデータセットで作業しています。Texasの出現に2文字のコードフォーマットで正しく入力されていないものがあるため、Stateカラムでデータの一部が無効と見なされ、クオリティバーに示されます。エラーが含まれている行を隔離し、オートコンプリートでセルの1つを編集し、同一のセルすべてに変更を適用することで、カラム全体を1つの操作で修正します。

![データセットに米国の州コードなどの顧客情報が含まれている状態。](https://help.qlik.com/talend/ja-JP/data-preparation-user-guide/Resources/images/apply_to_all_values_1.png)

### 始める前に

オートコンプリートメニューは、セマンティックタイプがTalend Data Preparationにデフォルトで存在する値のディクショナリーや複合型に基づいている場合、またはTalend Dictionary Serviceで作成された場合のみ使用できます。カスタムセマンティックタイプの作成方法、または既存のセマンティックタイプの編集方法については、[セマンティックタイプライブラリーをエンリッチ化](https://help.qlik.com/talend/ja-JP/data-preparation-user-guide/Cloud/enriching-semantic-types-libraries)をご覧ください。

### 手順

1. Stateカラムで、クオリティバーのオレンジの部分をクリックし、[Select rows with invalid values for State] (州の値が無効な行を選択)をクリックしてフィルターを適用し、Texasを含む行を隔離します。
2. Stateカラムで、Texasの1つをダブルクリックします。

   これでセルのコンテンツを編集できるようになります。以前の値を削除すると、ドロップダウンリストが開き、US State Codeディクショナリーベースのセマンティックタイプの一部である値がアルファベット順にすべて提案されます。
3. Texasのコードは表示される最初の結果の一部ではないため、Tと入力して結果を見てみます。

   入力を進めるにつれて、より正確な候補だけが表示されるようになります。ただし、予期される値が元のリストで既に見つかる場合は、この値を直接選択できます。
4. 絞り込まれたこのリストから、Texasに対応する州コードであるTXを選択します。

   ![リストからTXという州コードが選択されている状態。](https://help.qlik.com/talend/ja-JP/data-preparation-user-guide/Resources/images/autocomplete_2.png)
5. 値の入力または選択を終えたら、表示されるチェックボックス[Apply to all cells with this value] (この値を持つすべてのセルに適用する)をオンにします。

   このセルで行った変更が、正しくない他の値にも適用されます。
6. [Submit] (送信)をクリックします。

### タスクの結果

候補を予測表示するこのファンクションにより、適用する新しい値は正しい形式になります。正しくないその他すべての[Texas] (テキサス)の出現が、1回の操作で正しい州コードTXに置換されます。クオリティバーに、Stateカラムのデータがすべて有効であると示されています。

## カラム内の値を自動的に標準化する

[Standardize value (fuzzy matching)] (値を標準化(ファジーマッチング))を使用すると、カラム内の無効な値に最も近い有効な値を見つけることができます。

このファンクションでは、現在のセマンティックタイプについてカラムに含まれる無効なデータがチェックされ、マッチングしきい値が達成されている場合に正しい数値が取得されます。このファンクションは、セマンティックタイプがTalend Data Preparationにデフォルトで存在する値のディクショナリーや複合型に基づいている場合、またはTalend Dictionary Serviceで作成された場合のみ使用できます。カスタムセマンティックタイプの作成方法、または既存のセマンティックタイプの編集方法については、[セマンティックタイプライブラリーをエンリッチ化](https://help.qlik.com/talend/ja-JP/data-preparation-user-guide/Cloud/enriching-semantic-types-libraries)をご覧ください。

たとえば、米国に拠点がある顧客のさまざまな情報(氏名、メールアドレス、住所の州など)を含むデータセットを操作する必要があるとしましょう。

Stateカラムヘッダーで分かるように、データは米国の州として認識されていますが、クオリティバーに示されているように、一部のエントリーには無効な名前が含まれています。

![Stateカラムで無効な名前が強調表示されている状態。](https://help.qlik.com/talend/ja-JP/data-preparation-user-guide/Resources/images/standardize_values_1.png)

1回のアクションでこれらの無効な値を修正し、[US State] (米国の州)の完全なリストを含むディクショナリー、またはセマンティックタイプから正しい値に置き換えます。

情報メモ注: Standardize value (fuzzy matching)ファンクションではアジア系文字がサポートされていません。

### 手順

1. Stateカラムヘッダーをクリックして、内容を選択します。
2. ファンクションパネルにStandardize valuesと入力し、結果をクリックして関連するファンクションのオプションを開きます。
3. [Match threshold] (しきい値の一致)ドロップダウンリストで、間違っている値を正しい値に置換する際に一致している必要があるパーセンテージを選択します。

   以下の3種類のパーセンテージの値が利用可能です。
   * High (高): 正しい値と90%以上一致する値のみが置換されます。
   * Default (デフォルト): 正しい値と80%以上一致する値のみが置換されます。
   * None (なし): 無効な値が最も近い有効値に置換されます。

   データのマッチングではレーベンアルゴリズムが使用されます。構成された文字列の場合、マッチング処理は実際には4段階で行われます:
   1. 完全な文字列と個別のトークンが検索されます。
   2. 完全な文字列または1トークンに対して差異が3文字よりも少ないディクショナリーの値が返されます。
   3. 潜在的なペアについて隔たりが計算され、最良のペアが返されます。
   4. ユーザーのしきい値により、隔たりに基づいて結果がフィルタリングされます。
   ### 例
   * Clermont Talend は、最初のトークンによってClermontと一致します。
   * Clermont-Ferraは、完全文字列と比較して異なる文字が3つより少ないため、Clermont-Ferrandと一致します。
   * Clermon-Ferantは完全な文字列と比較して異なる文字が3文字を超えていますが、トークンClermontとは1文字しか異なっていないため、Clermontと一致します。
4. [Preview] (プレビュー)ボタンをクリックするとファンクションの結果をプレビューできます。[Submit] (送信)をクリックするとそのファンクションが適用されます。

   ![Stateカラムで正しい名前が強調表示されている状態。](https://help.qlik.com/talend/ja-JP/data-preparation-user-guide/Resources/images/standardize_values_2.png)

### タスクの結果

これで間違った値が米国の州のディクショナリーを使用して標準化されます。