\section{はじめに}
自由に閲覧することができる電子化文書の数が膨大になるにつれ，その中からユーザが必要とする情報を効率的に探し出すことが困難になってきている．このため，ユーザからの質問に対して明確な回答を自動的に提示する質問応答(QA)技術が注目されている．質問応答に用いる知識を人工言語で記述したUC\cite{thesis:wilensky84}などの質問応答システムでは，十分な記述力をもつ人工言語の設計のむずかしさ，知識ベースの高い作成コストといった問題があった．そこで，大量の電子化文書が利用可能になった1990年代からは，自然言語で記述された文書を質問応答システムの知識として利用しようとする研究が行われている\cite{proc:hammond95}．近年では，TREC\cite{web:TREC}やNTCIR\cite{web:NTCIR}といった評価型ワークショップも行われ，新聞記事やWWW文書などを知識として用いる質問応答システムの研究もさかんである．しかし，これらの研究の多くは事実を問う質問(what型の質問)を対象としていて，方法や対処法を問う質問(how型の質問)を扱うものは\cite{proc:higasa99}\cite{proc:kiyota02}などまだ少ない．これは，事実を問う質問に答えるための知識に比べ，方法や対処法を問う質問に答えるための知識(「こんな場合にはこうする」など)を獲得することがむずかしいからである．日笠らや清田らは，方法や対処法を問う質問に答えるための知識としてFAQ文書やサポート文書が利用できることを示した\cite{proc:higasa99}\cite{proc:kiyota02}．しかしこれらの研究では，FAQ文書やサポート文書がもつ文書構造を利用することを前提としていた．FAQ文書やサポート文書以外の，より多くの文書を知識として利用するためには，文書構造以外の手がかりを利用する方法について研究しなければならない．そこで本研究では最初に，方法や対処法を問う質問(how型の質問)に質問応答システムが答えるための知識を，メーリングリストに投稿されたメールからその質問や説明の中心になる文(重要文)を取り出すことによって獲得する方法について述べる．次に，メーリングリストに投稿されたメールから獲得した知識を用いる質問応答システムについて報告する．作成したシステムは自然な文で表現されたユーザの質問を受けつけ，その構文的な構造と単語の重要度を手がかりに質問文とメールから取り出した重要文とを照合してユーザの質問に答える．最後に，作成したシステムの回答と全文検索システムの検索結果を比較し，メーリングリストに投稿されたメールから方法や対処法を問う質問に答えるための知識を獲得できることを示す．
\section{方法や対処法を問う質問に答える質問応答システムで用いる知識}
清田らは，パーソナルコンピュータの利用者を対象にした質問応答システムを作成していて，そこで入力される質問を以下の3種類に分類している\cite{proc:kiyota02}．\begin{enumerate}\itemwhat型(事実を問うもの)\itemhow型(方法を問うもの)\itemsymptom型(症状を示し，その対処法を問うもの)\end{enumerate}自然言語文書を知識として利用する質問応答システムではwhat型の質問を取り扱うものが多く，how型とsymptom型の質問を扱うものは少ない．これは，方法や対処法を問うhow型やsymptom型の質問に答えるためには，「こんな場合(条件)にはこうする(説明)」といった，条件と説明を組み合わせた知識が必要だからである．こうした知識を自然言語で記述された文書から取り出すのは，事実を問うwhat型の質問に答えるための知識を取り出すのに比べてむずかしい．日笠らや清田らは，方法や対処法を問う質問に答えるための知識として，FAQ文書やサポート文書が利用できることを示した\cite{proc:higasa99}\cite{proc:kiyota02}．しかしこれらの研究では，FAQ文書やサポート文書がもつ文書構造を利用することを前提としていた．FAQ文書やサポート文書以外の，もっと多くの文書から「こんな場合(条件)にはこうする(説明)」という知識を獲得するためには，文書構造以外の手がかりを用いる方法を検討する必要がある．例えば，メーリングリストや電子掲示板にはさまざまな分野における質問と回答がくりかえし行われるものがあり，そこでは「こんな場合にはこうする」という情報が活発に交換されている．こうしたメディアでやりとりされている電子化文書から，方法や対処法を問う質問に答えるための知識を獲得する方法について検討することは重要である．大量の電子化文書から知識を獲得する場合，取り出した知識が正しいかどうかという問題もある．質問応答システムの知識として利用することを前提に作成した文書であるならば，あるいはFAQ文書やサポート文書のようなものならば，誤った情報がふくまれるおそれは少ない．しかし，インターネットで公開されている大量の電子化文書を質問応答システムの知識として利用する場合，それらの中に誤った情報や矛盾した内容がふくまれるおそれは十分にある．したがって，それらの文書から取り出した知識が正しいかどうかについての情報も重要である．質問に直接答えるための知識(例えば，how型の質問に対する「こんな場合にはこうする」という知識)以外にも，質問応答システムにとって重要な知識がある．例えば質問応答システムでは，ユーザの質問の不明確さやあいまいさが問題になる．こうした質問には，システムがユーザに問い返しを行うことが有効である\cite{proc:higasa99}\cite{proc:kiyota02}．このため，どのような問い返しを行うのかについての知識を用意することは重要である．
\section{メーリングリストに投稿されたメールからの重要文の抽出}
\label{sec:メーリングリストに投稿されたメールからの重要文の抽出}\subsection{メーリングリストに投稿されたメール}メーリングリストには質問と回答のメールが繰り返し投稿されるものがある．たとえば，Vinelinuxに関心のある人たちが情報を交換しているメーリングリスト(VineUsersML\footnote{http://vinelinux.org/ml.html})では質問と回答のメールがさかんに投稿されている．われわれはこうしたメーリングリストに投稿されたメールから質問応答システムで用いる知識を獲得することを考えた．その有利さを以下に示す．\begin{itemize}\item特定のドメインについての質問と回答の例を集めやすい\itemあいまいな質問に対する問い返しの例も集めやすい\item情報のすばやい更新が期待できる\item回答内容の確認が行われる\item回答内容に誤りがあると，その誤りが指摘されることが多い\end{itemize}VineUsersMLに投稿されるメールを調査すると，以下の4種類に分けることができた．\begin{description}\item[質問メール]ある問題について，最初に投稿される質問のメール(例：図\ref{fig:VineUsersMLに投稿された質問メール間の参照関係の例}のQ1)．質問メールでの質問は，質問応答システムにおけるユーザの質問と同様に，その内容が不明確だったりあいまいな場合もある．\item[直接回答メール]質問メールに直接回答するメール(例：図\ref{fig:VineUsersMLに投稿された質問メール間の参照関係の例}のDA1，DA2)．直接回答メールは，質問メールの質問にそのまま答える場合と，質問内容を問い返す場合がある．\item[質問者返信メール]直接回答メールに質問メールの投稿者が直接返信するメール(例：図\ref{fig:VineUsersMLに投稿された質問メール間の参照関係の例}のQR1)．質問者返信メールでは，直接回答メールでよせられた回答にしたがって行った作業の報告や問い返しに対する回答が述べられている．直接回答メールの回答に誤りがある場合には，それを指摘することもある．\item[その他](例：図\ref{fig:VineUsersMLに投稿された質問メール間の参照関係の例}のO1，O2，O3)\end{description}メーリングリストに投稿されたメールがこれら4種類のどのメールであるのかは，メール間の参照関係と投稿者のメールアドレスを利用すれば自動的に判定することができる．例えば，図\ref{fig:VineUsersMLに投稿された質問メール間の参照関係の例}のQ1は参照するメールがないので質問メール，DA1とDA2は質問メールであるQ1を参照しているので直接回答メール，そしてQR1は直接回答メールDA1を参照していて，投稿者のメールアドレスが質問メールQ1のものと同じであるので質問者回答メールであると判定できる．\begin{figure}[t]\leavevmode\begin{center}\epsfile{file=fig/mails.eps,scale=0.5}\caption{VineUsersMLに投稿されたメール間の参照関係の例}\label{fig:VineUsersMLに投稿された質問メール間の参照関係の例}\end{center}\end{figure}\begin{figure}[t]\begin{center}質問メールとその重要文の例\vspace{1mm}\epsfile{file=fig/doc921.eps,scale=0.3}直接回答メールとその重要文の例\vspace{1mm}\epsfile{file=fig/doc929.eps,scale=0.3}質問者返信メールとその重要文の例\vspace{1mm}\epsfile{file=fig/doc993.eps,scale=0.3}\caption{VineUsersMLに投稿されたメールと重要文の例(破線で囲まれた文が重要文)}\label{fig:VineUsersMLに投稿されたメールと重要文の例}\end{center}\end{figure}VineUsersMLなどのメーリングリストに投稿されたメールではさまざまな形式で質問や回答が表現されていて，FAQ文書やサポート文書のような一定の文書構造がない．しかし，質問・説明の中心になる文があった．図\ref{fig:VineUsersMLに投稿されたメールと重要文の例}に示すメールの例では破線で囲まれた文が質問・説明の中心になる文である．こうした文を重要文とよぶことにする．われわれは，メーリングリストに投稿されたメールから重要文を取り出すことで，方法や対処法を問う質問(how型の質問)に質問応答システムが答えるための知識を獲得できるのではないかと考えた．すなわち，メーリングリストに投稿されたメールを対象に，\begin{itemize}\item質問メールと直接回答メールから取り出した重要文を用いて「この場合にはこうする」という知識を獲得する．\item質問者返信メールから取り出した重要文を用いて「この場合にはこうする」という知識の正しさについての情報を獲得する．\item質問メールと直接回答メールから取り出した重要文を用いて，あいまいな質問とそれに対する問い返しの例を獲得する．\end{itemize}VineLinuxMLに投稿されたメールを調査すると，質問メール，直接回答メール，質問者返信メールの重要文には次のような特徴があった．\begin{enumerate}\item質問メールの重要文はsubjectに含まれる名詞および未定義語を含むことが多い．これは，質問メールの重要文もsubjectも，そのメールの質問内容のよい要約になっていることが多いからである．\itemそれぞれのメールの重要文は，そのメールに直接返信しているメールで引用されることが多い．図\ref{fig:VineUsersMLに投稿されたメールと重要文の例}では，質問メールと直接回答メールの重要文がそれぞれ直接回答メールと質問者返信メールで引用されている．\itemそれぞれのメールの重要文には典型的な表現がある．例えば質問メールの重要文には以下に示すような典型的な表現があった．\begin{itemize}\item文末に「ません」「しょうか」「います」「ました」がある．(例)Bluefishで日本語フォントの表示ができ\underline{ません}．\item文中に「困って」「トラブって」「ご指導」「？」がある．(例)数日前から一般ユーザログインでxstartできなくて\underline{困って}います．\item行頭に＃がない．行頭の＃は，その行の記述については無視することを要請する記号である．(例)\underline{＃}とても初歩な質問でスミマセン\end{itemize}\itemそれぞれのメールの重要文は，本文のはじめに近い位置にあらわれることが多い．ただし，直接回答メールや質問者返信メールの重要文は，それらのメールが返信しているメールの重要文を引用している場合には，その引用している重要文の後にあらわれることが多い．図\ref{fig:VineUsersMLに投稿されたメールと重要文の例}の直接回答メールの例では，先頭の4行が引用文で，そこでは質問メールの重要文が引用されている．この引用のあとに，直接回答メールの重要文(破線で囲まれた文)がある．\end{enumerate}\subsection{メーリングリストに投稿されたメールからの重要文の抽出処理}メーリングリストに投稿されたメールから重要文を抽出する処理の概要を図\ref{fig:メーリングリストに投稿されたメールから重要文を取り出す処理}に示す．前処理を行ってメールから取り出した文に対し4つの規則を適用して重要度を計算する．最も重要度が高い文を重要文として各メールから1文ずつ取り出す．\begin{figure}[t]\begin{center}\epsfile{file=fig/jyu.eps,scale=1.0}\caption{メーリングリストに投稿されたメールから重要文を取り出す処理}\label{fig:メーリングリストに投稿されたメールから重要文を取り出す処理}\end{center}\end{figure}\subsubsection{前処理}メールの各文の重要度を評価する前に，以下の前処理を行う．\begin{enumerate}\renewcommand{\labelenumi}{}\itemメーリングリストに投稿されたメールを対象に，メール間の参照関係および投稿者のメールアドレスを利用して，\begin{itemize}\item質問メール\item直接回答メール\item質問者返信メール\end{itemize}を取り出す．\item取り出したメールの本文を形態素解析する．ただし，以下のものは形態素解析を行う前に取り除く．\begin{itemize}\item＃ではじまる行\item引用記号(例:＞)ではじまる行\item()で囲まれている文字列\end{itemize}図\ref{fig:VineUsersMLに投稿されたメールと重要文の例}の直接回答メールの例では，先頭の4行を引用部分として取り除き，残りの2文について形態素解析を行う．また，「実行するとSegmentationfault（coredumped）してしまいます」という文の場合は，「（coredumped）」の部分をとりのぞいてから形態素解析を行う．形態素解析にはJUMAN\cite{man:juman98}を用いる．\item形態素解析を行った文が，そのメールに直接返信しているメールで何回引用されているか記述する．\item質問メールのsubjectを形態素解析し，その結果から名詞と未定義語を取り出す．\end{enumerate}\begin{table}[tbp]\begin{center}\caption{メーリングリストに投稿されたメールからの重要文抽出に用いる手がかり表現}\label{tab:重要文抽出に用いた手がかり表現}\vspace{3mm}1.質問メールからの重要文抽出に用いる手がかり表現\begin{enumerate}\item「ません」「しょうか」「います」「ました」「?」で終わる文\item「困って」「トラブって」「ご指導」を含む文\item接続詞「が」「しかし」を含み，「ません」「しょうか」「います」「ました」で終わる文\end{enumerate}\vspace{4mm}2.直接回答メールからの重要文抽出に用いる手がかり表現\begin{enumerate}\item以下の表現で終わる文\begin{itemize}\item「ますか」(していますか，どうなっていますか，など)\item「ませんか」(ありませんか，いませんか，など)\item「ですか」(いかがですか，ってことですか，ないですか，など)\item「でしょうか」(どうでしょうか，いかがでしょうか，など)\item「よね」(ますよね，ですよね，など)\item「できます」「できません」「できています」「ないようです」「簡単です」「可能です」\item「しました」「いません」「ます」(してます，います，あります，など)\item「ください」\item「いかがでしょう」\item「すればよい」\item「です」「はず」「と思う」「とか」\end{itemize}\item以下の語を含む文\begin{itemize}\item「あれば」「すれば」「ならば」「ときは」「したら」\item「では」\end{itemize}\end{enumerate}\vspace{4mm}3.質問者返信メールからの重要文抽出に用いる手がかり表現\begin{enumerate}\item以下の表現で終わる文\begin{itemize}\item「です」「ました」(できました，いきました，なりました，など)\item「ません」「だめでした」\item「ありがとう」「ありがとうございました」\item「ますか」「ます？」\end{itemize}\end{enumerate}\end{center}\end{table}\subsubsection{重要度の計算}質問メール，直接回答メール，および質問者返信メールから取り出した文に対し，以下の4つの規則を順に適用して重要度を計算する．そして，それぞれのメールから最も重要度が高い文を重要文として取り出す．\begin{description}\item[{\bf規則1:}][subjectの規則]この規則は，質問メールの本文から取り出した文にのみ適用する．subjectに含まれている名詞・未定義語を含む文には1点を加える．\item[{\bf規則2:}][手がかり表現の規則]表\ref{tab:重要文抽出に用いた手がかり表現}に示す手がかり表現を$N$個含む文には$N$点を加える．\item[{\bf規則3:}][引用文の規則]メールの本文から取り出した文で，そのメールに直接返信しているメールで引用されている回数が最も多い文に1点を加える．\item[{\bf規則4:}][位置の規則]規則1〜3を適用した時点で最高の重要度が与えられている文が2つ以上ある場合，最も先頭に近い文に1点を加える．ただし，直接回答メールあるいは質問者返信メールで，それが返信しているメールの重要文を引用している場合は，その引用している重要文の後で最も先頭に近い文に1点を加える．\end{description}規則1，2，4は，新聞記事などを対象にして用いられている重要文抽出手法をメールに適用したものである\cite{thesis:okumura99}．一方，規則3は，引用が多用されるメールから重要文を抽出するための規則である．\subsection{重要文抽出の実験結果と検討}本研究では，VineUsersMLおよびperl質問箱\footnote{http://www.freeml.com/info/perl@freeml.com(プログラミング言語perlについて話しあうメーリングリスト)}というメーリングリストに投稿されたメールを対象に実験を行った．VineUsersMLに投稿されたメール50846通には，\begin{itemize}\item質問メール(8964通)\item直接回答メール(13094通)\item質問者返信メール(4276通)\end{itemize}が含まれていた．この中から，返信がある質問メール127通を無作為に取り出し，それらの直接回答メール(184通)と質問者回答メール(75通)も取り出した．同様に，perl質問箱に投稿されたメール6086通から返信がある質問メール36通を無作為に取り出し，それらの直接回答メール(58通)と質問者回答メール(20通)も取り出した．それらに対する重要文抽出の結果を表\ref{tab:重要文抽出の結果}に示す．重要文抽出に失敗した理由を以下に示す．\begin{itemize}\item表\ref{tab:重要文抽出に用いた手がかり表現}に示した手がかり表現を含まない重要文があった．\item重要文ではない文で表\ref{tab:重要文抽出に用いた手がかり表現}に示した手がかり表現を含む文があった．\item質問あるいは回答の中心になる文が複数の文で構成されていて，それらのうち1文しか取り出せなかった．\item重要文中に誤字・脱字があった．\end{itemize}\begin{table}[tbp]\leavevmode\begin{center}\vspace{-3mm}\caption{重要文抽出の結果}\label{tab:重要文抽出の結果}\vspace{2mm}\begin{tabular}[t]{cc}\begin{tabular}{lcc|c}\multicolumn{4}{c}{VineUsersML}\\メールの種類&正&誤&合計\\\hline質問メール&96&31&127\\直接回答メール&153&31&184\\質問者返信メール&45&30&75\\\end{tabular}&\begin{tabular}{lcc|c}\multicolumn{4}{c}{perl質問箱}\\メールの種類&正&誤&合計\\\hline質問メール&28&8&36\\直接回答メール&42&16&58\\質問者返信メール&10&10&20\\\end{tabular}\end{tabular}\end{center}\end{table}つぎに，重要文抽出の結果が「こんな場合にはこうする」という条件と説明の知識として適切であるかどうか，\begin{itemize}\item文のつながりが正しいかどうか\itemその知識が問題解決に有効かどうか\end{itemize}という点に注意して検討を行った．例えば，以下の例では質問メール(質問A)の重要文と直接回答メール(直接回答A--1)の重要文とでは正しく文がつながっている．一方，(質問A)と(直接回答A--2)の重要文の間では文のつながりがない．しかし，(質問A)と(直接回答A--1)の知識は問題解決に役立つとして，この質問メールと回答メールからは有効な知識が獲得できたと判定した．\begin{verbatim}(質問A)veditは，存在しないファイルをひらこうとするとコアはきますか├(直接回答A-1)はい，コアダンプします└(直接回答A-2)将来，GNOMEはインストール後すぐつかえるのですか？\end{verbatim}VineUsersMLから取り出した127個の質問メールとそれらの直接回答メールを調べると，92例で有効な知識の獲得に成功し，35例で失敗した．一方，perl質問箱から取り出した36個の質問メールとそれらの直接回答メールを調べると，23例で有効な知識の獲得に成功し，13例で失敗した．知識の獲得に失敗した原因を以下に示す．\begin{itemize}\item質問メールからの重要文抽出に失敗した(VineUsersML:21例，perl質問箱:8例)\item直接回答メールからの重要文抽出に失敗した(VineUsersML:14例，perl質問箱:5例)\end{itemize}質問メールからの重要文抽出に失敗したことが原因で知識の獲得に失敗した例はそれほど深刻ではない．誤って抽出した文の多くは質問文ではなく，質問応答システムでユーザの質問とマッチする可能性が低いからである．一方，直接回答メールからの重要文抽出に失敗したことが原因で知識の獲得に失敗した例はより深刻である．質問メールから取り出した文は質問文として適切で，質問応答システムでユーザの質問とマッチする可能性が高いからである．その場合，直接回答メールから誤って抽出した，回答や問い返しとして不適切な文がユーザに示されるおそれがある．図\ref{fig:vinelinuxMLから取り出した知識の例}に，VineUsersMLに投稿されたメールからの重要文抽出によって獲得した「こんな場合にはこうする」という知識の例を示す．\begin{figure}[t]\begin{verbatim}(質問1)サウンドの設定でこまっています．├(直接回答1-1)まずは，sndconfigを実行してみてください．│└(質問者返信1-1)これでうまくいきました└(直接回答1-2)sndconfigで，しあわせになりました．\end{verbatim}\begin{verbatim}(質問2)パーティション設定時にSCSIディスクが表示されないので，インストール│できません．├(直接回答2-1)えーと，「パーティション設定時にSCSIディスクが表示されない」│というのはdiskdruidでの話でしょうか└(直接回答2-2)typicalproblemsに書いてある問題じゃないでしょうか\end{verbatim}\begin{verbatim}(質問3)1.0.6のパッチはありますか．└(直接回答3-1)gtk+-1.0.4を利用するほうがいいでしょう．\end{verbatim}\begin{verbatim}(質問4)ES1868のサウンドカードをつかっていますが，音が大きすぎてこまっています．└(直接回答4-1)xmixerを使って下さい．└(質問者返信4-1)xmixerもxplaycdもインストールされていないみたいです．\end{verbatim}\begin{verbatim}(質問5)いくつか問題がありますが，この件のレポートはどこに送ればいいのですか．└(直接回答5-1)このMLで構いません．\end{verbatim}\begin{verbatim}(質問6)これはどういう意味ですか．└(直接回答6-1)ちゃんと質問しないと，だれも答えられません．\end{verbatim}\caption{VineUsersMLに投稿されたメールからの重要文抽出によって獲得した，\\方法や対処法を問う質問に答えるための知識の例}\label{fig:vinelinuxMLから取り出した知識の例}\end{figure}図\ref{fig:vinelinuxMLから取り出した知識の例}の質問メール(質問1)には，2つの直接回答メール(直接回答1--1)と(直接回答1--2)があった．どちらのメールでも質問者にsndconfigを使うことをすすめているが，(直接回答1--1)はその内容が質問者返信メール(質問者返信1--1)によって保証されている．方法や対処法を問う質問に対する回答候補は複数個ある場合が多く，この場合のように質問者返信メールによる情報内容の保証があると，ユーザが情報をしぼりこむのに役立つ．図\ref{fig:vinelinuxMLから取り出した知識の例}の質問メール(質問2)と(質問3)からは，質問としてはあいまいで不完全な文が重要文として取り出されている．(質問2)のメールでは，ハードディスクのパーティションの設定についての質問が行われていた．しかし，この質問メールでの質問そのものがあいまいであったため，そこから取り出した重要文もまたあいまいな内容になっていた．具体的には，質問者がどんなプログラムを利用してハードディスクのパーティションの設定したのかについての情報が欠けていた．これに対して，(直接回答2--1)の回答者は，質問者が利用したプログラムがdiskdruidであるかどうか問い返している．この例を知識として用いれば，(質問2)に類似するあいまいな質問に対して質問応答システムは，ユーザにdiskdruidを利用したのかどうか問い返すことができる．実験では，このようなあいまいな質問に対する問い返しの例がVineUsersMLで15例，perl質問箱で3例あった．(質問3)では，gtk+についての質問が行われていた．この質問メールでの質問にはあいまいさはなかったが，質問の中心になる文が複数あった．そのうち1文だけを重要文として取り出したため，何について質問しているのかという情報(この場合は，gtk+)が失われていた．しかし，(直接回答3--1)から取り出した重要文がこの失われた情報を補っている．そこで，この例では(質問3)からの重要文抽出には失敗と判定したが，(質問3)と(直接回答3--1)から抽出した重要文を組み合わせた知識については正しいと判定した．実験では，このような例がVineUsersMLで10例，perl質問箱で1例あった．(質問4)の質問に対する(直接回答4--1)の回答は(質問4)の質問者にとっては適切な内容ではなかった．(質問4)の質問者は(直接回答4--1)の回答内容を試し，問題が解決しなかったことを(質問者返信4--1)で報告している．実験では，このように回答の誤り・不適切さを指摘する例がVineUsersMLで4例あった．(質問5)と(質問6)では，分野に依存しない質問が行われている．したがって，これらの例はわれわれの方法が分野に依存したものではないことを示している．ただし，(質問6)に対する(直接回答6--1)の回答はあまり丁寧な文ではない．このような例を利用してシステムが回答すると，ユーザにそのシステムを利用しようとする意欲を失わせるおそれがある．また，(質問5)と(質問6)にはそれぞれ照応表現が含まれていて，その先行詞が取り出されていない．こうした文は，質問応答システムがユーザの質問文と照合するのに失敗するおそれがある．
\section{メーリングリストに投稿されたメールを利用した質問応答システム}
\label{sec:メーリングリストに投稿されたメールを利用した質問応答システム}メーリングリストに投稿されたメールを利用して，how型の質問に答える質問応答システムについて述べる．このシステムは自然な文で表現したユーザの質問を受けつけ，VineUsersMLに投稿されたメールからユーザの質問に類似する重要文をもつ質問メールをさがし，その回答メールの重要文とともに回答としてユーザに示す．\subsection{システムの概要}作成したシステムの概要を図\ref{fig:システムの概要}に示す．システムを構成するモジュールの機能と内容を以下に示す．インターフェイスにはWebブラウザを用いた．\begin{description}\item[{\bf質問受付モジュール}]自然な文で表現されているユーザの質問を受けつけ，質問解析モジュールに送る．\item[{\bf回答出力モジュール}]類似度計算モジュールの計算結果にしたがって，ユーザの質問に類似すると判定した質問メールおよび回答メールをユーザに示す．\item[{\bf質問解析モジュール}]ユーザの質問文を対象に形態素解析および係り受け解析を行い，解析結果を類似度計算モジュールに送る．形態素解析にはJUMAN\cite{man:juman98}，係り受け解析にはKNP\cite{man:knp98}を用いた．\item[{\bf類似度計算モジュール}]ユーザの質問文と質問メールの重要文の類似度を，文の構文的な構造と単語の重要度にもとづいて計算する．類似度の計算方法は，\ref{sec:自然な文で表現された質問文と質問のメールから取り出した重要文の類似度}節で述べる．計算結果は回答出力モジュールに送られる．\item[{\bf質問\&回答メール}]メーリングリストに投稿された質問メールとその回答メール(直接回答メール，質問者回答メール，およびその他)が格納されている．\item[{\bf重要文の解析結果}]質問メールとその回答メールから取り出した重要文の形態素解析および係り受け解析の結果が格納されている．重要文の解析結果は類似度計算を行うときに参照される．\item[{\bf同義語辞書}]類似度計算で用いる同義語の辞書．519語が登録されている．図\ref{fig:同義語辞書に登録されている同義語の例}にこの辞書に登録されている同義語の例を示す．\begin{figure}[t]\begin{center}\epsfile{file=fig/yokomizo02.eps,scale=0.9}\caption{システムの概要}\label{fig:システムの概要}\end{center}\end{figure}\begin{figure}[t]\begin{center}{\small\begin{tabular}{|l|}\hlineHDHDDハード・ディスク\\LANカードLANアダプタLANボードNIC\\RAMカードPCメモリ・カード\\圧縮アーカイバ圧縮ソフト圧縮ツール\\アラート警告\\\hline\end{tabular}}\caption{同義語辞書に登録されている同義語の例}\label{fig:同義語辞書に登録されている同義語の例}\end{center}\end{figure}\end{description}\subsection{自然な文で表現された質問文と質問のメールから取り出した重要文の類似度}\label{sec:自然な文で表現された質問文と質問のメールから取り出した重要文の類似度}ユーザの質問文と質問メールの重要文との類似度を，文の構文的な構造と単語の重要度にもとづいて定義する．質問メール$M_{i}$から取り出した重要文$S_{i}$に含まれる自立語$t$の重要度$w_{WORD}(t,M_{i})$を以下のように定義する．\[w_{WORD}(t,M_{i})=tf(t,S_{i})\log\frac{N}{df(t)}\]$tf(t,S_{i})$は重要文$S_{i}$における自立語$t$の出現頻度，$N$は重要文をとりだすことのできた質問メールの総数，$df(t)$は自立語$t$を重要文に含む質問メールの総数である．また，質問メール$M_{i}$から取り出した重要文$S_{i}$の係り受け構造木を構成する枝$l$の重要度$w_{LINK}(l,M_{i})$を以下のように定義する．\begin{eqnarray*}w_{LINK}(l,M_{i})&=&w_{WORD}(modfier(l),M_{i})+w_{WORD}(head(l),M_{i})\end{eqnarray*}$modfier(l)$と$head(l)$はそれぞれ枝$l$によって係る文節の自立語，係られる文節の自立語を表わす．質問メール$M_{i}$から取り出した重要文$S_{i}$に含まれる自立語のうち，質問文$Q$にその自立語そのものかその同義語が含まれているものの重要度の和を$SCORE_{WORD}(Q,M_{i})$とする．また，質問メール$M_{i}$から取り出した重要文$S_{i}$の係り受け構造木を構成する枝のうち，質問文$Q$の係り受け構造木にもあらわれるものの重要度の和を$SCORE_{LINK}(Q,M_{i})$とする．このとき，ユーザの質問文$Q$と質問メール$M_{i}$から取り出した重要文$S_{i}$の類似度$SCORE(Q,M_{i})$を$SCORE_{WORD}(Q,M_{i})$と$SCORE_{LINK}(Q,M_{i})$の和とする．\subsection{自然な文で表現されたユーザの質問に対する応答}\label{subsec:自然な文で表現されたユーザの質問に対する応答}\begin{figure}[t]\begin{center}{\small\begin{tabular}[t]{rp{120mm}}(1)&DHCPでIPを再取得できない\\(2)&Linuxで音が出ません\\(3)&XWindowSystem起動時の不都合について\\(4)&ハードディスクのパーティションの修復\\(5)&ApacheにSSIを許可する設定はいずこに\\(6)&proftpdにログインできない\\(7)&漢字入力できません\\(8)&NICを二枚使用して，Linuxマシーンをルータとして機能する方法を教えてください\\(9)&Apache1.39でCGIが使えない\\(10)&再起動すると時間がくるう\\(11)&英語エラーメッセージに戻す方法がありましたらお教え下さい\\(12)&NFSサーバが起動しません\\(13)&MOを使う方法を教えてください\\(14)&トラフィックのモニタリングする方法はありませんでしょうか\\(15)&Emacsで漢字コードを指定するにはどうしたらいいのでしょうか\\(16)&Xで＼キーが入力できない\\(17)&PDFのテキストだけを抽出する方法を教えてください\\(18)&loginするときに時間がかかってしまいます\\(19)&lprで印刷ができないで困っています\\(20)&Emacsでバックアップファイルをつくらない方法を教えてもらえないでしょうか\\(21)&Xwindowの画面を取り込むにはどうしたらいいのでしょうか\\(22)&レスキューディスクがないときの起動はできるのでしょうか\\(23)&PCMCIAスロットを使えるように設定したのですが，ネットワークカードをネットワークカードとして認識してくれません．\\(24)&PPxPが実行できない\\(25)&chmodができるFTPサーバを探しています\\(26)&Makefileの記述方法がわかりません\\(27)&特定のユーザをtelnetでログインできないようにしたいのですが，どういう設定が必要なのか教えていただけないでしょうか?\\(28)&VineLinux2.5でWebminを起動しようとすると，localhost:10000へのネットワーク接続を試みているときに接続が拒否されました\\(29)&自作マシンにビデオキャプチャーカードを挿したはいいものxawtvを用いてテレビを見ることができません\\(30)&LaTexで書かれた日本語の文章があって，これをWordの文章にしたい\\(31)&リソースを監視できるソフトの中でお勧めのソフトって何かありますでしょうか\\(32)&CDROMのmountができずにてこずっています\\\end{tabular}}\caption{LinuxUsersMLから取り出した32個の質問}\label{fig:LinuxUsersMLから取り出した32個の質問}\end{center}\end{figure}\ref{sec:自然な文で表現された質問文と質問のメールから取り出した重要文の類似度}節で定義した類似度にもとづいて，自然な文で表現されたユーザの質問に対し，メーリングリストに投稿されたメールを利用して回答する実験を行った．実験にはVineUsersMLに投稿された50846通のメールを用いた．これらのメールには，\begin{itemize}\item質問メール(8964通)\item直接回答メール(13094通)\item質問者回答メール(4276通)\end{itemize}が含まれていて，それらから重要文を取り出した．実験に用いる自然な文で表現された質問は，VineUsersMLに類似したメーリングリストLinuxUsersML\footnote{http://www.linux.or.jp/community/ml/linux-users/(Linuxに関するユーザ同士の情報交換を目的としたメーリングリスト)}に実際に投稿された質問を用いた．図\ref{fig:LinuxUsersMLから取り出した32個の質問}に実験に用いた32個の質問を示す．提案手法の結果は，質問文に含まれる名詞と未定義語を検索のキーとする全文検索の結果と以下の3つの方法で比較した．\begin{description}\item[評価1]検索結果の上位1つを比較\item[評価2]検索結果の上位3つを比較\item[評価3]検索結果の上位5つを比較\end{description}表\ref{tab:提案手法と全文検索の結果の比較}はそれぞれの評価について，(a)適切な質問メールとその回答のメールを検索できた問題の数，(b)検索された適切な質問メールとその回答のメールの組の数を示す．\begin{table}[t]\begin{center}\caption{提案手法と全文検索の結果の比較}\label{tab:提案手法と全文検索の結果の比較}\vspace{2mm}\begin{tabular}{lcccccccc}&\multicolumn{2}{c}{評価1}&\multicolumn{2}{c}{評価2}&\multicolumn{2}{c}{評価3}&\multicolumn{2}{c}{}\\&(a)&(b)&(a)&(b)&(a)&(b)&&\\\hline提案手法&9&9&16&26&17&41&&\\全文検索&5&5&5&9&8&15&&\\\hline\multicolumn{9}{l}{\footnotesize(a)適切な質問と回答のメールを検索できた問題の数}\\\multicolumn{9}{l}{\footnotesize(b)検索された適切な質問と回答のメールの組の数}\end{tabular}\end{center}\end{table}評価1で，提案手法で適切な応答が得られたのは，質問2，6，7，8，13，14，15，19，24．一方，全文検索で適切な検索結果が得られたのは，質問2，5，7，19，32．質問2，7と19は提案手法でも全文検索でも適切な結果が得られたが，それらは異なるメールであった．これは，ユーザの質問に答えられる内容の質問メールとその回答のメールの組が複数存在することがあるからである．質問4「ハードディスクのパーティションの修復」についてはどちらの方法でも適切な質問のメールは検索できなかった．この質問に対する全文検索の結果に「ファイルを救出したい」という質問のメールがあった．このメールおよびその回答のメールではファイルの救出方法が扱われていてパーティションの修復方法は直接扱っていないが，質問4の目的が「ファイルの救出」であるならば適切な回答であるといえる．このようにユーザの質問とその目的にずれがあるときは，そのギャップをうめる工夫が必要である．こうしたギャップをうめるのに，対話処理は有効であると考えられる．評価2および3では提案手法の結果が全文検索の結果よりよい．全文検索よりも多くの質問にこたえているし，ユーザの質問に関連する質問メールをより多く見つけ出している．また，作成したシステムの回答結果は，図\ref{fig:ユーザの質問に対する応答の例}のように重要文を用いて表現されているので，全文検索の場合にくらべてその回答内容をユーザは把握しやすい．\subsection{システムの質問応答例}図\ref{fig:ユーザの質問に対する応答の例}は，質問14「トラフィックのモニタリングする方法はありませんでしょうか」に対するシステムの応答を示す．この質問に対してシステムは2つの答え(質問メールとその回答メールから取り出した重要文)をユーザに示している．いずれの答えも適切な内容で，そのうち応答結果が1位のものを以下に示す．\begin{verbatim}(質問B)vine-linuxで使える，トラフィックを測定するツールってないでしょうか？├(直接回答B-1)snmp+mrtgとはではダメですか？├(直接回答B-2)見た目は・・こちらをどうぞ│http://web.wt.net/~billw/gkrellm/gkrellm.html└(直接回答B-3)ネットワーク接続中にちょっとトラフィックを確認するぐらいならば└(質問者返信B-1)みなさん，いろいろ情報ありがとうございました．\end{verbatim}表示されている重要文を選択すると，その重要文を取り出したメールが表示され，ユーザは詳しい情報を知ることができる(図\ref{fig:回答メールの表示の例})．\begin{figure}[p]\begin{center}\epsfile{file=fig/nishisys14g.ps,scale=0.4}\caption{ユーザの質問に対する応答の例}\label{fig:ユーザの質問に対する応答の例}\vspace{12mm}\epsfile{file=fig/nishisys14ansg.ps,scale=0.4}\caption{回答メールの表示の例}\label{fig:回答メールの表示の例}\end{center}\end{figure}作成したシステムは，ユーザの質問に対して(直接回答B-1)や図\ref{fig:vinelinuxMLから取り出した知識の例}の(直接回答2-1)のように問い返しを行うことができる．この問い返しによって，ユーザは自分の質問で不足している情報に気づき，より具体的であいまいさのない質問をつくることができる．また，その問い返し文を取り出したメールから問題を解く手がかりや答えそのものを取り出せることもある．獲得した知識による問い返しについて，われわれは以下の取組みを現在行っている．\begin{itemize}\item作成したシステムでは回答候補の順位づけにユーザの質問文と質問メールの重要文との類似度のみを用いている．そこで，直接回答メールや質問者回答メールから取り出した重要文の情報も利用して，ユーザの質問にふさわしい内容の回答(例えば問い返しなど)を優先してユーザに示す方法を検討している．\item作成したシステムは対話処理を行えないので，システムの問い返しに対するユーザの返事は新たな質問として扱われる．そこで，獲得した知識を用いてユーザとシステムが対話を行う方法について検討している．\end{itemize}(直接回答B-2)には照応表現(「こちら」)がある．この例のように，質問メールとその回答のメールから取り出した重要文には，照応・省略表現が含まれることがある．作成したシステムはユーザの質問文とメールから取り出した重要文とを照合して質問に答えているので，こうした照応・省略表現による情報の欠落に弱い．本研究では照応解析を行わずに，大量のメールから知識を獲得することでこの問題に対応しようと考えた．大量のメールから知識を獲得すれば，照応・省略表現を含まない「こんな場合にはこうする」という情報を十分に獲得できるのではないかと考えたからである．VineUsersMLに投稿されたおよそ5万通のメールから獲得した知識を用いた今回の実験では，照応解析を行わなくても全文検索よりよい結果を得ることができた．
\section{おわりに}
作成したシステムでは，回答候補の順位づけにユーザの質問文と質問メールの重要文との類似度のみを用いている．現在，直接回答メールや質問者回答メールから取り出した重要文の情報も利用して，ユーザの質問にふさわしい内容の回答を優先してユーザに示す方法を検討している．また，今回獲得した知識を用いてユーザとシステムが対話を行う方法についても検討している．\acknowledgment本研究を進めるにあたって有意義なコメントをいただいた龍谷大学岡田研究室のみなさんに感謝いたします．また，本稿の改善に対して，査読者の方から非常に有益なコメントをいただきました．ここに感謝いたします．\bibliographystyle{unsrt}\begin{thebibliography}{99}\bibitem[\protect\BCAY{Hammond}{Hammond}{1995}]{proc:hammond95}Hammond,Burke,Martin,Lytinen:``FAQFinder:ACase-BasedApproachtoKnowledgeNavigation'',11thConferenceonArtificialIntelligenceforApplication,(1995)\bibitem[\protect\BCAY{日笠}{日笠}{1999}]{proc:higasa99}日笠,古河,黒橋:大学における計算機環境下での対話的ヘルプシステムの作成,言語処理学会第5回年次大会,(1999)\bibitem[\protect\BCAY{清田}{清田}{2002}]{proc:kiyota02}清田,黒橋,木戸:大規模テキスト知識ベースに基づく自動質問応答--話し言葉ナビ--,言語処理学会第8回年次大会,(2002)\bibitem[\protect\BCAY{黒橋}{黒橋}{1998}]{man:juman98}黒橋,長尾:日本語形態素解析システムJUMANversion3.61使用説明書,京都大学,(1998)\bibitem[\protect\BCAY{黒橋}{黒橋}{1998}]{man:knp98}黒橋:日本語構文解析システムKNPversion2.0b6使用説明書,京都大学,(1998)\bibitem[\protect\BCAY{NTCIR}{NTCIR}{}]{web:NTCIR}NTCIR:http://www.nlp.cs.ritsumei.ac.jp/qac/\bibitem[\protect\BCAY{奥村}{奥村}{1999}]{thesis:okumura99}奥村,難波:テキスト自動要約に関する研究動向,自然言語処理,Vol.6,No.6,(1999)\bibitem[\protect\BCAY{TREC}{TREC}{}]{web:TREC}TREC:http://trec.nist.gov/\bibitem[\protect\BCAY{Wilensky}{Wilensky}{1984}]{thesis:wilensky84}Wilensky,Arens,Chin:``TalkingtoUNIXinEnglish:AnOverviewofUC'',CommunicationsoftheACM,27(6),(1984)\end{thebibliography}\begin{biography}\biotitle{略歴}\bioauthor{渡辺靖彦}{1991年京都大学工学部電気工学第二学科卒業．1995年同大学院博士課程退学．博士(情報学)．龍谷大学理工学部助手を経て，2002年より龍谷大学理工学部情報メディア学科専任講師，現在に至る．自然言語処理，知識情報処理の研究に従事．}\bioauthor{横溝一哉}{2003年龍谷大学理工学部卒業．同年，ケイ・オプティコムに入社，現在に至る．}\bioauthor{西村涼}{2003年龍谷大学理工学部情報メディア学科入学，現在に至る．}\bioauthor{岡田至弘}{1977年立命館大学理工学部卒業．工学博士．現在，龍谷大学理工学部情報メディア学科教授．学内キャンパスのLANの構築，および分散型計算機システム，パターン認識・理解の研究に従事．}\bioreceived{受付}\biorevised{再受付}\bioaccepted{採録}\end{biography}\end{document}