SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

自然言語対話エンジン「Answers Anywhere」で実現する使いやすいUI(AD)

シノニム(同義語)機能でユーザーに柔軟な検索システムを提供する

自然言語対話エンジン「Answers Anywhere」で実現する使いやすいUI 第5回

  • X ポスト
  • このエントリーをはてなブックマークに追加

4. シノニムの設定

 シノニムファイルを設定するには設定したいエージェントをダブルクリックし、エージェントエディタを開きます。[Synonym Table]タブをクリックすると、このエージェントに設定されているシノニム辞書ファイルの内容が表示されます。

 [New]を押し、このエージェントに新規のシノニム辞書ファイルを設定することにします。ターゲットとそれに対するシノニムを記述し最後に[Save As]を押します。ファイル保存のダイアログが表示されるので表示内容の保存先となるファイル名を入力し[OK]を押します。一連の流れを図2~図5に示します。

図2 シノニム辞書ファイルの設定([Synonym]タブをクリック)
図2 シノニム辞書ファイルの設定([Synonym]タブをクリック)
図3 シノニム辞書ファイルの設定([New]を押下)
図3 シノニム辞書ファイルの設定([New]を押下)
図4 シノニム辞書ファイルの設定(シノニムを記述し[Save As]を押下)
図4 シノニム辞書ファイルの設定(シノニムを記述し[Save As]を押下)
図5 シノニム辞書ファイルの設定(シノニムをファイルに保存)
図5 シノニム辞書ファイルの設定(シノニムをファイルに保存)

5. シノニムの使用例

 連載で作成しているレストラン検索サンプルでは、現状ではジャンルはgenre.txtに定義した語しか認識ができません。そこでシノニムを利用してユーザーのジャンルの言い回しの自由度を上げてみましょう。また、語「有名」に星の数が多いという意味を持たせると「新宿の有名レストラン」のような問い合わせに対し「新宿の3つ星レストラン」を提示します。こうすると有名店を探したいというユーザーの要望に答えられそうです。このような意味づけもシノニムを使うことで可能となります。

 上記を実現するために必要なシノニム設定の内容を表1に示します。前節の手順に従い設定を行います。

表1 シノニム辞書ファイルの設定箇所
エージェント シノニム辞書の内容 ファイル名
ジャンル イタリアン: イタめし,イタリア料理 genre.synonym
中華: 中国料理
3: 有名 stars.synonym

 シノニムを追加したレストラン検索を実行してみます。Interaction Consoleより「新宿の有名なイタめし」と入力すると「ジャンル=イタリアン AND 星=3」の条件でレストランが1件検索されました(図6)。シノニムが想定どおり動作しています。

図6 実行結果
図6 実行結果

 シノニムが解釈された様子は解析結果のデバッグツールであるClaim Viewerでも確認できます。

 メニューの[View]-[Claim Viewer]を選択してClaim Viewerを開くと、入力した質問に対する、個々のエージェントの解析結果が階層表示されます(図7)。エージェント名が太字で書かれている部分をクリックして展開するとそのエージェントの出力したクレームが表示されます。その中の「Input claimed」にはクレーム対象となった入力語、「Pattern matched」にはターゲットの語が表示されます。

 ジャンルのエージェントを見るとシノニムとして設定した「イタめし」が「イタリアン」として認識され、星のエージェントでは「有名」は「3」と同義として認識されています。

図7 Claim Viewerによるデバッグ
図7 Claim Viewerによるデバッグ

次のページ
6. シノニム辞書ファイルの管理方法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
自然言語対話エンジン「Answers Anywhere」で実現する使いやすいUI連載記事一覧

もっと読む

この記事の著者

アイエニウエアソリューションズ株式会社 伊藤 純一(イトウ ジュンイチ)

アイエニウェア・ソリューションズ株式会社 シニアエンジニア。8ビットの時代からコンピュータに触りはじめBASIC、アセンブラ、C言語などを独習。サンマイクロシステムズ入社の年にJavaが発表され、そこでJavaによる金融系、官公庁系のシステム開発を中心に手がける。その後外資系ベンチャーのデジマ・ジャ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5130 2010/04/28 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング