この記事は、前回の IBM Match 360でバケツ情報を確認してみた の続編です。
基本概念やバケツの仕組みについては前回記事を参照してください。本記事では「実際にバケツ設定を変更する方法」を紹介します。
IBM Match 360およびバケツについて
バケツの基本的な説明や、なぜバケツがマッチング処理において重要なのかは前回のIBM Match 360でバケツ情報を確認してみたで解説済みです。
バケツ設定を変更するには?
バケツ設定は IBM Match 360 が提供する API や IBM Cloud Shell を使って変更することができます。
具体的な API 呼び出し方法や Cloud Shell の使い方についても前回のIBM Match 360でバケツ情報を確認してみたを参照してください。
バケツ設定の変更手順
本記事では、下記のステップでマッチング構成ファイルを編集し、バケツ設定を変更します。
- バケツ詳細の確認
- マッチング構成ファイル(JSONファイル)のダウンロード
- バケツ設定の確認
- バケツ設定の変更・更新
前提
- 以下のチュートリアルの「タスク4:データモデルの発行とマッチングの実行」までを実施済みであること。
-
APIページのAuthorizeが完了していること。
-
IBM Cloud Shell が使用可能であること。
1. バケツ詳細の確認
現時点でのバケツ詳細を確認します。
IBM Match 360でバケツ情報を確認してみた - 3. バケツ詳細の取得と同様に確認します。
{
"1632338434714166711": {
"candidate_records_count": 14,
"bucket_group": 1,
"member_records": [
"11011757314086515",
"10011757313869624",
"13741757313863996",
"12341757313863996",
"18131757313989983",
"14111757313992969",
"16521757313989849",
"10321757313990684",
"15441757313863996",
"19641757313986960",
"11641757313863996",
"14121757313869562",
"10911757313982861",
"18131757313981009"
],
"isLarge": false,
"contributing_prehashed_value": "BRNT"
}
}
"contributing_prehashed_value": "BRNT"から、BRNTという1トークンのバケツであることがわかります。
バケツ値が1トークンだけの場合、同じ値を持つレコードが多く集まりすぎてしまい、マッチング対象が膨大になります。たとえば「佐藤」や「鈴木」などの一般的な姓では、多数の候補と比較されることにより、マッチング処理に時間がかかってしまいます。
そのため、より適切な粒度でバケツが作成されるよう設定を調整し、マッチング性能を改善します。
後半でバケツ設定を変更し、このBRNTのバケツがどうなったかを確認しますので、覚えておいてください。
2. マッチング構成ファイル(JSONファイル)のダウンロード
マスター・データ・ホーム画面で、左のメニューから「Data Types」を開きます。

上部のメニューにある「ダウンロード」ボタンをクリックします。

「データ・モデル構成」のチェックを外し、「ダウンロード」クリックしてダウンロードします。

これでマッチング構成ファイルをダウンロードできました。
matching_configuration_から始まるJSONファイルです。
例:matching_configuration_IBM Match 360 with Watson-tutorial.json
3. バケツ設定の確認
ダウンロードしたマッチング構成ファイル(JSONファイル)を開くと、以下のような設定が含まれています。
マッチング構成ファイル(抜粋):
{
"person": {
"entity_types": {
"person_entity": {
...省略...
{
"method": "BucketGenerator.PickToken",
"max_tokens": [
6
],
"bucket_group": 1,
"inputs": [
1
],
"count": 100,
"maximum_bucket_size": 2500,
"search_only": true,
"label": "Bucket: Normphone Name",
"set_resource": "set_large_buckets_1",
"fields": [
"last_name.normphone",
"full_name.normphone",
"given_name.normphone"
],
"min_tokens": [
1
],
"order": true
}
...省略...
こちらの内容には下記のような項目があります。
fields
バケツとして利用するフィールドの一覧。last_nameなどの名前の音声文字列(normphone)が設定されています。
"fields": [
"last_name.normphone",
"full_name.normphone",
"given_name.normphone"
],
min_tokens
トークンの最小数。現在は1であるため、1つの単語だけでバケツを構成できます。
"min_tokens": [
1
],
4. バケツ設定の変更・更新
ここでトークンの最小数を1から2に変更してみます。
ファイルをエディタやメモ帳などで開いて下記のように変更して保存します。
"min_tokens": [
2
],
ここから編集したファイルをマスター・データ・ホーム画面でアップロードしていきます。
左のメニューから「Data Types」を開きます。

上部のメニューにある「アップロード」ボタンをクリックします。

「マッチング構成」にチェックをつけ、編集したJSONファイルをドラッグ&ドロップします。

成功したことを確認し、「キャンセル」をクリックしてウィンドウを閉じます。

マッチング再実行
バケツ設定を更新した後は、再度マッチング処理を実行する必要があります。
「エンティティー・タイプ and mat...」をクリックします。

「マッチングの実行」をクリックし、マッチング処理を実行します。

マッチング処理が開始されるので、マッチング・サマリーの画面が表示されるまで待ちます。

バケツの確認
IBM Match 360でバケツ情報を確認してみたと同じ方法で、Brandon Banksのレコードについて、いくつかバケツの詳細を見てみましょう。
まずはバケツ・ハッシュ値を確認します。
{
"record_key": {
"record_id": "283f35b6-78f4-432a-8550-6b5d456aa6ff",
"record_src": "Campaign Prospects",
"record_type": "person"
},
"record_number": "10011757313869624",
"self_scores": {
"person_entity": 184
},
"buckets": [
"2013769889038183780",
"5694575751643138514",
"5005448982474064355",
"2961161519390334616",
"2934434068362481123",
"4922320092744129665",
"7484608160338151829"
],
"standardized_values": "{\"home_telephone\":[{\"phone\":[\"5274880\"]}],\"gender\":[{\"gender\":[\"M\"]}],\"birth_date\":[{\"birth_day\":[\"05\"],\"birth_month\":[\"12\"],\"birth_year\":[\"XX70\"]}],\"legal_name\":[{\"full_name\":[\"BRANDON\",\"BANKS\"]}],\"personal_email\":[{\"email_domain\":[\"HOTMAIL.COM\"],\"email_local_part\":[\"BANKS70\"]}]}"
}
上記のバケツ・ハッシュ値からバケツ詳細を取得し、フィールドの組み合わせを確認します。
/mdm/v1/bucket_detailsで上記のバケツ・ハッシュ値を全て入力しコマンドを作成します。
さらにフィールドの組み合わせを確認しやすくするためにjqコマンドとgrepコマンドをつけて実行します。
実行コマンド例:
curl -X 'POST' \
...(省略)
-H 'Authorization: Bearer ...(省略)' | jq | grep contributing_prehashed_value
出力結果例:
"contributing_prehashed_value": "BNK+5274880"
"contributing_prehashed_value": "BANKS70"
"contributing_prehashed_value": "BRNT+5274880"
"contributing_prehashed_value": "BNK+BRNT"
"contributing_prehashed_value": "BNK+BRNT+05+12+XX70"
"contributing_prehashed_value": "BRNT+05+12+XX70"
"contributing_prehashed_value": "BNK+05+12+XX70"
上記を見て分かる通り、元々BRNTのみのバケツがありましたが、バケツ設定変更後はそのバケツが無くなっていることがわかります。
まとめ
本記事では、IBM Match 360 におけるバケツ設定の変更手順を紹介しました。JSON 構成を編集・反映し、マッチングを再実行することで、設定の違いが結果にどのような影響を与えるかを確認できることをご理解いただけたかと思います。
参考リンク


