CloudSearchのストップワードチューニング


概要

2019年現在、CloudSearchではデフォルトのストップワードに長音記号が入っていないので、検索結果で今一つしっくりこないときはStopWordに長音記号「ー」を登録しておくと良いでしょう。

背景

サイト内の検索で「ハニー」を検索するとレシピ名としてハニーとは関係のないタイトルが検索結果として出ていました。

  • リースミートローフ・とろーりチーズフォンデュ風
  • マヨなしヘルシーおいしー しらすと大葉のマカロニサラダ
  • やみつきー 蓮根と鶏ひき肉のガーリックのり塩ペッパー炒め
  • とろちーずクリームのふわふわオムレット【簡単・HM使用】
  • サクッじゅわー 旨味たっぷり 鶏胸肉の海苔チーフライ

CloudSearchに登録する際、タイトル名の文字列以外に、類義語である「蜂蜜」なども一緒に登録しているので、何らか「ハニー」や「蜂蜜」が前面に出てきている料理名であることを期待しているのですが、あまりにもかけ離れている、という状況がありました。

調査

AWSコンソールのCloudSearchではテストサーチが出来るので、検索用のサーチドメイン「my-test-domain」の検索窓に下記を打ち込みます。(OptionはStructuredを選択しています。)

(and title:'ハニー'  source_disp_name:'レシピ' status:1)

Goボタンを押すと、下記のような感じの結果が出てきます。
※これはストップワードを調整済みのものです。
画像だと見づらいのですが、検索ヒットした文字が太字で表示されます。(この場合は「ハニー」が太字になっています。)

ストップワード調整前のタイトルを簡略化して抜き出すと下記のような感じ、でした。

項目
title リースミトローフ・とろりチズフォンデュ風
title マヨなしヘルシーおいし しらすと大葉のマカロニサラダ
title やみつき 蓮根と鶏ひき肉のガーリックのり塩ペッパ炒め
title とろちずクリムのふわふわオムレット【簡単・HM使用】
title サクッじゅわ 旨味たっぷり 鶏胸肉の海苔チフライ

チューニング前の状態では、「ー」が太字になっていました。
ということは、CloudSearchの中のIndexで「ー」で検索ヒットするリストが出来上がっているため、「ー」での検索結果が表示されているのではないかと思うのです。(詳しい動作はブラックボックスでよく分かりませんが)

形態素解析で長音記号「ー」を一つの文字として分離させないような設定があれば・・・・と思ったのですがCloudSearchには分離させないような・・・設定はありません。代わりにこれを防ごうとするのが「ストップワード」の登録となります。

変更の実施

右メニューのAnalysis Schemesを開きます。

から、CloudSearchドメインに適用中の形態素解析名をクリックすると、ストップワードのタブが開かれたモーダルがでてきます。AddStopword のところに1つづつ適用しても用意ですし、CurrentStopwordsに直接書きこんでもよいでしょう。
画面では「ー」の他に今一つ検索結果として良くなかったものも登録しています。助詞はあらかじめStopwordに登録されているような記述をどこかで見かけましたが

Updateボタンを押すとストップワードの登録は完了です。
「Run Indexing」ボタンが出てくるので、インデックスを再構築します。

参考

Amazon CloudSearch のテキスト分析スキームの設定
https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/configuring-analysis-schemes.html

デフォルトのストップワードディクショナリ
https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/text-processing.html#japanese
2019年12月現在、ストップワードは下記の通りでした。
の に は を た が で て と し れ さ ある いる も する から な こと として い や れる など なっ ない この ため その あっ よう また もの という あり まで られ なる へ か だ これ によって により おり より による ず なり られる において ば なかっ なく しかし について せ だっ その後 できる それ う ので なお のみ でき き つ における および いう さらに でも ら たり その他 に関する たち ます ん なら に対して 特に せる 及び これら とき では にて ほか ながら うち そして とともに ただし かつて それぞれ または お ほど ものの に対する ほとんど と共に といった です とも ところ ここ