\section{はじめに}
\thispagestyle{empty}何かを調べたいとき，一番よい方法はよく知っている人(その分野の専門家)に直接聞くことである．多くの場合，自分の調べたいこととその答えの間には，具体性のズレ，表現のズレ，背景の認識の不足などがあるが，専門家は質問者との対話を通してそのようなギャップをうめてくれるのである．現在，WWWなどに大規模な電子化テキスト集合が存在するようになり，潜在的にはどのような質問に対してもどこかに答えがあるという状況が生まれつつある．しかし，今のところWWWを調べても専門家に聞くような便利さはない．その最大の原因は，上記のようなギャップを埋めてくれる対話的な能力が計算機にないためである．例えば，ユーザがWWWのサーチエンジンに漠然とした検索語を入力すると多くのテキストがヒットしてしまい，ユーザは多大な労力を費して適切なテキストを探さなければならない．このような問題は，ドメインを限定し，ユーザが比較的明確な目的を持って検索を行う場合でも同様である．我々は予備調査として，マイクロソフトが提供している自然言語テキスト検索システム「話し言葉検索」\footnote{\tthttp://www.microsoft.com/japan/enable/nlsearch/}の検索ログを分析した．その結果，全体の約3割の質問はその意図が不明確であることがわかった．このような曖昧な質問に対しては多くのテキストがマッチしてしまうので，ユーザが検索結果に満足しているとはいいがたい．この問題を解決するためには，「曖昧な質問への聞き返し」を行うことが必要となる．すでに実現されている情報検索システムには，大きく分けてテキスト検索システムと質問応答システムの2つのタイプがある．前者は質問キーワードに対して適合するテキスト(のリスト)を返し，後者は質問文に対してその答えを直接返す．しかし，曖昧な質問を行ったユーザを具体的なテキストまたは答えに導く必要性は両者に共通する．以下では，「曖昧な質問への聞き返し」に焦点をあてて，過去の研究を俯瞰する(表\ref{tab:情報検索の種々のタイプ})．テキスト検索システムにおいて，質問とテキストの具体性のギャップを埋めるために聞き返しを行う方法としては，以下の手法が提案されてきた．\begin{table}\caption{情報検索の種々のタイプ}\label{tab:情報検索の種々のタイプ}\begin{center}\footnotesize\begin{tabular}{l|cccc}\hline手法/システム&ユーザ質問&出力&聞き返しの媒体&規模\\\hline\hline一般的なテキスト検索システム&キーワードの&テキストの&×&○\\&リスト&リスト\\\hlineテキストによる聞き返し&キーワードの&テキストの&テキスト&○\\(SMART,WWWサーチエンジン)&リスト&リスト\\\hline関連キーワードによる聞き返し&キーワードの&テキストの&キーワード&○\\(RCAUU,DualNAVI,Excite)&リスト&リスト\\\hlineテキストと関連キーワードによる&キーワードの&テキスト&テキストと&△\\聞き返し(THOMAS)&リスト&&キーワード&\\\hlineクラスタリング&キーワードの&テキストの&クラスタ&○\\(Scatter/Gather,WebSOM)&リスト&リスト&(キーワードor\\&&&テキストで表現)&\\\hline\hline人工言語による知識体系の利用&自然言語&自然言語&自然言語&×\\(UC)&&(答え)&&\\\hlineFAQテキストの利用&自然言語&自然言語&×&△\\(FAQFinder)&&(答え)&&\\\hlineドメイン独立テキストの利用&自然言語&自然言語&×&○\\(TRECQA/NTCIRQAC)&&(答え)&&\\\hline京都大学ヘルプシステム&自然言語&自然言語&自然言語&△\\&&(答え)&&\\\hline\hlineダイアログナビ&自然言語&自然言語&自然言語&○\\&&(状況説明文)&&\\\hline\end{tabular}\end{center}\end{table}\begin{itemize}\itemテキストによる聞き返し検索結果から適合テキストをユーザに判定させ，それを検索式の修正に反映させる手法は，SMARTシステムなどで実験が行われている\cite{Rocchio71}\footnote{このようにユーザが適合テキストを選ぶ方法は，「適合性フィードバック」とよばれている．しかし，ユーザに聞き返しを行って何らかの情報をえること全体が，広い意味での適合性フィードバックであるので，ここではその用語は用いていない．}．Google\footnote{\tthttp://www.google.com/}などのWWWサーチエンジンでは，検索結果からテキストを1個選んで，その関連テキストを表示させることができるが，この方法もユーザによる適合テキストの判定とみなすことができる．\item関連キーワードによる聞き返し検索結果から，ユーザが入力したキーワードに関連するキーワードを抽出し，選択肢として提示するシステムとしては，RCAAU\cite{RCAAU}，DualNAVI\cite{DualNAVI}，Excite\footnote{\tthttp://www.excite.com/}などがある．\itemテキストと関連キーワードを組み合わせた聞き返しTHOMAS\cite{Oddy77}は，ユーザの情報要求を，「イメージ」とよばれるキーワード集合として保持し，テキスト1個と関連キーワードを併せて提示してそれらの適合性をユーザに判定させるプロセスを繰り返すことで，「イメージ」を徐々に具体化させようとするシステムである．ただし，1970年代に提案されたシステムであり，小規模なテキスト集合にしか適用できない．\itemクラスタリング検索されたテキストをクラスタリングし，クラスタを選択肢として提示するシステムとしては，Scatter/Gather\cite{Hearst96}，WEBSOM\cite{Lagus00}などがある．これらのシステムでは，各クラスタは，それに属するテキストのリストや，代表的なキーワードのリストとして表現されている．\end{itemize}これらのシステムの聞き返しの媒体は，いずれもキーワードまたはテキストのレベルである．しかし，キーワードは抽象化されすぎており表現力がとぼしく，逆にテキストは具体的すぎるため，聞き返しの媒体としては必ずしも適切ではない．一方，質問応答システムとしては，1980年代にUC\cite{UC}などのシステムが研究された．これらのシステムは，ユーザの意図が曖昧な場合に自然言語による聞き返しを行う能力を備えていたが，そのためには人工言語で記述された，システムに特化した知識ベースが必要であった．しかし，十分な能力をもつ人工言語の設計の困難さ，知識ベース作成のコストなどの問題から，このような方法には明らかにスケーラビリティがない．1990年代になって，電子化された大量の自然言語テキストが利用可能になったことから，自然言語テキストを知識ベースとして用いる質問応答システムの研究が盛んになってきた．インターネットのニュースグループのFAQファイルを利用するシステムとしては，FAQFinder\cite{Hammond95}がある．また最近は，構造化されていないドメイン独立のテキスト(新聞記事やWWWテキスト)を用いた質問応答システムの研究が，TRECQATrack\cite{TREC9}やNTCIRQAC\cite{QAC}において盛んに行われている\cite{Harabagiu01,TREC_LIMSI,QAC_Murata,QAC_Kawahara}．しかし，これらのシステムはユーザの質問が具体的であることを前提にして，1回の質問に対して答えを1回返すだけであり，曖昧な質問に対して聞き返しを行う能力は備えていない．京都大学総合情報メディアセンターのヘルプシステム\cite{Kuro00}は，自然言語で記述された知識ベースとユーザ質問の柔軟なマッチングに基づいて，曖昧な質問に対して自然言語による聞き返しを行うことができるシステムである．しかしそこでは，記述の粒度をそろえ，表現に若干の制限を加えた知識ベースをシステム用に構築しており，「曖昧な質問への聞き返し」のプロトタイプシステムという位置づけが適当である．\begin{figure}\begin{center}\epsfile{file=fig/image.eps,scale=0.4}\caption{ダイアログナビのユーザインタフェース}\label{fig:user_interface}\end{center}\end{figure}これに対して，本論文では，既存の大規模なテキスト知識ベースをもとにして，自然言語による「曖昧な質問への聞き返し」を行い，ユーザを適切なテキストに導くための方法を提案する．具体的には，パーソナルコンピュータのWindows環境の利用者を対象とした自動質問応答システム「ダイアログナビ」を構築した(図\ref{fig:user_interface})．本システムの主な特徴は以下の通りである．\begin{itemize}\item{\bf大規模テキスト知識ベースの利用}マイクロソフトがすでに保有している膨大なテキスト知識ベースをそのままの形で利用する．\item{\bf正確なテキスト検索}ユーザの質問に適合するテキストを正確に検索する．そのために，質問タイプの同定，{\bf同義表現辞書}による表現のずれの吸収，係り受け関係への重みづけなどを行っている．\item{\bfユーザのナビゲート}ユーザが曖昧な質問をしたとき，対話的に聞き返しを行うことによってユーザを具体的な答えにナビゲートする．聞き返しの方法としては，{\bf対話カード}と{\bf状況説明文の抽出}の2つの方法を組み合わせて用いる．どちらの方法が用いられても，システムは具体的なフレーズを聞き返しの選択肢として提示する．\end{itemize}\vspace*{5mm}図\ref{fig:user_interface}の例では，「エラーが発生する」という漠然とした質問に対して2回の聞き返しを行ってユーザの質問を対話的に明確化させた後，知識ベースを検索してその結果を提示している．その際，ユーザの質問をより具体化させるような部分を検索されたテキストから抽出して提示している．本論文では，このような対話的質問応答を可能とするためのシステムを提案する．まず\ref{sec:ダイアログナビの構成}節において，システムの構成を示す．つづいて，\ref{sec:テキストの検索}節では正確なテキストの検索を行うための手法を，\ref{sec:ユーザのナビゲート}節ではユーザのナビゲートを実現するための手法を，具体的に提案する．さらに\ref{sec:評価}節において，提案手法を実装したシステム「ダイアログナビ」を公開運用して得られた対話データベースの分析結果を，提案手法の評価として示す．最後に\ref{sec:おわりに}節で本論文のまとめを述べる．\newpage
\section{ダイアログナビの構成}
\label{sec:ダイアログナビの構成}ダイアログナビにおいて使用するリソースを以下に示す．\begin{table}\caption{ダイアログナビで用いるテキスト知識ベース}\label{tab:text_collection}\begin{center}\footnotesize\begin{tabular}{c|rrl}\hline知識ベース&\multicolumn{1}{c}{件数}&\multicolumn{1}{c}{文字数}&\multicolumn{1}{c}{マッチング対象}\\\hline用語集&4,707&700,000&見出し(1文)\\ヘルプ集&11,306&6,000,000&タイトル(1文)\\サポート技術情報&23,323&22,000,000&文書全体(複数文)\\\hline\end{tabular}\end{center}\end{table}\begin{figure}\begin{center}\tiny\begin{tabular}{|p{12cm}|}\hline\\{\small\bf音声認識ソフトウェアがインストールされた環境でページ違反が発生する}\\\\最終更新日:1999/08/18\\文書番号:J049655\\\\この資料は以下の製品について記述したものです。\begin{itemize}\itemMicrosoft(R)InternetExplorerVersion5(以下InternetExplorer5)\itemMicrosoft(R)Windows98(以下Windows98)\end{itemize}\\{\bf概要}\\この資料は、Windows98上にInternetExplorer5がインストールされた環境で、音声認識ソフトウェアが起動されていると、InternetExplorer5を起動した際に、ページ違反が発生する現象について説明したものです。\\\\{\bf内容}\\以下の条件を満たすときにInternetExplorer5を起動すると、ユーザー補助プログラムのOLEACC.DLLが不正なメモリ領域を参照することにより、ページ違反が発生する場合があります。\begin{itemize}\itemWindows98にユーザー補助プログラムがインストールされている\item音声認識ソフトウェアが起動している\end{itemize}\\{\bf回避方法}\\Windows98システムアップデートモジュールをインストールします。システムアップデートモジュールには、新しいOLEACC.DLLが含まれており、この不具合が修正されていることを確認しております。これはWindows98ServicePack1に含まれるモジュールとなっており、WindowsUpdateからダウンロードすることができます。\\\\{\bf入手方法}\begin{enumerate}\item\[スタート]メニューから[WindowsUpdate]をクリックします。\item画面の指示に従い"WindowsUpdateへようこそ"が表示されたら、"製品の更新"をクリックします。\item"ソフトウェアの選択"画面にて、"Windows98SystemUpdate"にチェックをつけ、"ダウンロード"ボタンを押します。\item画面の指示に従い、モジュールをインストールします。\end{enumerate}\\\hline\end{tabular}\caption{マイクロソフト・サポート技術情報の例}\label{fig:マイクロソフト・サポート技術情報の例}\end{center}\end{figure}\begin{itemize}\item{\bf知識ベース}マイクロソフトがすでに一般に公開しているテキスト知識ベースをそのまま用いる．その種類と規模を表\ref{tab:text_collection}に示す．また，知識ベースのうちサポート技術情報に含まれるテキストの例を図\ref{fig:マイクロソフト・サポート技術情報の例}に示す．\item{\bf同義表現辞書}(\ref{subsubsec:同義表現辞書}項，図\ref{fig:同義表現辞書})ユーザ質問文と知識ベースの間の表現のずれを吸収するために，同義語や同義フレーズをグループ化した辞書を用いる．現在，ダイアログナビの同義表現辞書には，919グループの同義表現が存在し，3512語・217フレーズが登録されている．\begin{figure}\begin{center}\footnotesize\begin{tabular}{|c@{}p{10cm}|}\hline\multicolumn{2}{|l|}{[発生する]}\\\hspace{5mm}&発生する，起きる，おきる，起こる，おこる\\\multicolumn{2}{|l|}{[読む]}\\\hspace{5mm}&読む，よむ，読める，よめる，読み込む，よみこむ，読み込める，よみこめる\\\multicolumn{2}{|l|}{[メール]}\\\hspace{5mm}&メール，メイル，電子メール，電子メイル，Mail，E-Mail\\\multicolumn{2}{|l|}{[メールを読む]}\\\hspace{5mm}&メールを読む，メールを受信する，メールを見る，メールを受ける，メッセージを受信する，メッセージを受ける\\\multicolumn{2}{|l|}{[パソコンを起動する]}\\\hspace{5mm}&パソコンを起動する，Windowsを起動する，電源を入れる，電源をオンする，ブートする，パソコンを立ち上げる，スイッチを入れる\\\hline\end{tabular}\caption{同義表現辞書の例}\label{fig:同義表現辞書}\end{center}\end{figure}\item{\bf上位・下位語辞書}(\ref{subsubsec:上位・下位語辞書}項，図\ref{fig:上位下位関係})上位・下位の関係にある語(「ブラウザ」と「InternetExplorer」など)を関係づけた辞書を用いる．現在，200語が登録されている．\begin{figure}\begin{center}\epsfile{file=fig/jouikai.eps,scale=0.75}\caption{上位・下位語辞書の例}\label{fig:上位下位関係}\end{center}\end{figure}\item{\bf対話カード}(\ref{subsec:対話カードを用いた聞き返し}節，図\ref{fig:対話カードの例})曖昧なユーザ質問文のうち典型的なものに対して，どのような聞き返しを行うかを記述したカードを利用する．\begin{figure}[t]\begin{center}\footnotesize\begin{tabular}{|p{12cm}|}\hline{\tt$<$CARD$>$}\\{\tt$<$ID$>$}エラー\\{\tt$<$UQ$>$}エラーが発生する\\{\tt$<$REPLY$>$}エラーはいつ発生しますか？\\{\tt$<$SELaction=CARDcard\_id={\rm``エラー/Windows起動中''}$>$}Windows起動中\\{\tt$<$SELaction=CARDcard\_id={\rm``エラー/ログイン時''}$>$}ログイン時\\{\tt$<$SELaction=CARDcard\_id={\rm``エラー/印刷時''}$>$}印刷中\\$\cdots$\\{\tt$<$/CARD$>$}\\\\\hline\multicolumn{1}{c}{}\\\hline{\tt$<$CARD$>$}\\{\tt$<$ID$>$}エラー/Windows起動中\\{\tt$<$UQ$>$}Windowsの起動中にエラーが発生する\\{\tt$<$REPLY$>$}あなたがお使いのWindowsを選んでください．\\{\tt$<$SELaction=RETphrase={\rm``Windows95の起動中にエラーが発生する''}$>$}Windows95\\{\tt$<$SELaction=RETphrase={\rm``Windows98の起動中にエラーが発生する''}$>$}Windows98\\$\cdots$\\{\tt$<$SELaction=RETphrase={\rm``WindowsXPの起動中にエラーが発生する''}$>$}WindowsXP\\{\tt$<$/CARD$>$}\\\\\hline\end{tabular}\caption{対話カードの例}\label{fig:対話カードの例}\end{center}\end{figure}\end{itemize}ダイアログナビの内部の処理と，ユーザとの対話の関係を図\ref{fig:architecture}に示す．基本的な流れは，対話カードに基づくユーザとの対話によってユーザの質問が具体化され(図\ref{fig:architecture}の左側のループ)，具体化された質問によって知識ベースが検索され(右側の処理へ移行)，検索結果が自動編集され選択肢の形でユーザに提示される．ユーザの最初の質問が具体的な場合は，対話カードとはマッチせずに右側の処理へ移行し，はじめから知識ベースの検索結果が提示される．図\ref{fig:architecture}中の各モジュールの働きは以下の通りである(詳細は次節以降に示す)．\begin{itemize}\item{\bf入力解析モジュール}質問文を3種類の質問タイプ(Symptom型，How型，What型)に分類し，質問文の内容表現を抽出する．さらに，構文解析，キーワードと同義表現の抽出などを行う．\item{\bfテキスト検索モジュール}対話カードおよび知識ベース(以下，これらを総称して{\bfテキスト}という)とユーザ質問文のマッチングを行い，スコアの高いテキストを返す．マッチングの際には，同義表現辞書，上位・下位語辞書を用いて表現のずれを吸収する．\item{\bf状況説明文抽出モジュール}知識ベース中のユーザ質問文とマッチした文の，マッチした部分の周囲を抽出することによって，ユーザにとって簡潔でわかりやすい選択肢を提示する．\end{itemize}\begin{figure}\begin{center}\epsfile{file=fig/flow_chart.eps,scale=0.6}\caption{ダイアログナビのフローチャート}\label{fig:architecture}\end{center}\end{figure}
\section{テキストの検索}
\label{sec:テキストの検索}質問応答システムにおいてまず重要なことは，質問の答えを含むと思われるテキストを十分な精度で検索できることである．そのために，質問タイプとプロダクト名による知識ベースの絞り込みを行う．また，表現のずれを吸収するために同義表現辞書(図\ref{fig:同義表現辞書})を利用したマッチングを行う．さらに，スコア計算において，「ファイル→開く」のような係り受け関係に加点することによって，検索の精度を向上させる\cite{CLARIT}．\subsection{マッチングの前処理}\label{subsec:マッチングにおける文節の扱い}ユーザ質問文とテキスト内の文(以下，{\bfテキスト文}という)は，それぞれ構文解析を行って文節単位の係り受け構造に変換した上でマッチングを行う．この節では，マッチングを行うまでの前処理についてまとめる．\subsubsection{構文解析とキーワード抽出}ユーザ質問文とテキスト文の両者について，JUMAN\cite{JUMAN}，KNP\cite{KNP}によって構文解析を行い，各文節に含まれるキーワードを抽出する．JUMANにおいて，普通名詞・固有名詞・人名・地名・組織名・数詞・動詞・形容詞・形容動詞・副詞・カタカナ・アルファベットと解析された語の原形をキーワードとみなす．ただし，一般的な語彙「する」「ある」「行う」「おこなう」「行く」「いく」「なる」「下さる」「くださる」「ございます」「できる」「出来る」は，キーワードとしない．\subsubsection{文節の分割・併合処理}\label{subsubsec:文節の分割・併合処理}マッチングのスコアを計算する際，KNPが出力した文節をそのまま用いることには問題がある．例えば，「画面をコピーできない」は2文節，「画面コピーをすることができない」は4文節と解析されるが，両者は同じことを表現している．これを適切に扱うためには，両者の単位をそろえる必要がある．本システムは，下記のルールに従って文節を分割・併合する(図\ref{fig:文節の分割・併合処理の例})．\begin{enumerate}\item複数のキーワードを含む文節は，1キーワード毎に分割する．分割された隣り合う文節同士は，係り受けの関係にあるものとする．ただし，カタカナ語・アルファベット・数詞が隣接している箇所では分割しない．このような語同士が隣接する場合は，「ウィンドウズ98SE」のようにプロダクト名などを表していることが多いからである．\item「(〜に)ついて」「(〜)こと」などの複合辞・形式名詞・副詞的名詞からなる文節，キーワードを含まない文節は，直前の文節に併合する．\end{enumerate}\begin{figure}\begin{center}\epsfile{file=fig/divide_merge.eps,scale=0.5}\caption{文節の分割・併合処理と否定フラグの付与}\label{fig:文節の分割・併合処理の例}\end{center}\end{figure}\subsubsection{否定フラグの付与}ユーザ質問文とテキスト文のマッチングの際に否定表現のバリエーションを吸収するために，文節にフラグを付与する．具体的には，形容詞「ない」，助動詞「ぬ」，または形容動詞「不可能だ」を含む場合に否定フラグを付与する(図\ref{fig:文節の分割・併合処理の例}右)．\subsubsection{ユーザ質問文のタイプ推定と文末表現の削除}\begin{table}\caption{「話し言葉検索」の質問文タイプ}\label{tab:「話し言葉検索」のログ分析結果}\begin{center}\footnotesize\begin{tabular}{c|p{4cm}|p{4cm}|c}\hline質問文タイプ&説明&質問文の例(文末表現パターン)&割合\\\hline\hlineWhat型&用語の意味や定義などをたずねる質問&〜って何ですか，〜の説明をして，〜の意味を教えて&約10\,\%\\\hlineHow型&操作の方法などをたずねる質問&〜方法を教えて，〜にはどうしたらいいの，〜の使い方&約35\,\%\\\hlineSymptom型&遭遇している問題や症状を述べ，その解決策をたずねる質問&〜してしまう，〜が使えません，〜ができない&約50\,\%\\\hlineその他&------------------&------------------&約5\,\%\\\hline\end{tabular}\end{center}\end{table}「話し言葉検索」の検索ログを分析した結果，表\ref{tab:「話し言葉検索」のログ分析結果}に示すようにユーザの質問には主に3つのタイプが存在することがわかった．本システムでは，表\ref{tab:「話し言葉検索」のログ分析結果}の文末表現パターンを用いて，ユーザ質問文の質問タイプ(What型，How型，Symptom型，タイプなしのいずれか)を推定する．また，文末表現パターンのうち，「〜って何ですか」「〜方法を教えて」のようにテキスト検索においてノイズとなるものについては，ユーザ質問文から削除する．\subsection{表現のずれの吸収}\label{subsec:同義表現辞書の利用}適切なテキストを検索するためには，ユーザ質問文とテキストの間の表現のずれが大きな問題となる．本システムでは，{\bf同義表現辞書}と{\bf上位・下位語辞書}を用いることによってこの問題に対処する．\subsubsection{同義表現辞書}\label{subsubsec:同義表現辞書}表現のずれは語のレベルだけでなく，「パソコンを起動する」「Windowsを起動する」「電源を入れる」のように，2文節以上のフレーズレベルにおいても多数存在する．そこで，同義語だけでなくフレーズレベルのものも含んだ同義表現をグループ化した{\bf同義表現辞書}を作成し，これを用いて同義表現のマッチングを行う．同義表現辞書の例は図\ref{fig:同義表現辞書}に示した．本辞書の作成は，「話し言葉検索」のログを解析し，頻出する同義表現をグループ化することによって行った．また，和語動詞(「戻る」など)の可能形(「戻れる」)や読み(「もどる」「もどれる」)も同義表現として登録した．なお，同義表現辞書には再帰的な関係が含まれているため，これをあらかじめ展開しておく．図\ref{fig:同義表現辞書の再帰的展開}においては，「メールを読む」には2つのキーワード「メール」「読む」が含まれるが，「メール」には同義語「メイル」「E-mail」が存在し，「読む」には同義語「読み込む」が存在する．この場合，「メールを読む」というフレーズを$3\times2=6通り$に展開する．\begin{figure}\begin{center}\epsfile{file=fig/expand_syndic.eps,scale=0.5}\caption{同義表現辞書の再帰的展開}\label{fig:同義表現辞書の再帰的展開}\end{center}\end{figure}マッチングの際には，ユーザ質問文とテキストの両者について，同義表現辞書を調べて，そこに含まれる同義表現グループを抽出し，同一グループのものがあればマッチするとみなす．ただし，\ref{subsec:転置インデックス}節で述べるように，テキストについてはあらかじめ同義表現グループを抽出しておく．図\ref{fig:ユーザ質問文と同義表現データベースの照合}に，ユーザ質問文と同義表現辞書の照合の例を示す．この例では，4つの同義表現グループ{\bf[使う]，[メール]，[読む]，[メールを読む]}が抽出される．\begin{figure}\begin{center}\epsfile{file=fig/extract_syn.eps,scale=0.5}\caption{ユーザ質問文と同義表現辞書の照合}\label{fig:ユーザ質問文と同義表現データベースの照合}\end{center}\end{figure}\subsubsection{上位・下位語辞書}\label{subsubsec:上位・下位語辞書}同義表現辞書ではうまく扱えない表現のずれも存在する．例えば，「ブラウザ」$\Longleftrightarrow$「IE6」，「ブラウザ」$\Longleftrightarrow$「IE5」といった表現のずれに対して，「ブラウザ」「IE5」「IE6」をすべて同義語として扱うことは問題である．なぜなら，「IE5」に関する質問に対して，「IE6」に関するテキストを示すことは適切でないからである．そこで，図\ref{fig:上位下位関係}に示すような上位・下位語辞書を作成し，テキストに現れるキーワードの上位語・下位語を，キーワードと同様に扱うことによってこの問題に対処する．例えば，「IE6」がテキストに現れる場合はその上位語「IE」「ブラウザ」もキーワードとして扱い，「IE」がテキストに現れる場合はその上位語「ブラウザ」と下位語「IE3」「IE4」「IE5」「IE6」もキーワードとして扱う．ユーザ質問文についてはこの扱いを行わないことによって，「IE5」と「IE6」がマッチすることが避けられる．\subsection{転置インデックスの利用}\label{subsec:転置インデックス}テキストを高速に検索するために，前もってテキストからキーワード・同義表現グループの抽出と，キーワードの上位・下位語の展開を行い，転置インデックスを作成しておく．本システムは，ユーザ質問文から抽出されたキーワードと同義表現グループについて転置インデックスを参照し，1個以上のキーワードまたは同義表現が一致するテキストを，次節で述べる質問タイプ・プロダクト名による絞り込みの対象とする．\subsection{知識ベースの絞り込み}\label{subsec:テキスト集合の絞り込み}テキスト検索の精度を向上させるために，質問タイプとプロダクト名による知識ベースの絞り込みを行う．\subsubsection{質問タイプによる絞り込み}\label{subsubsec:質問タイプによる絞り込み}テキスト検索モジュールは，入力解析モジュールによって推定された質問パターンにもとづいて，表\ref{tab:質問タイプによるテキスト集合の絞り込み}に示すようにテキスト集合を絞り込む．原則として，用語集はWhat型，ヘルプ集はHow型の質問に対応させる．サポート技術情報についてはSymptom型・How型を示すタグが付与されているので，これを利用する．なお，What型の質問については必ずしも用語集を用いて答えればよいとは限らない．例えば，「コントロールパネルについて教えて」のような質問はWhat型に分類されるが，用語の定義ではなく操作方法などについて聞いていると解釈することもできる．よって，全てのテキストを検索対象とした上で，複数の知識ベースのテキストがユーザ質問とマッチした場合には用語集のテキストを最初に提示する．\begin{table}\caption{質問タイプによるテキスト集合の絞り込み}\label{tab:質問タイプによるテキスト集合の絞り込み}\begin{center}\footnotesize\begin{tabular}{@{\hspace{1mm}}l@{\hspace{2mm}}l|c@{\hspace{2mm}}c@{\hspace{2mm}}c@{\hspace{2mm}}c@{\hspace{1mm}}}\hline&&\multicolumn{4}{|c}{質問タイプ}\\\multicolumn{2}{c|}{テキスト集合}&What型&How型&Symptom型&タイプなし\\\hline用語集&(What型)&o&&&o\\\hlineヘルプ集&(How型)&o&o&&o\\\hlineサポート技術情報&(Symptom型)&o&&o&o\\&(How型)&o&o&&o\\&(タイプなし)&o&o&o&o\\\hline\end{tabular}\end{center}\end{table}\subsubsection{プロダクト名による絞り込み}\label{subsubsec:プロダクト名による絞り込み}ヘルプ集・サポート技術情報については，図\ref{fig:マイクロソフト・サポート技術情報の例}に示したようにすべてのテキストに対象プロダクト名が明示されているので，これを利用してテキストの絞り込みを行う．質問文にプロダクト名(WindowsNT，Word，Excelなど)が出現する場合は，そのプロダクトを対象とするテキストを検索対象とする．質問文に複数のプロダクト名が出現する場合(「\underline{Excel}で作った表が\underline{Word}で読み込めない」など)は，いずれかのプロダクトを対象とするテキストを検索対象とする．\subsection{テキストのスコア計算}\label{subsec:スコアの計算}転置インデックスを参照して得られ，さらに質問タイプ・プロダクト名によって絞り込まれた各テキストを対象として，ユーザ質問文との間で係り受け関係まで考慮した類似度計算を行う．ただし，絞り込まれたテキスト数が1000個を超える場合は，転置インデックスにおいて一致したキーワード・同義表現グループの数の多い順に，上位1000個までを対象とする．\subsubsection{文類似度の計算}ユーザ質問文とテキスト文の2文の類似度の計算は，\ref{subsec:マッチングにおける文節の扱い}節で述べた文節を単位として行う．2文の互いに対応する文節と係り受け関係の割合({\bf被覆率})をそれぞれ計算し，その積を2文の類似度とする．まず，2文間で，以下の条件によって文節・係り受け関係を対応づける．その際，対応する文節・係り受け関係に{\bf対応度}(0以上，1以下の値)を付与する．\begin{enumerate}\itemユーザ質問文の文節{\bfA}に含まれるキーワードと，テキスト文の文節{\bfA'}に含まれるキーワード(あるいはその上位・下位語)のいずれかが一致する場合，{\bfA}と{\bfA'}を対応づける．対応度は，以下のように計算する．\begin{itemize}\item[(a)]{\bfA，A'}に共通のキーワードが含まれる場合は，以下の計算式によって対応度を計算する．\[(対応度)=\frac{(共通して含まれるキーワード数)}{(\mbox{\bfA，A'}のうちの多い方のキーワード数)}\]例えば，「Windows98SE」(3語)と「Windows98」(2語)については，2語「Windows」「98」が共通して含まれるので，対応度は$2/3(\simeq0.67)$となる．ただし，多くの場合，文節は1キーワードのみを含むので，対応度は1.0となる．\item[(b)]{\bfA}のキーワードと，{\bfA'}のキーワードの上位語または下位語が一致する場合は，対応度は0.9とする．\item[(c)]{\bfA}と{\bfA'}の否定フラグが一致しない場合は，対応度は一致する場合の0.6倍とする．\end{itemize}\itemユーザ質問文内の係り受け関係{\bfA$\rightarrow$B}とテキスト文内の係り受け関係{\bfA'$\rightarrow$B'}について，文節{\bfA，A'}と文節{\bfB，B'}がそれぞれ対応する場合，それらを対応づける．{\bfA$\rightarrow$B}の対応度は{\bfA，A}の対応度と{\bfB，B}の対応度の積とする．\itemユーザ質問文から抽出された同義表現グループとテキスト文から抽出された同義表現グループが一致する場合，それらが抽出された文節・係り受け関係を対応づける(図\ref{fig:同義表現の対応づけ})．対応度は1.0とする．\end{enumerate}以上の処理の結果，両者の文節・係り受け関係に対応度が付与される．複数の対応を持つ文節・係り受け関係については，いずれか大きな対応度をその対応度とする．\begin{figure}\begin{center}\epsfile{file=fig/synmatch.eps,scale=0.5}\caption{同義表現の対応づけ}\label{fig:同義表現の対応づけ}\end{center}\end{figure}ユーザ質問文，テキスト文の{\bf被覆率}は，それぞれ以下の式によって計算する．\[(被覆率)=\frac{(文節の対応度の和)+(係り受け関係の対応度の和)\times2}{(文節の総数)+(係り受け関係の総数)\times2}\]ユーザ質問文，テキスト文の両者の被覆率の積を，両者の類似度とする．図\ref{fig:スコア計算}においては，ユーザ質問文，テキスト文ともに3つの文節と2つの係り受け関係が対応を持っており，対応度はすべて1.0である．両者の被覆率はそれぞれ1.0，0.54であるので，類似度は0.54となる．\begin{figure}\begin{center}\epsfile{file=fig/score_calc2.eps,scale=0.6}\vspace*{5mm}\begin{tabular}{ccccc}3.0&------&{\bf文節の対応度の和}&------&3.0\\2.0&------&{\bf係り受け関係の対応度の和}&------&2.0\\3&------&{\bf文節の総数}&------&5\\2&------&{\bf係り受け関係の総数}&------&4\\1.0&------&{\bf被覆率}&------&0.54\\\end{tabular}\vspace*{-4mm}\underline{{\bf類似度}$=1.0\times0.54=0.54$}\vspace*{4mm}\caption{ユーザ質問文とテキスト文の対応づけと類似度の計算}\label{fig:スコア計算}\end{center}\end{figure}\subsubsection{テキストのスコアと代表文}\label{subsubsec:テキストのスコアと代表文}各テキスト中でもっとも類似度の大きな文をテキストの{\bf代表文}とし，その類似度をテキストのスコアとする．\subsubsection{サポート技術情報の扱い}サポート技術情報は，表\ref{tab:text_collection}に示したようにテキスト全体の複数文がマッチングの対象となるため，特別な扱いをしている．\begin{itemize}\itemテキスト文の長さが一様ではないので，テキスト文の被覆率を考慮しない．すなわち，ユーザ質問文とテキスト文の類似度は，ユーザ質問文の被覆率とする．\item一つの事象を複数文で説明している場合が多いので，前後の文とのマッチングを考慮する．ユーザ質問文とテキスト文$S_n$の間で類似度を計算する場合は，ユーザ質問文の文節・係り受け関係と，$S_n$の前後の文($S_{n-1}$，$S_{n+1}$)の文節・係り受け関係の対応にも，対応度0.5を与える．\itemサポート技術情報のテキストには，図\ref{fig:マイクロソフト・サポート技術情報の例}に示したように，セクションが存在する．これらのセクションのうち，「タイトル」「概要」「現象」「症状」セクションには，ユーザが頻繁に質問することがらが書かれていることが多い．そこで，文の存在するセクションに応じて，類似度に下記の係数を掛け合わせる．\[\begin{array}{llc}-&タイトル・概要&1.0倍\\-&現象・症状&0.8倍\\-&上記以外&0.6倍\\\end{array}\]\end{itemize}\subsection{選択肢の絞り込み}テキスト検索モジュールは，3つのテキスト集合(用語集・ヘルプ集・サポート技術情報)ごとに，テキストのスコアに基づいてユーザに提示する選択肢を絞り込む．テキストをスコアの大きい順に整列し，上位$n$個までをユーザに提示する選択肢とする．ただし，スコアが閾値$t$を下回るものは対象外とする．また，同じスコアの複数のテキストが$n$位前後で並ぶ場合は，それらをすべて含める．$n$，$t$の値は，表\ref{tab:選択肢の絞り込みのパラメータ}に示すようにテキスト集合ごとに定めた．複数のテキスト集合から選択肢が得られた場合は，用語集，ヘルプ集，サポート技術情報の順で提示する．\begin{table}\caption{選択肢の絞り込みのパラメータ}\label{tab:選択肢の絞り込みのパラメータ}\footnotesize\begin{center}\begin{tabular}{c|cc}\hline&最大選択肢数&スコア閾値\\テキスト集合&$n$&$t$\\\hline用語集&2&0.8\\ヘルプ集&5&0.3\\サポート技術情報&10&0.1\\\hline対話カードの{\tt$<$UQ$>$}(\ref{subsec:対話カードを用いた聞き返し}節)&1&0.8\\\hline\end{tabular}\end{center}\end{table}
\section{ユーザのナビゲート}
\label{sec:ユーザのナビゲート}ユーザが自分の知りたいことを普通に表現しても，それで一意に適切なテキストが決まることは少ない．例えば「Windows98で起動時にエラーが発生した」という比較的具体的な質問であっても，いくつかの原因と対策があり，それぞれにテキストが存在する．ユーザの質問がさらに曖昧であったり抽象的であったりする場合には，より多くのテキストが候補として選ばれる．いずれにせよ，ユーザが，複数のテキスト候補の中から，自分の状況に一番適切なものを選択することが必要になる．WWWのサーチエンジンは，テキスト中から検索語を含む部分を抽出してユーザに提示することによって，ユーザのテキスト選択を補助している．本システムでは，この考え方を一歩進め，ユーザの質問(遭遇している問題)をより具体化するような説明文をテキスト中から自動的に抽出し，それらを選択肢として提示するという形でユーザへの聞き返しを行う．しかし，ユーザの質問が非常に曖昧な場合には上記の方法はうまく機能しない．そこで，頻繁に尋ねられる曖昧な質問に対して，それをどのように対話的に具体化するかを対話カードという形式で体系化した．例えば，図\ref{fig:ユーザのナビゲート}に示すように，ユーザが「エラーが発生した」という質問をした場合，「エラーが発生したのはいつですか」「使っているWindowsのバージョンは何ですか」などの聞き返しを行って，ユーザの問題を具体化する．\begin{figure}\begin{center}\epsfile{file=fig/hierarchy.eps,scale=0.45}\caption{ユーザのナビゲート}\label{fig:ユーザのナビゲート}\end{center}\end{figure}\subsection{状況説明文の抽出}\label{subsec:状況説明文の抽出}ユーザ質問とマッチした知識ベース中の文では，その中のマッチしなかった部分に，ユーザの問題をより具体化する状況説明が与えられていると考えられる(このような部分を状況説明文とよぶ)．たとえば，ユーザが「ページ違反が発生する」と質問し，これが「IE5を起動した際にページ違反が発生する」という文にマッチした場合，マッチしていない「IE5を起動した際に」という部分が状況説明文となる．ユーザの質問にマッチした複数の文からそれぞれ状況説明文を抽出し，ユーザに選択肢として提示すれば，ユーザは自分の状況に適合するものを容易に選択することが可能となる．状況説明文抽出のアルゴリズムを以下に示す．\begin{enumerate}\item「この資料では，(〜)」「以下の」「(〜する)問題について説明しています」など，頻出する冗長な表現をパターンマッチにより削除する．\item文を次の箇所で分割する．分割された各部をセグメントと呼ぶ．\begin{itemize}\item連用修飾節\item「〜とき」「〜際」「〜場合」「〜最中」など\item読点を伴うデ格\end{itemize}\itemセグメントのうち，すべての文節がユーザ質問文中の文節と対応するものを削除する(同義表現として対応する文節も含む)．\item末尾(削除されたセグメントを除く)のセグメントを状況説明文の核とする．\item核のセグメントと，それに直接係るセグメントのみを，状況説明文として選択する．\end{enumerate}アルゴリズムの適用例を図\ref{fig:選択肢テキストからの状況説明文の抽出}に示す．まず，左の文は2つのセグメント{\bfA・B}，右の文は3つのセグメント{\bfC・D・E}に分割される．このうち，左の文のセグメント{\bfB}と，右の文のセグメント{\bfC・E}は，すべての文節がユーザ質問文と対応するため削除される．結果としてセグメント{\bfA}と{\bfD}が状況説明文の核となり，「IE5を起動した際に」と「タスクスケジューラを使うと」が状況説明文として出力される．\begin{figure}\begin{center}\epsfile{file=fig/extract_description.eps,scale=0.5}\caption{選択肢テキストからの状況説明文の抽出}\label{fig:選択肢テキストからの状況説明文の抽出}\end{center}\end{figure}サポート技術情報のテキストについては，各選択肢テキストの代表文から状況説明文を抽出する．用語集・ヘルプ集のテキストについては，各テキストの見出し語・タイトル自体が簡潔な説明文となっているので，この処理の対象とはしない．\subsection{対話カードを用いた聞き返し}\label{subsec:対話カードを用いた聞き返し}ユーザの質問が非常に曖昧な場合には，テキスト検索の精度が低くなり，多くの不適切なテキストがマッチしてしまう．このような場合に状況説明文の抽出を行っても，誤りを含んだ多くの選択肢が得られることになり，ユーザの助けとはならない．そこで，頻繁に尋ねられる曖昧な質問に対して，それを対話的に具体化する手順を対話カードという形式で体系化した．1枚の対話カードは，あるユーザ質問に対して，どのような聞き返しをすればよいかを記述したもので，以下の要素から構成されている(図\ref{fig:対話カードの例})．\begin{description}\item[\tt$<$ID$>$:]対話カードのID．\item[\tt$<$UQ$>$:]ユーザ質問文．この部分がユーザの質問文とマッチすればこの対話カードが利用される．\item[\tt$<$REPLY$>$:]システムからユーザへの聞き返し発話．\item[\tt$<$SELaction=CARD/SHOW/RET...$>$:]聞き返しの際，ユーザに提示する選択肢．それぞれの選択肢にはユーザがそれを選んだ場合のシステムの動作が記述されている．{\ttaction=CARD}の場合には{\ttcard\_id=}で示された対話カードに移る．{\ttaction=SHOW}の場合には{\tturl}で示されたwebページ(マイクロソフトのサイトの種々のドキュメント)または{\tttext\_id}で示された知識ベースのテキストを表示する．{\ttaction=RET}の場合には{\ttphrase}で示された質問文によって知識ベースを検索する．\end{description}対話カードの利用例を図\ref{fig:user_interface}によって説明する．まずユーザが「エラーが発生した」という質問をすると，質問文と各対話カードの{\tt$<$UQ$>$}の部分とのマッチングを\ref{sec:テキストの検索}節で述べたアルゴリズムによって行う．この結果，図\ref{fig:対話カードの例}上段の対話カードが選ばれる．システムはこのカードに従って，「エラーはいつ発生しますか?」という聞き返しを，選択肢を示して行う．ユーザが「Windows起動中」を選ぶと，システムは図\ref{fig:対話カードの例}下段の[エラー/Windows起動中]の対話カードに移って，「あなたがお使いのWindowsを選んでください」という聞き返しを行う．ここでユーザが「Windows98」を選ぶと，「Windows98の起動中にエラーが発生する」を質問文として知識ベースのテキストの検索を行う．対話カードはこのように階層的に構成されており，そのすべてのカードの{\tt$<$UQ$>$}が検索対象となっている．すなわち，図\ref{fig:ユーザのナビゲート}で示したさまざまなレベルの曖昧性・抽象度の質問を全体的にカバーするように設計されている．たとえば，ユーザが「Windowsを起動中にエラーが発生する」と質問した場合には，はじめから図\ref{fig:対話カードの例}下段のカードを用いた対話が行われることになる．また，対話カードの枠組みは，「U:こんにちはS:こんにちわ」「U:このシステム使いやすいですねS:ありがとうございます」のようなドメインとは関係のない例外的な対応を行う場合にも利用している(この場合は{\tt$<$SEL$>$}のないカードとなる)．このような対応ができなければ，通常の検索，すなわち知識ベースに対して「このシステム使いやすいですね」で検索を行ってしまい，「システム」や「使う」を含む知識ベースを提示するということが起こってしまう．ユーザの例外的な発話に対する不適切な動作を防ぎ，正常な対話を維持するという意味で，対話カードによる例外処理は重要である(このような例外的な対話は次節では「範囲外」の対話と扱っている)．
\section{評価}
\label{sec:評価}ダイアログナビは，{\tthttp://www.microsoft.com/japan/navigator/}において，2002年4月から公開サービスを行っている．ユーザとの質問応答のログは，対話データベースとして蓄積している．本システムの評価としては，対話セッションの評価，ユーザとシステムのふるまいの分析，状況説明文の抽出結果が妥当かどうかの評価の3種類を行った．\subsection{対話セッションの評価}対話データベース中の2002年8月1日〜31日の質問応答ログの中から無作為に300回のアクセスを選択した．それらを人手によってタスク指向対話としての意味的まとまりに分割した．このまとまりを{\bf対話セッション}とよぶ．結果として，378個の対話セッションが得られた．1対話セッション当たりの発話ペア(ユーザのキーボード入力またはマウスでの選択と，それに対するシステムの応答)の回数は，平均1.42回であった．378対話セッションそれぞれに対して，評価者1名が次のいずれかの評価を与えた．\begin{description}\item[成功:知識あり]システムが少なくとも1つの適切なテキストを選択肢として提示した．\item[成功:知識なし]知識ベースに適切なテキストがなく，かつシステムが「該当する情報を見つけることができませんでした」と回答した．\item[失敗:知識あり]知識ベースに適切なテキストがあるにもかかわらず，システムがそれらのうちどれも選択肢として提示することができなかった．\item[失敗:知識なし]知識ベースに適切なテキストがないにもかかわらず，システムが不適切なテキストを選択肢として提示した．\item[範囲外:適切]ユーザの質問は想定ドメインの範囲外であったが，システムは適切な応答をした．\item[範囲外:不適切]ユーザの質問が想定ドメインの範囲外であり，システムが不適切な応答をした．\end{description}\begin{table}\caption{対話セッション評価の例(タイプA)}\label{tab:対話セッション評価の例(タイプA)}\begin{center}\footnotesize\begin{tabular}{c|llp{10cm}}\hlineA-1&U:&\multicolumn{2}{l}{Excelで行を追加したい}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.○&\underline{Excelで空白のセル，行，列を挿入する}\\&&2.○&\underline{EXCEL:行の挿入}\\&&3.&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hlineA-2&U:&\multicolumn{2}{l}{起動ディスク}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{W98:PC-9800シリーズ対応用起動ディスクの起動メニュー}\\&&2.&\underline{WindowsXPインストール時にフロッピーでコンピューターを起動するための}\\&&&\underline{ディスクの入手方法}\\&&3.&...\\&U:&\multicolumn{2}{l}{Windows2000での起動ディスクの作成方法は?}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.○&\underline{WindowsNTブートディスクを作成しブート障害に備える方法}\\&&2.&\underline{Windows2000Serverの新規インストールを実行する方法}\\&&&CD-ROMドライブからコンピュータを起動できない場合，Windows2000ブートディスクを作成します．\\&&3.○&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hlineA-3&U:&\multicolumn{2}{l}{USB1.1からusb2.0に交換できますか?}\\&S:&\multicolumn{2}{l}{入力された質問から，該当する情報を見つけることができませんでした．}\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識なし\\\hlineA-4&U:&\multicolumn{2}{l}{マクロを使いたい}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{Accessでマクロを使ってプロパティを設定する}\\&&2.&\underline{AccessVisualBasicでマクロを使ったプロパティの設定}\\&&3.&...\\&U:&\multicolumn{2}{l}{Excelです}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{Excel2000の起動時に特定のファイルを開く方法}\\&&2.&\underline{Excel:Web上にExcelデータを保存する方法}\\&&3.&...\\\cline{2-4}&\multicolumn{2}{l}{適切なテキスト}&Excelのマクロについて\\\cline{2-4}&\multicolumn{2}{l}{評価}&失敗:知識あり\\\hlineA-5&U:&\multicolumn{2}{l}{ウインドウズXPを削除するにはどうしますか?}\\&S:&\multicolumn{2}{l}{入力された質問から，該当する情報を見つけることができませんでした．}\\\cline{2-4}&\multicolumn{2}{l}{適切なテキスト}&WindowsXPをアンインストールする方法\\\cline{2-4}&\multicolumn{2}{l}{評価}&失敗:知識あり\\\hlineA-6&U:&\multicolumn{2}{l}{ラリースポーツチャレンジで正しく画面が表示されない}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{W98SE:初期設定の画面で[ESC]を連打すると表示が不正}\\&&2.&\underline{[CHT2]キャラクターが正しく表示されない場合}\\&&3.&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&失敗:知識なし\\\hline\end{tabular}\end{center}\end{table}\begin{table}\caption{対話セッション評価の例(タイプB)}\label{tab:対話セッション評価の例(タイプB)}\begin{center}\footnotesize\begin{tabular}{c|llp{10cm}}\hlineB-1&U:&\multicolumn{2}{l}{表を書きたい}\\&S:&\multicolumn{2}{l}{入力された質問から，該当する情報を見つけることができませんでした．}\\&U:&\multicolumn{2}{l}{表を作りたい}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.○&\underline{PowerPointで表を作成する}\\&&2.○&\underline{Wordで表を作成する}\\&&3.○&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hlineB-2&U:&\multicolumn{2}{l}{強制終了します}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.○&\underline{EXCEL:強制終了およびハングアップの際のチェック項目}\\&&2.○&\underline{EXCEL:強制終了によって正常に保存されなかったファイルを回復する方法}\\&&3.○&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hlineB-3&U:&\multicolumn{2}{l}{Linux}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.○&\underline{Linuxを削除しWindows2000またはNTをインストールする方法}\\&&2.○&\underline{LinuxRPCクライアントからサービス拒否攻撃を実行できる可能性がある}\\&&3.○&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hlineB-4&U:&\multicolumn{2}{l}{FreeBSD}\\&S:&\multicolumn{2}{l}{入力された質問から，該当する情報を見つけることができませんでした．}\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識なし\\\hlineB-5&U:&\multicolumn{2}{l}{自動校正を解除したい}\\&S:&\multicolumn{2}{l}{入力された質問から，該当する情報を見つけることができませんでした．}\\\cline{2-4}&\multicolumn{2}{l}{適切なテキスト}&[WD98]文章校正に関するQ\&A\\\cline{2-4}&\multicolumn{2}{l}{評価}&失敗:知識あり\\\hlineB-6&U:&\multicolumn{2}{l}{ホームページの文字が大きい}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{[HOWTO]大きな文字配列を初期化する方法}\\&&2.&\underline{[SNA]127よりも大きい文字がNvRunCmdによって間違ってマップ}\\&&3.&...\\\cline{2-4}&\multicolumn{2}{l}{適切なテキスト}&表示されるWebページの文字のサイズを変更する\\\cline{2-4}&\multicolumn{2}{l}{評価}&失敗:知識あり\\\hlineB-7&U:&\multicolumn{2}{l}{CADソフトが動かない}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{[OFFXP]Officeのセットアップ後にDVDソフトが動作しない問題について}\\\cline{2-4}&\multicolumn{2}{l}{評価}&失敗:知識なし\\\hline\end{tabular}\end{center}\end{table}\begin{table}\caption{対話セッション評価の例(タイプC)}\label{tab:対話セッション評価の例(タイプC)}\begin{center}\footnotesize\begin{tabular}{c|llp{10cm}}\hlineC-1&U:&\multicolumn{2}{l}{エラーが発生しました．}\\&S:&\multicolumn{2}{l}{エラーはいつ発生しますか?}\\&&1.&\underline{Windows起動中}\\&&2.&\underline{ログオン(ログイン)時}\\&&3.&...\\&U:&\multicolumn{2}{l}{Windows起動中}\\&S:&\multicolumn{2}{l}{あなたがお使いのWindowsを選んでください．}\\&&1.&\underline{Windows95}\\&&2.&\underline{Windows98}\\&&3.&...\\&U:&\multicolumn{2}{l}{Windows98}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.○&\underline{W98:起動時のフォントドライバが読み込めないエラー}\\&&&「JISフォントドライバーがインストールされていません」等のフォントの読み込みに関するエラーが発生した\\&&2.○&\underline{W98:起動時に「$<$ファイル名$>$が不正かありません」のエラーについて}\\&&3.&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hlineC-2&U:&\multicolumn{2}{l}{XBOXについて教えて}\\&S:&\multicolumn{2}{l}{Microsoftが開発した次世代家庭用ゲーム機．詳しくは以下のリンクを参照してください．}\\&&1.○&\underline{XBOX}\\&&2.○&\underline{発売予定のゲームタイトル}\\&&3.○&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&成功:知識あり\\\hline\end{tabular}\end{center}\end{table}\begin{table}\caption{対話セッション評価の例(タイプD)}\label{tab:対話セッション評価の例(タイプD)}\begin{center}\footnotesize\begin{tabular}{c|llp{10cm}}\hlineD-1&U:&\multicolumn{2}{l}{あなたは誰ですか？}\\&S:&\multicolumn{2}{l}{DialogNavigatorです．}\\\cline{2-4}&\multicolumn{2}{l}{評価}&範囲外:適切\\\hlineD-2&U:&\multicolumn{2}{l}{夏休みの天気が知りたい}\\&S:&\multicolumn{2}{l}{入力された質問から，該当する情報を見つけることができませんでした．}\\\cline{2-4}&\multicolumn{2}{l}{評価}&範囲外:適切\\\hlineD-3&U:&\multicolumn{2}{l}{お名前は？}\\&S:&\multicolumn{2}{l}{以下の選択肢から選んでください．}\\&&1.&\underline{用語の説明:名前}\\&&2.&\underline{Accessのフィールド，コントロール，およびオブジェクトの名前について}\\&&3.&...\\\cline{2-4}&\multicolumn{2}{l}{評価}&範囲外:不適切\\\hline\end{tabular}\end{center}\end{table}本評価は，仮想的なテストセットによる評価とは異なり，実際にサービスを行った場面でのシステムのふるまいを正確にとらえている．しかし，不特定多数のユーザの真の意図に基づいて応答の適切さを判断することはできないという問題がある．そこで，対話セッションを以下の4つのタイプに分類し，それぞれのタイプについての評価のガイドラインを以下のように定めた上で評価を行った．評価の例を表\ref{tab:対話セッション評価の例(タイプA)}$\sim$表\ref{tab:対話セッション評価の例(タイプD)}に示す．なお，表において，``U:''はユーザの発話，``S:''はシステムの発話を示す．また，``○''は評価者が「適切なテキスト」と判断したテキストを示す．\begin{itemize}\item{\bfタイプA}:ユーザの質問が具体的で，適切なテキストの特定に必要な情報がすべて指定されている対話セッション(表\ref{tab:対話セッション評価の例(タイプA)})．この場合は，ユーザが指定した情報がすべて含まれているテキストを，適切なテキストであるとする．システムが提示した選択肢中に適切なテキストが存在する場合(A-1，A-2)は，「成功:知識あり」とする．その他の場合は，評価者がキーワード検索システム\footnote{キーワード入力に対して，マッチするすべてのテキストを表示する評価用システム．}を用いて知識ベースを網羅的に検索し，適切なテキストが見つかれば「失敗:知識あり」(A-4，A-5)，見つからなければ「成功:知識なし」(A-3)または「失敗:知識なし」(A-6)とする．なお，ユーザがセッションの一部で曖昧な質問をしていても(A-2，A-4)，セッション全体として必要な情報がすべて指定されているときは，このタイプとする．\item{\bfタイプB}:ユーザの質問が曖昧で，適切なテキストの特定に必要な情報が一部欠落している対話セッション(表\ref{tab:対話セッション評価の例(タイプB)})．対話カードが使用されたセッションは除く．この場合は，ユーザの状況に完全に合致するテキストはどれかを判断することはできないので，ユーザが与えた指定したすべての情報が含まれているテキストを，適切なテキストであるとみなす．ユーザの質問が1単語のみである場合(B-3，B-4)は，その単語が含まれるすべてのテキストを適切なテキストであるとみなす．\item{\bfタイプC}:対話カードが利用された対話セッション(表\ref{tab:対話セッション評価の例(タイプC)})．この場合は，対話カードの最も下の階層までユーザが選択肢を指定し，かつ適切なテキストまたは選択肢が提示された対話セッションを，「成功:知識あり」と判断する(適切なテキストの判断基準はタイプAに準ずる)．対話カードの作成の際には，各々の選択肢に対応する質問文({\ttphrase})に対して適切なテキストが提示されるかどうかをチェックしているので，適切なテキストが提示されないことはほとんどなかった．\item{\bfタイプD}:ユーザの質問が想定ドメインの範囲外である対話セッション(表\ref{tab:対話セッション評価の例(タイプD)})．この場合は，対話カードを利用して応答したとき(D-1)と，テキストを検索した結果として該当する情報がないと応答したとき(D-2)は「範囲外:適切」，検索されたテキストを提示してしまったとき(D-3)は「範囲外:不適切」とした．\end{itemize}\vspace*{5mm}表\ref{tab:対話カードと対話セッションの評価}の右側(計の欄)に対話セッション評価の結果を示す．成功の割合は，「範囲外」を除いた230対話セッションのうち75\,\%であった．対話セッション内において対話カードによって応答が行われたかどうかと，対話セッションの評価の関係を表\ref{tab:対話カードと対話セッションの評価}左側に示す．現在，対話カードの枚数は216枚(深さは最大で3階層)である．評価対象の対話セッション中，対話カードが利用された割合は，「範囲外」を除いて17\,\%($=38/(38+192)$)であり，対話カードが利用されたセッションの大部分は「成功」であった．また，範囲外の質問に対しても対話カードでカバーされている範囲ではほぼ適切に対応できており，全体として対話カードという枠組みは有効に機能していると考えられる．対話セッションの失敗の最も大きな原因は，知識ベース，同義表現辞書の不足である．ユーザ質問文に対して適切なテキストが存在しない場合，A-3のように適切なテキストがないことを判断するのは難しく，A-6・B-7のように誤ることが多い．かりに，表\ref{tab:選択肢の絞り込みのパラメータ}のスコア閾値$t$を大きくすればこの失敗を減らすことはできるが，その代償として適切なテキストが存在する場合の「成功:知識あり」が減って，「失敗:知識あり」が増えてしまう．A-5・B-6のような「失敗:知識あり」を減らすには，同義表現辞書をより充実させ，適切なテキストを大きなスコアでマッチさせる必要がある．また，A-4のように，対話のコンテキストを考慮していないために失敗した対話セッションもあった．この種の失敗を減らすには，コンテキストを考慮したテキストの検索を行う必要がある．なお，同義表現辞書と，例外処理的な対話カードについては，対話データベースで顕著なものについて随時データの修正・作成を行っている．このことによって，公開当初の成功率は60\,\%程度であったが，徐々に改善され，現在では表\ref{tab:対話カードと対話セッションの評価}で示したとおり70\,\%を越える成功率となってきている．\begin{table}\caption{対話カード利用の有無と対話セッション評価}\label{tab:対話カードと対話セッションの評価}\begin{center}\small\begin{tabular}{c|c|r@{(}r@{)}|r@{(}r@{)}|r@{(}r@{/}r@{)}}\hline\multicolumn{2}{c|}{}&\multicolumn{4}{c|}{セッション内における}\\\multicolumn{2}{c|}{}&\multicolumn{4}{c|}{対話カードによる応答}\\\cline{3-6}\multicolumn{2}{c|}{評価}&\multicolumn{2}{c|}{あり}&\multicolumn{2}{c|}{なし}&\multicolumn{3}{c}{計}\\\hline\hline&知識あり&38&100\,\%&111&58\,\%&149&65\,\%&39\,\%\\成功&知識なし&0&0\,\%&25&13\,\%&25&11\,\%&7\,\%\\\cline{2-9}&計&38&100\,\%&136&71\,\%&174&76\,\%&46\,\%\\\hline&知識あり&0&0\,\%&15&8\,\%&15&7\,\%&4\,\%\\失敗&知識なし&0&0\,\%&41&21\,\%&41&18\,\%&11\,\%\\\cline{2-9}&計&0&0\,\%&56&29\,\%&56&24\,\%&15\,\%\\\hline\multicolumn{2}{c|}{小計(範囲外を除く)}&38&100\,\%&192&100\,\%&230&100\,\%&61\,\%\\\hline&適切&57&------&0&------&57&------&15\,\%\\範囲外&不適切&3&------&88&------&91&------&24\,\%\\\cline{2-9}&計&60&------&88&------&148&------&39\,\%\\\hline\multicolumn{2}{c|}{合計}&98&------&280&------&378&------&100\,\%\\\hline\multicolumn{9}{r}{(単位:対話セッション数)}\end{tabular}\end{center}\end{table}\subsection{ユーザとシステムのふるまいの分析}\begin{figure}\begin{center}\epsfile{file=fig/session_analysis.eps,scale=0.5}\caption{ユーザ行動とシステム応答の回数分布}\label{fig:ユーザ行動の分析}\end{center}\end{figure}\begin{table}\caption{ユーザ質問文の長さとシステム応答の関係}\label{tab:ユーザ質問文の長さとシステム応答の関係}\begin{center}\small\begin{tabular}{c|r@{(}r@{)}|r@{(}r@{)}|r@{(}r@{)}|r@{(}r@{)}|r@{(}r@{)}}\hline&\multicolumn{4}{c|}{対話カード応答}&\multicolumn{4}{c|}{知識ベース検索}&\multicolumn{2}{c}{}\\\cline{2-9}質問文の長さ&\multicolumn{2}{c|}{完結応答}&\multicolumn{2}{c|}{選択肢提示}&\multicolumn{2}{c|}{該当あり}&\multicolumn{2}{c|}{該当なし}&\multicolumn{2}{c}{計}\\\hline1文節&29&13\,\%&17&8\,\%&115&52\,\%&59&27\,\%&220&100\,\%\\2文節&3&2\,\%&37&28\,\%&46&35\,\%&47&35\,\%&133&100\,\%\\3文節&&&10&14\,\%&33&45\,\%&30&41\,\%&73&100\,\%\\4文節&&&2&6\,\%&22&65\,\%&10&29\,\%&34&100\,\%\\5文節以上&&&&&45&78\,\%&13&22\,\%&58&100\,\%\\\hlineすべて&32&6\,\%&66&13\,\%&261&50\,\%&159&31\,\%&518&100\,\%\\\hline\multicolumn{11}{r}{(単位:回)}\end{tabular}\end{center}\end{table}\begin{table}\caption{ユーザ質問文の長さと知識ベース検索結果の関係}\label{tab:ユーザ質問文の長さと知識ベース検索結果の関係}\begin{center}\small\begin{tabular}{c@{(}r@{)}|r|r}\hline\multicolumn{2}{c|}{質問文の長さ}&平均テキスト数&適切なテキストの割合\\\hline1文節&115回&18.2個&49\,\%\\2文節&46回&9.1個&28\,\%\\3文節&33回&16.0個&22\,\%\\4文節&22回&10.5個&10\,\%\\5文節以上&45回&10.6個&11\,\%\\\hlineすべて&261回&14.4個&35\,\%\\\hline\end{tabular}\end{center}\end{table}前節で述べた378対話セッション内において，ユーザがどのような行動をしたか，システムがそれに対してどのような応答を行ったかを調べた(図\ref{fig:ユーザ行動の分析})．ユーザの質問文の入力(518回)のうち，対話カードによって応答されたものは19\,\%($=(32+66)/518$)であった．また，質問文の長さとシステム応答の関係(表\ref{tab:ユーザ質問文の長さとシステム応答の関係})を調べたところ，対話カードは，主として短い質問文(3文節以下)に対応していることがわかった．一般的には，短い質問文ほど曖昧である．よって，図\ref{fig:ユーザのナビゲート}のユーザ質問のhierarchyにおいて，上の方の曖昧な質問文に対応するという対話カードの枠組みは，有効に機能していると考えられる．また，ユーザ質問文の長さと知識ベースの検索結果の関係(表\ref{tab:ユーザ質問文の長さと知識ベース検索結果の関係})も調べたところ，適切なテキストの割合は，質問文が長いほど少ないことがわかった．一般的には，長い質問文ほど専門的なものが多い．よって，知識ベースはそのような質問文を十分カバーしていないと考えられる．一方，ユーザ質問文の長さとテキスト数(ユーザに提示した選択肢の数)の関係については，ユーザ質問文が1文節の場合のテキスト数が特に多かった．これは，B-3の対話セッションのようにユーザが入力した1キーワードを含むテキストを多数提示してしまうことが多かったのが原因である．一方，質問文がある程度長い場合は，選択肢の絞り込みのパラメータ(表\ref{tab:選択肢の絞り込みのパラメータ})によって，ユーザへの聞き返しとして適切な数に絞り込まれている．\subsection{状況説明文抽出の評価}2002年8月1日〜31日の対話データベースから，5つ以上の選択肢が返されたユーザ質問文をランダムに100個選んだ．さらに，選択肢中で上位5個中にランキングされているサポート技術情報の状況説明文を，評価者1名が「妥当」「不十分」「冗長」の3段階で評価した．上位5個中において，タイトルが代表文として選ばれている152個のテキストは，代表文がそのまま状況説明文となるため除外した．結果として，348($=100\times5-152$)個の状況説明文が評価の対象となった．状況説明文の評価は，ユーザが選択肢を選ぶために必要十分な情報を，それぞれの選択肢が含んでいるかどうかという観点から行った．具体的には，まず質問文に対する選択肢(5個)どうしを比較し，どの情報が選択肢を選ぶ上で最も重要かを判断する(この情報を，{\bf最重要情報}とよぶ)．さらに，各々の選択肢について，以下のいずれかの評価を与える．\begin{itemize}\item{\bf妥当}:最重要情報が過不足なく含まれている．\item{\bf不十分}:最重要情報が含まれていない．\item{\bf冗長}:最重要情報以外の情報が著しく多く含まれている(目安としては，最重要情報以外の情報の文字数が，最重要情報の文字数の1/2を超えるとき)．\end{itemize}表\ref{tab:状況説明文抽出の評価}に状況説明文の評価結果を示す．抽出された状況説明文のうち，61\,\%は妥当なものであった．\begin{table}\caption{状況説明文抽出の評価結果}\label{tab:状況説明文抽出の評価}\begin{center}\footnotesize\begin{tabular}{c|p{5mm}@{}r@{}r@{}p{5mm}}\hline評価&\multicolumn{4}{c}{選択肢数}\\\hline妥当&&213&(61\,\%)&\\不十分&&27&(8\,\%)&\\冗長&&108&(31\,\%)&\\\hline合計&&348&(100\,\%)&\\\hline\end{tabular}\end{center}\end{table}また，状況説明文の平均文字数は68.9文字，状況説明文の抽出対象となった各テキストの代表文の平均文字数は81.6文字であった．したがって，提案手法による代表文の圧縮率$(=(1-状況説明文の平均文字数/代表文の平均文字数)\times100)$は15.6\,\%であった．\begin{table}\caption{状況説明文抽出の評価の例}\label{tab:状況説明文抽出の評価の例}\begin{center}\footnotesize\begin{tabular}{cp{5cm}|p{5cm}|c}\hline\multicolumn{2}{c}{状況説明文}&\multicolumn{1}{|c|}{元の文}&評価\\\hline\multicolumn{4}{l}{U:音が出ない}\\\multicolumn{4}{l}{S:以下の選択肢から選んでください．}\\\hline1.&[NT]CrystalAudioやSoundBlasterAWE32利用時に音が出ない&(タイトル)&\\2.&コントロールパネルの[サウンド]からCHIMESWAVファイルをテストした場合、ボリューム設定に関わらず&コントロールパネルの[サウンド]からCHIMES.WAVファイルをテストした場合、ボリューム設定に関わらず、音は出ません。&妥当\\3.&音楽の再生時にUSBスピーカーからポップ音が出る&(タイトル)&\\4.&YAMAHAYSTMS55DUSBスピーカセットのインストール後、スピーカのボリュームコントロールノブを使っても、非常に音が小さい、または、音が出ない&YAMAHAYSTMS55DUSBスピーカセットのインストール後、スピーカのボリュームコントロールノブを使っても、非常に音が小さい、または、音が出ないことがあります。&冗長\\5.&Windowsサウンド(.WAV)ファイルを再生時に&Windowsサウンド(.WAV)ファイルを再生時に、音が出ない。&妥当\\\hline\end{tabular}\end{center}\end{table}表\ref{tab:状況説明文抽出の評価の例}に状況説明文の評価の例を示す．この例においては，評価者は，「音が出ない具体的な環境(サウンドデバイス名，アプリケーション名，ファイルの種類など)」が最重要情報であると判断した．2番，5番の選択肢は，再生するファイルの種類を過不足なく述べているため，「妥当」と判断した．一方，4番の選択肢は，サウンドデバイス名を含んでいるものの，それ以外の発生条件や，「非常に音が小さい」といった情報を余分に含んでいるため，「冗長」と判断した．提案手法による代表文の圧縮率が比較的小さかったのは，「冗長」な状況説明文が多いのが大きな要因であった．具体的には，表\ref{tab:状況説明文抽出の評価の例}の4番の選択肢のように，ユーザが選択肢を指定する上で重要な情報を含まないセグメントが，削除されずに状況説明文に含まれてしまったものが多かった．より適切な選択肢を得るためには，選択肢の代表文どうしを比較して何が最も重要な情報かを認識し，それを優先して選択肢に含める一方，それ以外の情報は除外することが必要である．また，4番の選択肢では，「非常に音が小さい」と「音が出ない」を並列節として扱うことによって，両者がともに聞き返しにとって冗長であることを認識して削除する必要がある．「不十分」と評価された状況説明文については，状況説明文抽出の対象となるテキストの代表文(\ref{subsubsec:テキストのスコアと代表文}項)がテキストの内容をよく表していないものが多かった．これは，主にユーザ質問文とテキストのマッチングに関する問題である．しかし，テキストの中には，ユーザ質問文とマッチする1文だけを抽出しても，良い代表文が得られないものもある．例えば，ユーザが遭遇する問題(「エラーが発生する」など)と，ユーザの具体的な状況(エラーメッセージなど)が，それぞれ別々の文に書かれている場合は，提案手法はうまくいかない．このような場合は，文脈解析などのより深い言語処理が必要となる．
\section{おわりに}
\label{sec:おわりに}本論文では，大規模テキスト知識ベースを利用する対話的質問応答システムを提案した．システムを実際に運用し，得られた対話ログに基づいてシステムの評価を行い，対話セッションの成功率76\,\%，妥当な状況説明文の割合61\,\%という結果を得た．また，曖昧な質問への聞き返しとして対話カードと状況説明文の抽出を組み合わせて用いる本システムの枠組みは，有効に機能していることを示した．今後の課題としては，対話カードの自動的な作成と，対話のコンテキストの利用があげられる．対話カードの作成は，現在はすべて人手で行っているが，曖昧な質問を十分にカバーする対話カード集合の構築にはコストがかかるので，自動的に作成する手法が必要である．また，対話のコンテキストの利用については，収集した対話ログをより詳細に分析することで，研究を進める予定である．\bibliographystyle{jnlpbbl}\bibliography{425}\begin{biography}\vspace*{5mm}\biotitle{略歴}\bioauthor{清田陽司}{1998年京都大学工学部電気工学第二学科卒業．2000年同大学院情報学研究科修士課程修了．2003年同大学院情報学研究科博士後期課程単位認定退学．同年，東京大学大学院情報理工学系研究科産学官連携研究員，現在に至る．質問応答システム，情報検索，自動要約の研究に従事．}\bioauthor{黒橋禎夫}{1989年京都大学工学部電気工学第二学科卒業．1994年同大学院博士課程修了．Pennsylvania大学客員研究員，京都大学工学部助手，京都大学大学院情報学研究科講師を経て，2001年東京大学大学院情報理工学系研究科助教授，現在に至る．自然言語処理，知識情報処理の研究に従事．}\bioauthor{木戸冬子}{1997年マイクロソフト株式会社入社．1998年埼玉大学大学院理工学研究科入学(在学中)．UniversityProgram担当．自然言語処理技術を用いたサポートシステムの効率化を目的としたストレリチアプロジェクトのリーダーに従事．2001年科学技術振興事業団による理科教育用のデジタルコンテンツ開発にあたっては，埼玉大学，お茶の水女子大学，東京学芸大学との共同開発プロジェクトのリーダーを担当した．現在は，UniversityProgram担当として自然言語処理を中心とした大学との共同研究を担当している．}\bioreceived{受付}\biorevised{再受付}\bioaccepted{採録}\end{biography}\end{document}