シノニム辞書とは

SYNONYM DICTIONARY
読み: シノニムジショ

シノニム辞書とは、シノニム辞書(同義語辞書)とは

読み: シノニムジショ

シノニム辞書(同義語辞書)とは、検索エンジンにおいて異なる表記や言い回しを同一の意味として扱うための対応表。「PC」と「パソコン」、「ML」と「機械学習」、「退職」と「離職」のように、同じ概念を指す複数の表現を登録する。レキシカル検索の弱点であるキーワード不一致の問題を補完する実務上の標準的な手法。

かんたんに言うと

検索エンジンに「この言葉とこの言葉は同じ意味」と教える辞書ファイル。「スマホ」で検索しても「スマートフォン」がヒットするのは、裏でシノニム辞書が働いているから。Elasticsearchでは設定ファイルに同義語ペアを記述するだけで適用できる。

Elasticsearchでの実装

Elasticsearchではsynonymトークンフィルターでシノニム辞書を適用する。辞書の定義方法は2種類ある。インラインでanalyzer設定内に直接書く方法と、外部ファイル(synonyms.txt)を参照する方法。運用規模が大きい場合は外部ファイルの方が管理しやすい。辞書の更新後はインデックスの再オープンまたは再作成が必要で、即時反映はできない。Elasticsearch 8.10以降ではSynonyms APIでAPI経由の動的更新が可能になった。

展開型と置換型の違い

シノニム辞書には展開型(expand)と置換型(contract)がある。展開型は「PC, パソコン, パーソナルコンピュータ」と書くと、どの表記で検索しても全ての文書がヒットする。置換型は「PC, パソコン => パーソナルコンピュータ」と書き、全てを正規化された表記に統一する。展開型は検索の網が広がるが、意図しないヒットが増える。置換型は精度が高いが、辞書のメンテナンスが煩雑になる。ECサイトでは商品名の表記揺れに展開型、法律文書では置換型が使われることが多い。

ベクトル検索との棲み分け

ベクトル検索は辞書なしで概念の近さを計算できるため、シノニム辞書が不要に見える。だが実際には両者は補完関係にある。ベクトル検索は「犬」と「ペット」の関連は捉えるが、「型番ABC-123」と「ABC123」のような表記揺れには弱い。業務固有の略語(社内用語、製品コード等)もベクトルモデルでは学習されていない。シノニム辞書はこうした決定論的な対応が必要な場面で使う。ハイブリッド検索構成ではレキシカル検索側にシノニム辞書を適用し、ベクトル検索側で意味の類似性を補完する。

導入時の判断基準

検索のヒット率が低い場合、まずクエリログを分析してゼロヒットの検索語を洗い出す。その中に表記揺れや同義語の問題があればシノニム辞書で対応する。辞書のメンテナンスは継続的な作業になるため、運用体制を確保してから導入する。登録語数が数十件なら手動管理で十分。数百件を超えるなら辞書管理ツールの導入を検討する。辞書の品質がそのまま検索品質に直結するため、登録ミス(誤った同義語ペア)のレビュー体制も必要。

当社の見解

当社はAI長期記憶システムを自社開発・運用している。開発のきっかけは、AIと経営戦略の壁打ちで出した結論がセッション切れで消えたことで絶望を感じた。1日かけて議論してきたことを振り返り、では事業計画書に落とし込むように指示を出したところ、「そのような記録はありません」と言われたことで、強烈な危機感を覚えこれは何としても解決しなければならない問題だと感じた。記憶がないAIは毎朝記憶喪失になる新入社員と同じだ。記憶があるAIは、前提条件を理解した上で本題に入れる。短いプロンプトで済むようになり、「前に言ったように実行して」と曖昧で短いプロンプトでも業務を遂行してくれる。同じことを繰り返し伝える回数も減り、開発業務でも同じミスを繰り返しにくくなり、人間の手戻りが減り、ストレスも減る。AIで本当に業務の質を上げるならば、記憶はマストである。

同じ失敗を二度としないAIエージェント

今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。

当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。

古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。

相談する