Salesforceの検索動作の話

6.6K Views

February 20, 23

スライド概要

profile-image

主にSalesforceに関する資料をUPします

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Salesforceの検索動作の話 ~検索がヒットするとき、しないとき~ Mark Hammer Twitter: @Mar9Hammer https://sfblog.markhammer.net/

2.

概要 ● Salesforceのグローバル検索では、形態素解析を用いてレコードの検索対象項 目値をトークン化し、そのトークンと検索ワードのトークンを比較して検索結果を 表示している ● このトークンの動作により、「項目値に入っている文字列を検索ワードに設定した のに検索結果が出ない」という問題が発生する ● 今回はこのトークン分割及び検索結果に関する話をする ● 今回の対象はグローバル検索のみで、その他の検索(レポートの「文字列を含 む」やレポートの絞り込みなど)は含まない 2

3.

トークン化について ● Salesforceでは2015/4から検索基盤に形態素解析を用いている ○ 例えば「東京都知事」という文字列があった場合、 東京|都|知事 とトークン化する ○ 検索の際は、検索対象文字列「東京都知事」に含まれるトークンと検索ワードの トークンが一致すれば検索結果に表示する ○ 例えば ・検索ワードが「東京」:トークンに「東京」があるのでヒット ・検索ワードが「京都」:トークンに「京都」がないのでヒットしない ● 以前は文字列を 2 文字ごとに分割するバイグラム(2-Gram)を用いていた ○ 例えば「東京都知事」は 東京|京都|都知|知事 とトークン化する ○ この場合、検索ワードが「東京」「京都」いずれでもヒットする 3

4.

トークン化手法のメリット・デメリット ● 形態素解析、バイグラムどちらもメリット、デメリットがある ● 形態素解析 ○ メリット ■ 「この検索ワードでヒットしてほしいもの」のみがヒットしやすい (検索結果にノイズが入らない) ○ デメリット ■ 「この検索ワードでヒットしてほしいもの」がヒットしないことが起こりやすい (後述) ● バイグラム ○ メリット ■ 検索ワードを含むものなら検索結果に出るので「この検索ワードでヒットしない」という問題 が起こりにくい ○ デメリット ■ 検索結果にノイズが入りやすい (検索ワード「京都」で「東京都」のヒットはふつう求めていない) 4

5.

形態素解析のトークン化動作を見る ● Google ColaboratoryにてPythonを使用して形態素解析のトークン化を見ること ができる ○ Salesforce側の動作と一致しないことに注意(後述) ● 文章例 ● 住所例 5

6.

Salesforceグローバル検索がヒットしない例 ● 取引先住所に「秋田県北秋田郡上小阿仁村大字沖田面字小蒲野下タ川原」と 設定した取引先を作成 ● グローバル検索で「沖田」と検索 ⇒ヒットしない ○ これは住所をトークン化したときに「沖田」がないことが原因 ● ちなみにMeCabでは「上小阿仁|村」とトークン化されたので検索ワード「上小」 ではヒットしないはずだが、実際はヒットする ⇒Salesforce側のトークン化の動作はMeCabのものと一致しない 6

7.

Salesforceグローバル検索がヒットしない場合の対策 ● 対策として打てる方法はあまりない ○ せいぜいテキスト項目を作成してそこに検索にヒットさせたい単語を入れる ぐらい ○ これはトークン化の機能にSalesforceユーザが関与できないため ● 一応Salesforceサポートにヒットしないことを伝えることはできる ○ 但し回答は「こういう理由でヒットしません」だけで、その場で改善はされない ● どうしても不満な場合はKonaSearchなどSalesforce外の製品を使用する必要 がある 7

8.

おまけ:形態素解析の改善方法 ● 形態素解析で「この検索ワードでこの文字をヒットさせたい」改善を行うには、大 きく2つある ● カスタム辞書 ○ ○ ○ 文字のトークン化をユーザ側で指定する方法 これにより検索結果からノイズの除去、またはヒットするよう改善を行ったりできる 例:「東京都知事」のトークン化を「東京|都|知事」から「東京都|知事」に変えたり できる ● シノニム(類義語) ○ ○ ワードAを全く違うワードBでもヒットさせたい時に行う 例:「Nintendo Switch」を検索ワード「任天堂スイッチ」でヒットさせる ○ Salesforceナレッジ検索ではこの機能が使える(リンク) ⇒いずれもSalesforceユーザ側で変更することはできない 8

9.

終わり ご清聴ありがとうございました 9

10.

参考資料 ● ● ● ● Einstein Search のしくみ 新検索基盤の形態素解析について 新検索基盤導入に伴うひらがな、カタカナ検索の動作変更について 第6回 N-gramと形態素解析との比較 | gihyo.jp ● ● ● Google Colaboratoryで形態素解析 | MeCabとJanomeの使い方 - omathin blog 営業のデータ検索力を高める「KonaSearch」とは Salesforce活用を強化する営業の味方 Solr と自然言語処理によるSalesforce のディープサーチ 10