\label{sec:introduction}我々は，1998年10月から自然言語解析用ツール「MSLRパーザ・ツールキット」を公開している~\footnote{{\tthttp://tanaka-www.cs.titech.ac.jp/pub/mslr/}}．MSLRパーザ(MorphologicalandSyntacticLRparser)は，一般化LR法の解析アルゴリズムを拡張し，単語区切りのない言語(日本語など)を主に対象とし，形態素解析と構文解析を同時に行うパーザである\footnote{MSLRパーザは，分かち書きされた文(英語文など)を解析する機能も持っているが，もともとは単語区切りのない文を解析することを目的に作られた．}．本論文では，MSLRパーザ・ツールキットの特徴と機能について述べる．MSLRパーザを用いて文を解析する場合には，以下の3つが必要になる．\begin{quote}\begin{description}\item[文法]品詞を終端記号とする文脈自由文法．主に構文解析に用いる．\item[辞書]単語とそれに対応した品詞を列挙したデータで，形態素解析の基本単位を集めたものである．辞書の品詞体系は文法の品詞体系と一致していなければならない．\item[接続表]品詞間の接続制約を記述した表．品詞間の接続制約とは，ある2つの品詞が隣接できるか否かに関する制約である．\end{description}\end{quote}本ツールキットでは，文法・辞書・接続表を自由に入れ換えることができる．すなわち，ユーザが独自に開発した文法や辞書を用いて，MSLRパーザによって文の解析を行うことが可能である．また，MSLRパーザ・ツールキットには日本語解析用の文法，辞書，接続表が含まれている．したがって，文法等を持っていないユーザでも，ツールキットに付属のものを用いて日本語文の形態素・構文解析を行うことができる．MSLRパーザはC言語で実装され，動作するOSはunixのみである．具体的には，以下のOSで動作することが確認されている．\begin{itemize}\itemSunOS5.6\itemDigitalUnix4.0\itemIRIX6.5\itemFreeBSD3.3\itemLinux2.2.11,LinuxPPC(PC-Mind1.0.4)\end{itemize}MSLRパーザを動作させるために必要なメモリ使用量・ディスク使用量は，使用する文法や辞書の規模に大きく依存する．例えば，ツールキットに付属の日本語解析用文法(規則数1,408)と辞書(登録単語数241,113)を用いる場合，50Mbyteのメモリと10Mbyteのディスク容量を必要とする．本ツールキットを用いた形態素・構文解析の流れを図~\ref{fig:overview}に示す．MSLRパーザの解析アルゴリズムは一般化LR法に基づいているため，まず最初にLR表作成器を用いて，文法と接続表からLR表を作成する．MSLRパーザは，作成されたLR表と辞書を参照しながら入力文の形態素・構文解析を行い，解析結果(構文木)を出力する．\begin{figure}[htbp]\begin{center}\begin{epsf}\epsfile{file=overview.eps,width=0.9\textwidth}\end{epsf}\begin{draft}\atari(127,36)\end{draft}\caption{MSLRパーザを用いた形態素・構文解析の流れ}\label{fig:overview}\end{center}\end{figure}本ツールキットの主な特徴と機能は以下の通りである．\begin{itemize}\itemMSLRパーザは，形態素解析と構文解析を同時に行う．まず最初に形態素解析を行い，その出力をもとに構文解析を行う逐次的な方法では，形態素解析の段階では文法などの構文的な制約を考慮しない場合が多く，その後の構文解析の段階で不適当と判断されるような無駄な解析結果も出力される．これに対し，MSLRパーザは形態的な情報(辞書，接続表)と構文的な情報(文法)を同時に用いて解析を行うため，このような無駄な解析結果を生成することはない．\itemLR表作成器は，接続表に記述された品詞間の接続制約を組み込んだLR表を作成する．すなわち，LR表を作成する段階で品詞間の接続制約を考慮し，接続制約に違反する構文木を受理しないLR表を作る．さらに，品詞間の接続制約を組み込んだ場合，接続制約を組み込まない場合と比べてLR表の状態数・動作数を減らすことができ，メモリ使用量も小さくすることができるという利点がある．\item品詞間の接続制約は，接続表という形式で記述する代わりに，文法に組み込むことも可能である．しかしながら，接続制約を文法に組み込んだ場合，規則数が組み合わせ的に増大する．このため，文法作成者の負担が大きくなり，また作成されるLR表の大きさも大きくなるために望ましくない．このような理由から，本ツールキットでは，接続表と文法を独立に記述する枠組を採用している．\item平文を入力とした解析の他に，係り受けに関する部分的な制約を加えた文を入力とした解析を行うことができる．例えば，「太郎が渋谷で買った本を借りた」という文を解析する際に，次のような括弧付けによる制約を付けた文が入力されたときには，括弧付けと矛盾した解析結果は出力しない．\begin{displaymath}\tt[太郎が渋谷で買った]本を借りた\end{displaymath}すなわち，「太郎が」が「借りた」に係る以下のような解析結果は，Aの括弧付けが入力の括弧付けと矛盾(交差)しているために出力しない．\begin{displaymath}\tt[[太郎が][_A\;[[渋谷で][買った]][[本を][借りた]]]\;{}_A]\end{displaymath}この機能は，例えば前編集により係り受けに関する部分的な制約をあらかじめ文に付加してから解析を行い，構文的曖昧性を抑制する場合などに利用できる．\item確率一般化LRモデル~\cite{inui:98:a,sornlertlamvanich:99:a}(ProbabilisticGeneralizedLRModel，以下PGLRモデル)を取り扱うことができる．PGLRモデルとは，一般化LR法の枠組において構文木の生成確率を与える確率モデルである．PGLRモデルに基づく構文木の生成確率は，統計的な意味での正しさの尺度を構文木に与えることができるので，構文的な曖昧性の解消に利用することができる．\end{itemize}以下では，ここに挙げた本ツールキットの特徴と機能について詳しく説明する．\ref{sec:tablegenerator}節では品詞間の接続制約を組み込むLR表作成器について述べ，\ref{sec:parser}節ではMSLRパーザの概略について述べる．最後に\ref{sec:conclusion}節で本論文のまとめとMSLRパーザ・ツールキットの今後の開発方針について述べる．