言語処理学会 第24回年次大会 発表論文集 (2018年3月)

行政 FAQ ページからの対話フローチャート自動生成とそれに基づく対話ボットの構築
坂田 亘† 柴田 知秀†‡ 黒橋 禎夫†‡†
京都大学 ‡ 科学技術振興機構 CREST†‡{sakata, shibata, kuro}@nlp.ist.i.kyoto-u.ac.jp

1

概要

音声認識の向上、スマートフォンなどのモバイル端末環境の成熟により、音声対話エージェントによる種々のサービスが本格化しようとしている。購買支援などの商業アプリだけでなく、この状況を社会課題解決において活用することが重要である。そのひとつに行政と市民との新たなコミュニケーションチャネルとしての役割が考えられる。
本研究ではその端緒として、行政サービスに関する問合せに自動的に応答する対話ボットの構築に取り組んだ。自治体ホームページには多岐にわたる行政サービスの情報が掲載されているが、特に情報弱者と言われる人々にとって、「よくある質問」のキーワード検索などだけでは必要とする情報にたどり着くことは容易ではない。行政窓口や電話で職員によって行われる応対の一部を対話ボットで代替することができれば市民の利便性は格段に向上する。しかし、現状のボットサービスは表層的マッチングに基づいて URL リンクを提示する程度である。
本研究では行政サイトのテキスト情報、主に FAQページを解析することで対話フローチャートを生成し、それに基づき数往復の対話を行うシステムを構築する。対話フローチャートは自動生成後、確認・手動修正ができるため、自治体職員が確認を行うことで責任をもったサービスとすることができ、不適切な対話が行われることを防ぐこともできる。川崎市の FAQをもとにプロトタイプシステムを構築して予備実験を行い、最大の問題であるユーザ質問と FAQ のズレを解消するための知識獲得等を行う。

2

り、Recurrent Neural Network(RNN) を用いた対話システム [4] や外部メモリ付きの NN を用いた対話システム [1] などが提案されている。本研究のタスクでは、行政の質問に回答するというタスクの性質上、誤った応答はあまり許容できない。そのため、NN モデルのように出力がいつ正しく、いつ正しくないか判断するのが難しいモデルは適格ではない。
ユーザからの質問をもとに、情報源から回答としてふさわしい情報を検索して回答する Retrieval な手法も古くから研究されている [5][6]。この手法ではユーザーからの質問をもとに情報源の各文の回答になりやすさを計算し、回答候補を複数用意する。その後、いくつかの指標を用いてそれぞれの回答候補が回答としてふさわしいかの判断を行う。この手法では誤った応答は少なくなるものの、複数往復の対話は行うことができない。

3

提案システムは以下の構成要素からなっている。

1. FAQ ページを用いた対話応答
行政ページにおける FAQ の各 QA を自動解析し、フローチャートを生成する。フローチャートは手動で職員が修正可能である。対話ボットはユーザーからのクエリに対して、最も関連のあるフローチャートに従って対話を行う。このことで数往復の対話が可能であり、また不適切な対話を行わないように手動で対話を修正できる。
2. Factoid 型質問応答
行政ページには各種施設の電話番号や住所などが記載されており、これらの情報を取得することで、例えば「高津区役所の電話番号は？」などの質問に対応できる。

関連研究

対話システムには明確なタスクが存在するかどうかによって、タスク志向のものと非タスク志向のものに分けられる。本研究では、答えの存在する質問に回答するタスク志向の対話システムを扱う。
ニューラルネットワーク (NN) を用いて、質問と回答のペアを訓練データとして用いることでルールを設計せず、質問文から直接応答文を生成する End-toEnd なタスク志向対話モデルも近年研究が進んでお提案システムの構成要素

3. 雑談応答「ありがとう」に対して「どういたしまして」など、定型的な会話文を登録しておき雑談応答を実現する。
以下では FAQ ページを用いた対話応答について詳しく説明を行う。

― 971 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

のノードは「マッチング文」と「対話出力文」からなっている。「マッチング文」は分岐した単位ごとの回答部分の一行目であり、ユーザからのクエリとマッチングするために用いられる。「対話出力文」は重要度の高い文だけを残した回答部分であり、システムの出力に用いられる。これらはウェブ上インターフェースで手動で編集できる。具体的にはノードの追加および削除、マッチング文の追加および変更、対話出力文の変更などの修正が可能である。
また、FAQ ページには電話番号や住所などの情報が記載されていることがある。これらを取得することで、Factoid 型質問応答の情報源とすることができる。

5

図 1: FAQ ツリー

4

行政 FAQ ページの自動解析

本システムでは行政サイトの FAQ ページの回答部分が重要な情報源となる。FAQ ページを用いた対話応答では、その回答部分をベースに応答を行うが、回答部分をそのまま出力すると回答の分量が大きすぎ、ユーザーにとって情報過多となる。そのため、回答部分の条件分岐、例外、手順などを検知し、回答部分を分割し、ユーザーを必要な情報に誘導することが重要である。本システムでは、FAQ ページにおいて、単純な箇条書きに対するマッチングを用いて、この検出を行う。
また、各文の重要度を一定の指標により評価し、システムの出力の分量が適当な粒度になるように、重要な箇所のみを抽出したい。本システムでは次のように重要文の判定を行う。特定のパターンを含む節は重要度が低いと判断する。例えば、括弧内の節、「※」から始まる節などである。また、回答部分が一定以上長い場合は文の位置が該当ページの始めの方である場合、重要度が高いと判断できる。
これらの情報を用いてフローチャートを生成する。
図 1 のように一つの FAQ ページをツリー状のフローで表す。以降，この構造を FAQ ツリーまたは単にツリーと呼ぶことにする。また、このツリー全体を対話フローチャートと呼ぶ。ツリーは上で検出した条件分岐、例外、手順ごとにノードに分岐している。各ツリー

対話管理

対話システムがユーザーからのクエリを受け付けたとき、そのクエリ文が Factoid 型対話応答、雑談応答に登録されているクエリであればそれぞれのモジュールに従って対話を行う。登録されていないときは、対話フローチャートを用いた対話応答を行う。
初期状態でユーザーからクエリを受け付けたとき、システムは全ツリーの根ノードのマッチング文から最も類似度の高いツリーを見つけ、その根ノードをシステムの状態として持つ。このとき、システムは根ノードの対話出力文を発話する。ただし、同程度類似度の高いツリーが複数あったときは、それらをユーザーに提示し、「次のどちらの事でしょうか」というように選択するように促す。
システムが状態としてノードを持っているときにクエリを受け付けたとき、ユーザからのクエリに対して、対話システムは現在のノードの各子ノード及び祖先の子ノードのマッチング文と類似度検索を行う。その後、もっとも類似度の高い子ノードの対話出力文を発話し、子ノードをシステムの状態として更新する。
最も高い類似度が閾値を下回る場合には、再び初期状態として全ツリーの根ノードのマッチング文と類似度計算を行う。全ツリーとのマッチングにおいても最も高い類似度が閾値を下回った場合には、回答を諦めることとする。
全ツリーの根ノードとユーザーの質問をマッチングするために日本語ウェブ文書検索エンジン TSUBAKI [3] を利用する。TSUBAKI では辞書などから取得した同義関係にある語彙対を SYNGRAPH データ構造 [2] で保持している。本システムでは検索対象であるウェブ文書群は各 FAQ ツリーのマッチング文を一つのウェブ文書としてみなすことで生成する。マッチング文が複数存在するときは、それぞれ別の文書として生成する。また、ノードの各子ノードとのマッチングには類似度として TSUBAKI のスコアではなく、単に単語の一致度のみを利用する。

― 972 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 1: 行政対話ボットの対話例
USU
SU
S

粗大ゴミを捨てたい
以下のどちらの事でしょうか
1: 粗大ごみ処理手数料について知りたい。
2: 粗大ごみの出し方について知りたい。
出し方を教えて「粗大ごみの出し方について知りたい。」についてお答えします
粗大ごみの収集は有料です。
金属を含むものは 30cm 以上、金属を含まないものは 50cm 以上が粗大ごみです。
粗大ごみの出し方は、次の通りです。
1 収集申込みをする
2 粗大ごみ処理券を購入する
3 収集日に粗大ごみ処理シールを貼って出す
どれが聞きたいですか
ゴミ処理券の買い方「2 粗大ごみ処理券を購入する」についてお答えします
粗大ごみ処理手数料は長さなどにより、200 円、500 円、1,000 円の 3 区分があります。
申込みの際に確認した金額分の「川崎市粗大ごみ処理券」を購入してください。

表 2: クラウドソーシングを用いた手動評価の結果
正しく回答できた25%
表現のズレで回答できなかった 24%
FAQ に情報がなかった
40%

6

予備実験

川崎市行政サイト 1 の FAQ ページを利用し、LINE上で対話システムを実装した。川崎行政サイトの FAQは 1637 ページ存在する。対話例を表 1 に示す。表 1
では図 1 のツリーに従って 3 往復の会話が実現できている。
システムの評価のためにクラウドソーシングを行い、行政についての質問を収集した。集まった質問の例として「どれくらいからが粗大ごみになりますか」、「年末年始やってる病院はどこですか」などがあった。
質問 100 件を対話ボットに発話し、正しく回答できたかについて人手で評価した。結果は表 2 のようになった。ユーザーが本来聞きたかったと想定される内容はFAQ ページ内に記載されているものの、表現のズレによってマッチングが上手く行われず回答できなかったものが多く存在した。表現のズレに対して正しく対応することが必要であることがわかる。

7

ユーザーからの質問と FAQ の質問部分との柔軟なマッチング

以下では表現のズレに対応するために行った同義表
現の取得、質問意図の推測の手法について説明する。

7.1

同義表現の取得「パスポートの取り方」↔「旅券の取り方」のようにユーザーからの質問には表現のズレが存在する。そのため、パスポート ↔ 旅券のような同義語対の取得が必要である。コーパス内に出現する括弧表現を用いた同義表現の取得を行う [7]。コーパスは全国 784 自治体のホームページのテキスト情報を利用する。
また、述語項の分散表現を用いて項を共有する述語項同義表現の取得が行える [8]。分散表現の学習はウェブコーパスによって行い、述語項の候補は自治体ホームページのテキストから取得した。取得した同義表現を TSUBAKI の SYNGRAPH に登録し、マッチングに用いる。以上の処理によって取得した同義表現について代表的なものを表 3(a)(b) に示す。

7.2

ユーザーの質問意図の推測システムが「運動不足だ」のような表現からユーザーの意図「プールに行きたい」を推測できれば便利である。質問意図を推測する手がかりとして、QA コ
ミュニティサイト「Yahoo!知恵袋」の質問を利用できる。Yahoo!知恵袋の質問は複数文からなっており、質問内容の抽象的表現とともに具体的表現が含まれていることが期待できる。例えば、「運動不足を解消するために水泳をしたいです。今住んでいるのが井土ヶ谷なので近いところでプールなど探しています。」という質問には、「運動不足の解消」、「水泳をしたい」という抽象意図表現とともに「プールを探す」という具体意図表現が含まれている。これを用いて、次の手順に従い抽象意図表現と具体意図表現のペアを取得する。

1. 行政サイトの各 FAQ ページと関連度の高い Yahoo!知恵袋の質問群を取得する。
例えば、行政サイト内に「プールに行きたいのですが」という FAQ ページがあれば、これと類似

1 http://www.city.kawasaki.jp― 973 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 3: 取得した同義表現対及び抽象意図表現と具体意
図表現の対(a) 括弧同義表現 (計 162 件)
マイナンバーカード
旅券

個人番号カード
パスポート(b) 述語項同義表現 (計約 35,000 件)
保険料を納める
住民票がない保険料を支払う住民票が必要だ(c) 抽象具体表現
運動不足の解消
海外旅行に行く

プールに行きたいのですがパスポート申請について知りたいした質問であるような Yahoo!知恵袋の質問群を取得することで、具体意図表現「プールに行きたい」に対する抽象意図表現を含んだ文書を入手する。このとき、Yahoo!知恵袋内において「暮らしと生活」カテゴリ内の質問のみを対象とする。関
連度の計算には TSUBAKI を用いる。

2. 取得した文書から抽象表現を抽出する。
取得した文書の中から具体表現に対応した抽象表現を見つけるために、各種のモダリティ情報が利用できる。各文書は KNP を用いて節ごとに分割しモダリティ解析を行い、以下のように条件を満たす節を抽象表現候補とする。
(a) 「教えて下さい」など質問文に定型な表現を含む節は重要度が低いため除く。
(b) モダリティ解析の結果、疑問となった節は具体度が高いと考えられるために除く。
(c) 上記の条件を満たした上で、モダリティ解析の結果「意志」である文節または「ために」が後に続く文節を含む節を抽象表現候補とする。
取得したペアを手動で峻別し対応するツリーの根ノードのマッチング文に抽象表現を追加することで、ユーザーからの質問が抽象表現であった時に適切に返答できることが期待される。この処理によって得られた抽象意図表現、具体意図表現のペアを表 3(c) に示す。

8

まとめと今後の課題

本研究では行政サイトのテキスト情報を自動解析することで対話フローチャートの生成を行い、それに基づき動作する対話システムを設計した。自動解析において行政サイトの FAQ ページに見られる特定のパターンを利用して、各 FAQ ページをツリー状のデータ構造に変換した。また、ユーザーの質問表現のズレに対応するために、同義表現の取得、質問意図の推測を行える機構を設計した。
今後の課題としてまず、獲得した同義・意図表現知識の有効性を検証する。また、FAQ の回答部分のより深い自動解析を行うこと、FAQ ページ以外の行政ホームページの情報を活用すること、行政ホームページを横断的に分析することによる知識獲得などが考えられる。
本研究は、行政と市民との新たなコミュニケーションチャネルを構築するという目標のもとに開始した。
今後いくつかの自治体と実証実験を行う予定である。
そこに寄せられる市民の質問・意見を分析し、対話システムを改善していくとともに、問い合わせ履歴のマイニングにより市民の潜在的ニーズを分析することが可能である。また、このようなチャネルが確立すれば、これが災害時の双方向支援のツールとしても機能するものと考えている。

謝辞
本研究は JST CREST「知識に基づく構造的言語処理の確立と知識インフラの構築」の支援を受けたものである。

参考文献[1] Antoine Bordes and Jason Weston. Learning end-toend goal-oriented dialog. CoRR, 2016.
[2] Tomohide Shibata, Michitaka Odani, Jun Harashima,Takashi Oonishi, and Sadao Kurohashi.
SYNGRAPH: A flexible matching method based on synonymous expression extraction from an ordinary dictionary and a web corpus. In Proceedings of Third
International Joint Conference on Natural Language
Processing (IJCNLP2008), pp. 787–792, 2008.
[3] Keiji Shinzato, Tomohide Shibata, Daisuke Kawahara, Chikara Hashimoto, and Sadao Kurohashi.
TSUBAKI: An open search engine infrastructure fordeveloping new information access methodology. InProceedings of Third International Joint Conference
on Natural Language Processing (IJCNLP2008), pp.
189–196, 2008.
[4] Oriol Vinyals and Quoc V. Le. A neural conversational model. CoRR, 2015.
[5] Yu Wu, Wei Wu, Ming Zhou, and Zhoujun Li. Sequential match network: A new architecture formulti-turn response selection in retrieval-based chatbots. In ACL, 2017.
[6] Peng Chen Ming Zhou Jianshe Zhou Zhoujun LiZhao Yan, Nan Duan. Building task-oriented dialogue systems for online shopping. In Proceedings of
the Thirty-First AAAI Conference on Artificial Intelligence, pp. 516–525, 2017.
[7] 笹野遼平, 河原大輔, 黒橋禎夫. 自動獲得した知識に基づく統合的な照応解析. 言語処理学会 第 12 回年次大会,pp. 480–483, 2006.
[8] 澤田晋之介, 柴田知秀, 黒橋禎夫. 項共有述語項の意味
関係コーパスの整備および同義・反義性判定. 言語処理学会第 24 回年次大会, 2018.

― 974 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.