シノニム辞書とは
シノニム辞書とは、検索エンジンにおいて異なる表記や言い回しを同一の意味として扱うための対応表
読み: シノニムジショ
検索エンジンにおいて異なる表記や言い回しを同一の意味として扱うための対応表。「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長期記憶システムを自社開発・運用している(2026年4月現在、1,655件の記憶データを蓄積)。この仕組みにより、AIが過去3ヶ月分の経営判断や設計方針を文脈ごと保持し、「前にも同じ話をしましたよね」という手戻りが激減した。セッションが切れても議論の続きから再開できるため、壁打ち相手としてのAIの価値が根本的に変わった。技術的にはCognee MCPサーバーによる記憶保存と、FastEmbed(ONNX Runtime)+ LanceDBによる非常駐型ベクトル検索(検索レイテンシ8ms、GPU不要)を採用。Hindsight(LongMemEval 91.4%精度)やomega-memoryなど複数の既製品を実環境で検証・棄却した上での選定であり、「個人PCでもエンタープライズでも負荷なく動く軽量さ」を最優先に設計している。
同じ失敗を二度としないAIエージェント
今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。
当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。
古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。
