シノニム(同義語)機能でユーザーに柔軟な検索システムを提供する
自然言語対話エンジン「Answers Anywhere」で実現する使いやすいUI 第5回
ダウンロード サンプルファイル (523.5 KB)
4. シノニムの設定
シノニムファイルを設定するには設定したいエージェントをダブルクリックし、エージェントエディタを開きます。[Synonym Table]タブをクリックすると、このエージェントに設定されているシノニム辞書ファイルの内容が表示されます。
[New]を押し、このエージェントに新規のシノニム辞書ファイルを設定することにします。ターゲットとそれに対するシノニムを記述し最後に[Save As]を押します。ファイル保存のダイアログが表示されるので表示内容の保存先となるファイル名を入力し[OK]を押します。一連の流れを図2~図5に示します。
5. シノニムの使用例
連載で作成しているレストラン検索サンプルでは、現状ではジャンルはgenre.txtに定義した語しか認識ができません。そこでシノニムを利用してユーザーのジャンルの言い回しの自由度を上げてみましょう。また、語「有名」に星の数が多いという意味を持たせると「新宿の有名レストラン」のような問い合わせに対し「新宿の3つ星レストラン」を提示します。こうすると有名店を探したいというユーザーの要望に答えられそうです。このような意味づけもシノニムを使うことで可能となります。
上記を実現するために必要なシノニム設定の内容を表1に示します。前節の手順に従い設定を行います。
| エージェント | シノニム辞書の内容 | ファイル名 |
| ジャンル | イタリアン: イタめし,イタリア料理 | genre.synonym |
| 中華: 中国料理 | ||
| 星 | 3: 有名 | stars.synonym |
シノニムを追加したレストラン検索を実行してみます。Interaction Consoleより「新宿の有名なイタめし」と入力すると「ジャンル=イタリアン AND 星=3」の条件でレストランが1件検索されました(図6)。シノニムが想定どおり動作しています。
シノニムが解釈された様子は解析結果のデバッグツールであるClaim Viewerでも確認できます。
メニューの[View]-[Claim Viewer]を選択してClaim Viewerを開くと、入力した質問に対する、個々のエージェントの解析結果が階層表示されます(図7)。エージェント名が太字で書かれている部分をクリックして展開するとそのエージェントの出力したクレームが表示されます。その中の「Input claimed」にはクレーム対象となった入力語、「Pattern matched」にはターゲットの語が表示されます。
ジャンルのエージェントを見るとシノニムとして設定した「イタめし」が「イタリアン」として認識され、星のエージェントでは「有名」は「3」と同義として認識されています。
この記事は参考になりましたか?
- 自然言語対話エンジン「Answers Anywhere」で実現する使いやすいUI連載記事一覧
-
- シノニム(同義語)機能でユーザーに柔軟な検索システムを提供する
- 対話しながら検索できるコンシェルジェ風アプリの実装(2) ~ 推論ヒントでユーザーをナビゲ...
- 対話しながら検索できるコンシェルジェ風アプリの実装
- この記事の著者
-
アイエニウエアソリューションズ株式会社 伊藤 純一(イトウ ジュンイチ)
アイエニウェア・ソリューションズ株式会社 シニアエンジニア。8ビットの時代からコンピュータに触りはじめBASIC、アセンブラ、C言語などを独習。サンマイクロシステムズ入社の年にJavaが発表され、そこでJavaによる金融系、官公庁系のシステム開発を中心に手がける。その後外資系ベンチャーのデジマ・ジャ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア

![図2 シノニム辞書ファイルの設定([Synonym]タブをクリック)](http://cz-cdn.shoeisha.jp/static/images/article/5130/fig02_s.gif)
![図3 シノニム辞書ファイルの設定([New]を押下)](http://cz-cdn.shoeisha.jp/static/images/article/5130/fig03_s.gif)
![図4 シノニム辞書ファイルの設定(シノニムを記述し[Save As]を押下)](http://cz-cdn.shoeisha.jp/static/images/article/5130/fig04_s.gif)


