




\documentstyle[epsf,jnlpbbl]{jnlp_j}

\setcounter{page}{51}
\setcounter{巻数}{7}
\setcounter{号数}{1}
\setcounter{年}{2000}
\setcounter{月}{1}
\受付{1999}{8}{19}
\再受付{1999}{8}{19}
\採録{1999}{10}{18}

\setcounter{secnumdepth}{2}

\title{意味ソートmsort\\--- 意味的並べかえ手法による辞書の構築例と\\タグつきコーパスの作成例と情報提示システム例 ---}
\author{村田 真樹\affiref{CRL} \and 神崎 享子\affiref{CRL} \and 内元 清貴\affiref{CRL} \and 馬 青\affiref{CRL} \and 井佐原 均\affiref{CRL}}

\headauthor{村田 真樹・神崎 享子・内元 清貴・馬 青・井佐原 均}
\headtitle{意味ソートmsort}

\affilabel{CRL}{郵政省 通信総合研究所}
{Communications Research Laboratory, Ministry of Posts and Telecommunications}

\jabstract{
本稿では単語の羅列を意味でソートすると
いろいろなときに便利であるということについて記述する．
また，この単語を意味でソートするという考え方を示すと同時に，
この考え方と辞書，階層シソーラスとの関係，
さらには多観点シソーラスについても論じる．
そこでは単語を複数の属性で表現するという考え方も示し，
今後の言語処理のためにその考え方に基づく辞書が必要であることに
ついても述べている．
また，単語を意味でソートすると便利になるであろう
主要な三つの例についても述べる．
}

\jkeywords{意味ソート，意味的並べかえ手法, 辞書の構築, コーパスの作成，情報提示}

\etitle{Meaning Sort MSORT\\--- Three Examples: Dictionary Construction,\\ Tagged Corpus Construction,\\ and  Information Presentation System ---}
\eauthor{Masaki Murata\affiref{CRL} \and Kyoko Kanzaki\affiref{CRL} \and Kiyotaka Uchimoto\affiref{CRL} \and Qing Ma\affiref{CRL} \and Hitoshi Isahara\affiref{CRL}} 

\eabstract{
It is often useful to arrange words in their meanings' order 
that is obtained by using a thesaurus. 
In this paper, we introduce a method of 
arranging words semantically, 
and show the relationship between this method and 
some types of dictionaries and thesauruses. 
We also examine an ideal dictionary that could be 
used for future natural language processing. 
Finally, we describe three main examples 
of this method. 
}

\ekeywords{Meaning Sort, Semantically Arranging Method, Dictionary Construction, 
Construction of Corpus, Information Presentation}

\begin{document}
\maketitle


\section{はじめに}

本稿では単語の羅列を意味でソートすると
いろいろなときに効率的でありかつ便利であるということについて記述する\footnote{
筆者は過去に間接照応の際に必要となる
名詞意味関係辞書の構築にこの意味ソートという考え方を利用すれば
効率良く作成できるであろうことを述べている\cite{murata_indian_nlp}．}．
本稿ではこの単語を意味でソートするという考え方を示すと同時に，
この考え方と辞書，階層シソーラスとの関係，
さらには多観点シソーラスについても論じる．
そこでは単語を複数の属性で表現するという考え方も示し，
今後の言語処理のためにその考え方に基づく辞書が必要であることに
ついても述べている．
また，単語を意味でソートすると便利になるであろう
主要な三つの例についても述べる．

\section{意味ソート}
\label{sec:msort}

単語を意味で並べかえるという考え方を
本稿では{\bf 意味ソート} Msort (\underline{m}eaning \underline{sort})と
呼ぶことにする．
この意味ソートは，単語の羅列を表示する際には
50音順(もしくはEUC漢字コード順)で表示するのではなく，
単語の意味の順番でソートして表示しようという考え方である．
意味の順番の求め方は後節で述べる．

例えば，研究の途中段階で以下のようなデータが得られたとしよう
\footnote{
このデータはEDR共起辞書のものを利用している\cite{edr}．}．
{\small
\begin{verbatim}
　　　　行事　　寺 公式 母校 就任 皇室 学園 日本 ソ連 全国 農村 県 学校 祭り 家元 恒例 
　　　　　　　　官民 祝い 王室
\end{verbatim}
}
これは，行事という単語の前に「Aの」という形で
連接可能な名詞のリストであるが，
このような情報が得られたときにその研究者は
このデータをどのような形式にすると
考察しやすいであろうか．

まず，50音順で並べかえる．そうすると以下のようになる．
{\small
\begin{verbatim}
　　　　行事　　家元 祝い 王室 学園 学校 官民 県 公式 皇室 恒例 就任 全国 ソ連 寺 日本 
　　　　　　　　農村 母校  祭り 
\end{verbatim}
}
これではよくわからない．

次に頻度順で並べてみる．
{\small
\begin{verbatim}
　　　　行事　　恒例 学校 公式 日本 県 全国 寺 農村 王室 ソ連 祭り 学園 就任 祝い 母校 
　　　　　　　　皇室 官民 家元
\end{verbatim}
}
それもよくわからない．

これを単語の意味の順番(ここでは，
人間，組織，活動の順)でソートすると，以下のようになる．
{\small
\begin{verbatim}
　　　　行事　(人間) 皇室 王室 官民 家元 
　　　　　　　(組織) 全国 農村 県 日本 ソ連 寺 学校 学園 母校 
　　　　　　　(活動) 祝い 恒例 公式 就任 祭り
\end{verbatim}
}
これは非常にわかりやすい．
行事にはいろいろなものがあるが，
ある特別な人を中心とした行事の存在，また，
ある組織を中心とした行事の存在，
さらに行事のいくつかの形態をまとめて一挙に理解することができる．

これはもともと名詞意味関係辞書の作成に
「AのB」が利用できそうであるとすでにわかっている問題を例にあげたため，
それはうまくいくでしょうといった感があるかもしれないが，
後の節ではその他の問題でもこの意味ソートを用いると
うまくいく例をいくつか示している．
われわれは，各研究の各段階でこの意味ソートというものを
用いれば，ほとんどの問題がわかりやすくなり効率良く
研究を進められるのではないかと考えている．

\section{意味ソートの仕方}

単語を意味でソートするためには，
単語に対して意味的な順序づけを行なう必要がある．
このためには分類語彙表\cite{bgh}が役に立つ．
分類語彙表とはボトムアップ的に単語を意味に基づいて
整理した表であり，
各単語に対して分類番号という数字が付与されている．
電子化された分類語彙表データでは
各単語は10桁の分類番号を与えられている．
この10桁の分類番号は7レベルの階層構造を示している．
上位5レベルは分類番号の最初の5桁で表現され
6レベル目は次の2桁，
最下層のレベルは最後の3桁で表現されている．

もっとも簡単な意味ソートの仕方は，
単語に分類語彙表の分類番号を付与して
その分類番号によってソートすることである
\footnote{
最近は便利な機能を持ったパソコンのソフトが多く出ており，
Exel などに単語と分類語彙表の分類番号を入力しておいて
ソートすると簡単に意味ソートを行なうことができるであろう．}．

しかし，単にソートしただけではわかりにくい．
数字ならば，順序関係がはっきりしているものなので
ソートするだけで十分であるが，
単語は順序関係がそうはっきりしたものではないので，
ソートしただけではわかりにくい．
ところどころに，物差しの目盛のようなものを
入れた方がわかりやすい．

\begin{table}[t]
    \caption{分類語彙表の分類番号の変更}
    \label{tab:bunrui_code_change}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l|l|l|}\hline
     意味素性          & 分類語彙表の        & 変換後の\\
                       &   分類番号          & 分類番号\\\hline
     ANI(動物)         &  [1-3]56                & 511\\
     HUM(人間)         &  12[0-4]            & 52[0-4]\\
     ORG(組織・機関)   &  [1-3]2[5-8]        & 53[5-8]\\
     PRO(生産物・道具) &  [1-3]4[0-9]            & 61[0-9]\\
     PAR(動物の部分)   &  [1-3]57                & 621\\
     PLA(植物)         &  [1-3]55                & 631\\
     NAT(自然物)       &  [1-3]52                & 641\\
     LOC(空間・方角)   &  [1-3]17                & 657\\
     QUA(数量)         &  [1-3]19                & 711\\
     TIM(時間)         &  [1-3]16                & 811\\
     PHE(現象名詞)     &  [1-3]5[01]            & 91[12]\\
     ABS(抽象関係)     &  [1-3]1[0-58]           & aa[0-58]\\
     ACT(人間活動)     &  [1-3]58,[1-3]3[0-8]        & ab[0-9]\\
     OTH(その他)       &  4                  & d\\\hline
\end{tabular}
\end{center}
\end{table}

そこで，「人間」「具体物」「抽象物」といった意味素性というものを考える
\footnote{
ここであげる意味素性では目盛として粗すぎる場合は，
分類語彙表の上位3桁目のレベル，上位4桁目のレベル，
上位5桁目のレベルなどを目盛として用いてみるのもよい．}．
ソートした単語の羅列のところどころに意味素性のようなものを
いれておくと，それを基準にソートした単語の羅列を
見ることができ便利である．
意味素性としては，IPAL動詞辞書\cite{IPAL}の名詞の意味素性
と分類語彙表の分類体系を組み合わせることによって新たに作成した
ものを用いる．
このとき，分類語彙表の分類番号を名詞の意味素性に合わせて修正した．
表\ref{tab:bunrui_code_change}に作成した意味素性と
分類語彙表での分類番号の変換表を記載しておく
\footnote{
この表は現段階のものであって
今後も変更していく可能性がある．}
\footnote{
表では，体，用，相の分類を示す一桁の1〜3の区別は
なくしているが，これは
文法的な分類の体，用，相の分類を行なわず
意味的なソートをくしざし検索風に行なっていることに
なっている．
もちろん，用途によっては体，用，相の分類を行なっておく
必要があるだろう．その場合はそれに見合うように
分類番号の変更を行なえばよい．
例えば体，用，相の上位一桁目をa,b,cとすると
いったことを行なえばよい．}．
表の数字は分類番号の最初の何桁かを変換するためものであり，
例えば1行目の``[1-3]56''や``511''は，分類番号の頭の3桁が
``156''か``256''か``356''ならば511に変換するということを意味している．
([1-3]は1,2,3を意味している．)

表\ref{tab:bunrui_code_change}に示した
意味素性に目盛の役割をしてもらうわけだが，この目盛を意味ソートの際に
入れる簡単な方法は，
意味素性を単語のソートの際に混ぜてソートすることである．
このようにすると，意味素性も適切な位置にソートされることとなる．

以下に意味ソートが実現される過程を例示する．
ここでは，\ref{sec:msort}節で示した名詞「行事」の前に
「名詞Aの」の形でくっつく以下の名詞の集合を意味ソートすることを考えること
としよう．

{\small
\begin{verbatim}
　　　　行事　　寺 公式 母校 就任 皇室 学園 日本 ソ連 全国 農村 県 学校 祭り 家元 恒例 
　　　　　　　　官民 祝い 王室
\end{verbatim}
}

\begin{enumerate}
\item 
  まず初めに各語に分類語彙表の分類番号を付与する．
  「行事」と共起する名詞集合でこれを行なうと表\ref{tab:huyo_bgh_rei}
  の結果が得られる．
  (書籍判の分類語彙表に慣れている人は注意して欲しい．
  書籍判では分類番号は5桁までしかないが，電子化判では10桁存在する
  \footnote{
        ここではKNP\cite{KNP2.0b6}に付属でインストールする分類語彙表の辞書を
    利用しているが，
    そこで用いられている分類語彙表は最新のものであってさらに桁が増えているが，
    KNPではうまく10桁に変換しているようだ．}．)
  表\ref{tab:huyo_bgh_rei}では「寺」が二つ，「公式」が四つ，
  存在しているが，
  これは多義性を意味しており，
  分類語彙表では「寺」に対し二つの意味が定義されており，
  「公式」に対し四つの意味が定義されていることを意味する．
\item 
  \label{enum:change}
  次に分類語彙表の分類番号の変換表の表\ref{tab:bunrui_code_change}に
  従って，付与した分類語彙表の番号を変更する．
  表\ref{tab:huyo_bgh_rei}のデータに対してこの番号変更を行なうと
  表\ref{tab:code_change_rei}の結果が得られる．
  例えば，表\ref{tab:huyo_bgh_rei}の一つ目の寺の最初の三桁は
  ``126''であるがこれは表\ref{tab:bunrui_code_change}の三行目
  の``[1-3]2[5-8]''にマッチし，``536''に変換される．

\begin{table}[t]
    \caption{分類語彙表の分類番号の付与例}
    \label{tab:huyo_bgh_rei}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|ll|}\hline
1263005022 & 寺\\
1263005021 & 寺\\
1308207012 & 公式\\
1311509016 & 公式\\
3101011014 & 公式\\
3360004013 & 公式\\
1263013015 & 母校\\
1331201016 & 就任\\
1210007021 & 皇室\\
1263010015 & 学園\\
1259001012 & 日本\\
1259004192 & ソ連\\
\multicolumn{2}{|l|}{右上につづく}\\\hline
\end{tabular}
\begin{tabular}[c]{|ll|}\hline
1198007013 & 全国\\
1253007012 & 全国\\
1254006033 & 農村\\
1255004017 & 県\\
1263010012 & 学校\\
1336002012 & 祭り\\
1241023012 & 家元\\
1308205021 & 恒例\\
1231002013 & 官民\\
1241101012 & 官民\\
1304308013 & 祝い\\
1336019012 & 祝い\\
1210007022 & 王室\\\hline
\end{tabular}
\end{center}
\end{table}


\begin{table}[t]
    \caption{分類語彙表の分類番号の変更例}
    \label{tab:code_change_rei}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|ll|}\hline
5363005022 & 寺\\
5363005021 & 寺\\
ab18207012 & 公式\\
ab21509016 & 公式\\
aa11011014 & 公式\\
ab70004013 & 公式\\
5363013015 & 母校\\
ab41201016 & 就任\\
5210007021 & 皇室\\
5363010015 & 学園\\
5359001012 & 日本\\
5359004192 & ソ連\\
\multicolumn{2}{|l|}{右上につづく}\\\hline
\end{tabular}
\begin{tabular}[c]{|ll|}\hline
7118007013 & 全国\\
5353007012 & 全国\\
5354006033 & 農村\\
5355004017 & 県\\
5363010012 & 学校\\
ab46002012 & 祭り\\
5241023012 & 家元\\
ab18205021 & 恒例\\
5231002013 & 官民\\
5241101012 & 官民\\
ab14308013 & 祝い\\
ab46019012 & 祝い\\
5210007022 & 王室\\\hline
\end{tabular}
\end{center}
\end{table}

\begin{table}[p]
  \caption{目盛用の分類番号つきの意味素性の追加}
    \label{tab:sosei_add_rei}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|ll@{ }|}\hline
5100000000 & (動物)\\
5200000000 & (人間)\\
5300000000 & (組織・機関)\\
6100000000 & (生産物・道具)\\
6200000000 & (動物の部分)\\
6300000000 & (植物)\\
6400000000 & (自然物)\\
6500000000 & (空間・方角)\\
7100000000 & (数量)\\
8100000000 & (時間)\\
9100000000 & (現象名詞)\\
aa00000000 & (抽象関係)\\
ab00000000 & (人間活動)\\
d000000000 & (その他)\\
5363005022 & 寺\\
5363005021 & 寺\\
ab18207012 & 公式\\
ab21509016 & 公式\\
aa11011014 & 公式\\
\multicolumn{2}{|l|}{右上につづく}\\\hline
\end{tabular}
\begin{tabular}[c]{|ll|}\hline
ab70004013 & 公式\\
5363013015 & 母校\\
ab41201016 & 就任\\
5210007021 & 皇室\\
5363010015 & 学園\\
5359001012 & 日本\\
5359004192 & ソ連\\
7118007013 & 全国\\
5353007012 & 全国\\
5354006033 & 農村\\
5355004017 & 県\\
5363010012 & 学校\\
ab46002012 & 祭り\\
5241023012 & 家元\\
ab18205021 & 恒例\\
5231002013 & 官民\\
5241101012 & 官民\\
ab14308013 & 祝い\\
ab46019012 & 祝い\\
5210007022 & 王室\\\hline
\end{tabular}
\end{center}
\end{table}

\begin{table}[p]
  \caption{分類番号の順番に並べかえ例}
  \label{tab:sort_rei}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|ll@{ }|}\hline
5100000000 & (動物)\\
5200000000 & (人間)\\
5210007021 & 皇室\\
5210007022 & 王室\\
5231002013 & 官民\\
5241023012 & 家元\\
5241101012 & 官民\\
5300000000 & (組織)\\
5353007012 & 全国\\
5354006033 & 農村\\
5355004017 & 県\\
5359001012 & 日本\\
5359004192 & ソ連\\
5363005021 & 寺\\
5363005022 & 寺\\
5363010012 & 学校\\
5363010015 & 学園\\
5363013015 & 母校\\
6100000000 & (生産物)\\
\multicolumn{2}{|l|}{右上につづく}\\\hline
\end{tabular}
\begin{tabular}[c]{|ll@{ }|}\hline
6200000000 & (動物の部分)\\
6300000000 & (植物)\\
6400000000 & (自然物)\\
6500000000 & (空間・方角)\\
7100000000 & (数量)\\
7118007013 & 全国\\
8100000000 & (時間)\\
9100000000 & (現象名詞)\\
aa00000000 & (抽象関係)\\
aa11011014 & 公式\\
ab00000000 & (人間活動)\\
ab14308013 & 祝い\\
ab18205021 & 恒例\\
ab18207012 & 公式\\
ab21509016 & 公式\\
ab41201016 & 就任\\
ab46002012 & 祭り\\
ab46019012 & 祝い\\
ab70004013 & 公式\\
d000000000 & (その他)\\\hline
\end{tabular}
\end{center}
\end{table}

\item 
  次に目盛用の分類番号つきの意味素性を \ref{enum:change} で得られた
  集合に追加する．
  表\ref{tab:code_change_rei}のデータに対してこれを行なうと
  表\ref{tab:sosei_add_rei}の結果が得られる．

\item 
  以上までで得られた集合を分類番号によってソートする．
  表\ref{tab:sosei_add_rei}のデータに対してこれを行なうと
  表\ref{tab:sort_rei}の結果が得られる．

\item 
  後は見やすいように整形すればよい．
  例えば，表\ref{tab:sort_rei}で分類番号を消し，
  意味素性ごとに一行にまとめ，語がない行を消去し，
  一行内にだぶって存在する語を消去すると表\ref{tab:last_rei}のようになる．
\end{enumerate}

前にも述べたとおり，表\ref{tab:last_rei}の形になれば考察などに
便利な状態になる．


\clearpage

\begin{table}[t]
  \caption{ソート後の名詞集合の整形}
  \label{tab:last_rei}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|ll|}\hline
(人間) & 皇室 王室 官民 家元 \\
(組織) & 全国 農村 県 日本 ソ連 寺 学校 学園 母校 \\
(数量) & 全国 \\
(関係) & 公式 \\
(活動) & 祝い 恒例 公式 就任 祭り \\\hline
\end{tabular}
\end{center}
\end{table}

\section{意味ソートの諸相}

\subsection{分類語彙表以外の階層シソーラスを用いた意味ソート}

今までの議論では分類語彙表を用いた意味ソートの仕方を述べてきた．
意味ソートを行なうには意味の順序関係が必要であるが，
分類語彙表はちょうど各単語に分類番号がついていたので
ソートには最適であった．
ここでは，EDRの辞書\cite{edr}のように，
分類語彙表についていたような分類番号を持たない
階層シソーラスを用いて，意味ソートはできないかを考察する．

前述したとおり，そもそも分類語彙表の10桁の分類番号は，
7レベルの階層構造を示している．
EDRで意味ソートを行なう場合にも，
分類語彙表と同じように上位桁から
階層構造を作るような番号を各単語につけてやればよい．

しかし，番号をつけるのは面倒である．
階層シソーラス上の各ノードにおける概念の定義文を
そのレベルの番号のように扱ってやるとよい．
こうすれば番号をあらためてふってやる必要がない．
例えば，トップのノードから「母校」という単語に至る各ノード
の概念の定義文を並べてみると以下のようになる．\\

{\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l|}\hline
概念\\
人間または人間と似た振る舞いをする主体\\
自立活動体\\
組織\\
組織のいろいろ\\
教育組織\\
学校という,教育を行う組織\\
数量や指示関係で捉えた学校\\
自分が学んでいる,あるいはかつて学んでいた学校\\\hline
\end{tabular}\\
}

\begin{table*}[t]
  \caption{EDRを用いた意味ソートの例}
  \label{tab:EDR_last_rei}
  \begin{center}
\footnotesize\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l@{ }c@{ }l@{ }c@{ }ll|}\hline
(概念 & : & ものごと & : & もの) & 寺 学校 県 家元 官民 祝い 公式\\
(概念 & : & ものごと & : & 事柄) & 祭り 恒例 祝い\\
(概念 & : & 位置 & : & 場所) & 寺 学校 全国 県 農村 ソ連 日本\\
(概念 & : & 事象 & : & 現象) & 祭り\\
(概念 & : & 事象 & : & 行為) & 祝い 就任\\
(概念 & : & 事象 & : & 状態) & 官民 恒例 家元 寺 県 公式\\
(概念 & : & 人間または人間と似た振る舞いをする主体 & : & 自立活動体) & 学校 学園 母校 寺 県 ソ連 日本 王室 皇室 家元 官民\\
(概念 & : & 人間または人間と似た振る舞いをする主体 & : & 人間) & 寺 県 家元 官民\\\hline
\end{tabular}
\end{center}
\end{table*}

\noindent
これを連結した
``概念:人間または人間と似た振る舞いをする主体:自立活動体:組織:組織のいろいろ:教育組織:学校という,教育を行う組織:数量や指示関係で捉えた学校:自分が学んでいる,あるいはかつて学んでいた学校''を分類番号と見立てて
意味ソートを行なえばよい．

先にあげた「の行事」に前接する名詞集合で
EDRを用いた意味ソートを行なうと
表\ref{tab:EDR_last_rei}のようになる．
表\ref{tab:EDR_last_rei}では各行の出力のための目盛として
上位三つの概念の定義文を用いている．

EDRでは他の辞書に比べ多義性を設定する場合が多く，
またシソーラスの階層構造においても
複数パスを用いているので，
同じ単語が複数の箇所に出ていて複雑なものになる．
しかし，多観点から考察したいときには，
ちょうどいろいろなとらえ方の単語を認識しやすいようになっており，
EDRを用いると有効だろう．

以上までの議論から
階層シソーラスならばどのようなものでも意味ソートが行なえることが
わかるであろう．
ただし，階層構造での枝別れ部分においてどのノードから出力するのか
は曖昧になっている．
例えば，表\ref{tab:EDR_last_rei}では概念の定義文の文字列の
EUCコード順となっている．
順序を人手であらかじめ指定しておければそれにこしたことはないが，
無理ならば，定義文自体を
他の辞書(例:分類語彙表)により意味ソートすることも考えられる．

\subsection{単語を複数の属性で表現するといった形での辞書記述における
意味ソート}
\label{sec:hukusuu_zokusei}

単語に複数の属性を付与するといった形で
単語の意味記述を行なうという考え方がある．
例えば，計算機用日本語生成辞書IPALの研究\cite{ipalg98}では，
「器」を意味するさまざまな単語に対して
表\ref{tab:ipal_hukusuu_zokusei_rei}のような
属性を与えている．表中の''---''は属性の値は指定されていない
ことを意味する．

\begin{table}[t]
  \caption{単語に複数の属性を付与した辞書の例}
  \label{tab:ipal_hukusuu_zokusei_rei}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l|ccccc|}\hline
単語    & \multicolumn{5}{c|}{属性}\\\cline{2-6}
        & \multicolumn{1}{c}{種類}& \multicolumn{1}{c}{対象物} & \multicolumn{1}{c}{形状} & \multicolumn{1}{c}{サイズ} & \multicolumn{1}{c|}{材質}\\\hline
うつわ  & --- & --- & --- & --- & ---\\
碗      & 和  & --- & 深  & --- & 陶磁\\
椀      & 和  & --- & 深  & --- & 木  \\
湯のみ  & 和  & 緑茶/白湯 & 深  & --- & 陶磁 \\
皿      & --- & --- & 浅  & --- & ---\\\hline
\end{tabular}
\end{center}
\end{table}

\begin{table}[t]
  \caption{左の属性からソートした結果}
  \label{tab:ipal_hukusuu_zokusei_rei_hidari}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l|ccccc|}\hline
単語    & \multicolumn{5}{c|}{属性}\\\cline{2-6}
        & \multicolumn{1}{c}{種類}& \multicolumn{1}{c}{対象物} & \multicolumn{1}{c}{形状} & \multicolumn{1}{c}{サイズ} & \multicolumn{1}{c|}{材質}\\\hline
うつわ  & --- & --- & --- & --- & ---\\
皿      & --- & --- & 浅  & --- & ---\\
碗      & 和  & --- & 深  & --- & 陶磁\\
椀      & 和  & --- & 深  & --- & 木  \\
湯のみ  & 和  & 緑茶/白湯 & 深  & --- & 陶磁 \\\hline
\end{tabular}
\end{center}
\end{table}

このような形の辞書の場合でも意味ソートは可能である．
各属性を階層シソーラスでの各レベルであると認識すればよい．
この場合，左の属性から順に
階層シソーラスの上位から下位のレベルに対応すると考えると，
``種類',``対象物'',``形状'',``サイズ'',``材質''と
レベルがあると考えられるので，
意味ソートに用いる便宜的な分類番号はEDRの場合を
参考にすると，
``種類:対象物:形状:サイズ:材質''といったものとなる．
例えば，「椀」は ``和:---:深:---:木''という分類番号を
持っていることになる．
(厳密には，属性の値も意味ソートするために，
この「和」「深」「木」も分類語彙表の分類番号に変更しておく．)
このような分類番号をもっているとしてソートすれば
意味ソートのできあがりである．
この意味ソートを行なった結果を
表\ref{tab:ipal_hukusuu_zokusei_rei_hidari}に示す．
これは，単純に左の属性から順にソートしていった結果と
等価である．

\begin{table}[t]
  \caption{右の属性からソートした結果}
  \label{tab:ipal_hukusuu_zokusei_rei_migi}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l|ccccc|}\hline
単語    & \multicolumn{5}{c|}{属性}\\\cline{2-6}
        & \multicolumn{1}{c}{種類}& \multicolumn{1}{c}{対象物} & \multicolumn{1}{c}{形状} & \multicolumn{1}{c}{サイズ} & \multicolumn{1}{c|}{材質}\\\hline
うつわ  & --- & --- & --- & --- & ---\\
皿      & --- & --- & 浅  & --- & ---\\
碗      & 和  & --- & 深  & --- & 陶磁\\
湯のみ  & 和  & 緑茶/白湯 & 深  & --- & 陶磁 \\
椀      & 和  & --- & 深  & --- & 木  \\\hline
\end{tabular}
\end{center}
\end{table}

今は左の属性をもっとも重要な属性として扱って意味ソートを
行なったものであるが，
複数の属性の間の重要度の関係はそれほど明確ではない．
例えば，同じデータで右の属性から順にソートすると，
表\ref{tab:ipal_hukusuu_zokusei_rei_migi}のようになる．
このように複数の属性を付与する辞書では
どういった属性を重視するかでソートのされ具合いが異なることとなる．
これは，ユーザが今興味を持つ属性の順番によってソートすることができることを
意味しており，複数の属性を付与する辞書は非常に融通が効くものである
ということがいえる\footnote{ただし，この融通の良さは
自由度が高くて良さそうだが欠点にもなりうる可能性を
持っている．例えば，ユーザが自分の好きなように属性を指定することが
できるといえば聞こえはよいが，
これは裏返して考えると
ユーザが自分の好きなように属性を指定する必要があるということを
意味している．
ユーザが属性を指定するのが面倒な場合は
デフォルトの順序のようなものを考えておくとよいだろう．
例えば，決定木学習で用いられる方法\cite{c4.5j}により木を構成し
そのようになるための属性の順序をデフォルトの順序と
してもよいだろう．
また，各属性の上位下位の関係を本文でも述べたような
概念の包含関係より求め(このときは本文での基準のような
完全に包含関係になるものではなく若干例外があってもよいなど
条件をゆるめたものがよいだろう)，それを元に
デフォルトの順序を決めるのもよいだろう．
さらにはこのデフォルトの順序をユーザーの二，三のキーワード
指定によりコントロールできるとなおよいだろう．}．

\begin{figure}[t]
  \begin{center}
\fbox{
    \begin{minipage}{10cm}
      \begin{center}
      \epsfile{file=hidari.eps,height=4cm,width=6cm} 
      \end{center}
    \caption{左からのソート結果による階層シソーラス}
    \label{fig:ipal_hukusuu_zokusei_rei_hidari}
    \end{minipage}
}
  \end{center}
\end{figure}


\begin{figure}[t]
  \begin{center}
\fbox{
    \begin{minipage}{10cm}
      \begin{center}
        \epsfile{file=migi.eps,height=4cm,width=6cm} 
      \end{center}
    \caption{右からのソート結果による階層シソーラス}
    \label{fig:ipal_hukusuu_zokusei_rei_migi}
    \end{minipage}
}
  \end{center}
\end{figure}

これを階層シソーラスも交えて考察するとさらに面白いことに気づく．
先にも述べたように，
各属性は階層シソーラスの各レベルと見立てることができるので，
階層シソーラスでのこの属性のレベルの順序を変更することで
何種類もの階層シソーラスを構築できることとなる．
例えば，属性を左から用いて意味ソートした
表\ref{tab:ipal_hukusuu_zokusei_rei_hidari}からは
図\ref{fig:ipal_hukusuu_zokusei_rei_hidari}のような階層シソーラスが構築できる．
また，属性を右から用いて意味ソートした
表\ref{tab:ipal_hukusuu_zokusei_rei_migi}からは
図\ref{fig:ipal_hukusuu_zokusei_rei_migi}のような階層シソーラスが構築できる．
図\ref{fig:ipal_hukusuu_zokusei_rei_hidari}のシソーラスでは
「碗」と「椀」の意味的な近さをよく理解できる．
図\ref{fig:ipal_hukusuu_zokusei_rei_migi}のシソーラスでは
「碗」と「湯のみ」の同じ陶磁器としての意味的な近さをよく理解できる．
この複数のシソーラスの構築は，
種々の観点による階層シソーラスの研究にもつながるものである．
観点によるシソーラスの必要性は
文献\cite{miyazaki94A}においても述べてある．
それによると，「鳥」「飛行機」を上位で
自然物と人工物と大別すると，
「鳥」「飛行機」の意味的近さがわからなくなるとある．
確かにそのとおりである．
今後の言語処理を考えると
観点による階層シソーラスの自由変形が可能な，
複数属性を付与するといった辞書は非常に有用であり，
生成用のみならず
一般単語辞書，実用レベル的なもので構築する必要があると思われる．
また，もともと単語の意味辞書を階層シソーラスの形にする必要があるのか
という疑問も生じる．
表\ref{tab:ipal_hukusuu_zokusei_rei}を見れば，
「うつわ」の属性がすべて属性値を指定しない``---''になっていることから
他の語の上位語であることが属性の集合の情報を見るだけでわかる．
この属性の包含関係から上位・下位の関係が類推できるとすれば，
階層シソーラスというものはわざわざ構築しておく必要はなく
単語を属性の集合によって表現するというので十分なような気もしてくる．
ただし，ペンギンは飛べないが普通の鳥は飛べるといった例外事象も
扱えるような属性の定義などをしておく必要はある．
また，複数属性で単語を表現する辞書では，
一致する属性の割合などで単語間の類似度を定義する
ということも可能となるであろう．
ただし，このとき属性に重みを与えるなどのことが必要になるかもしれない．
単語の意味記述としては，
さらに表現能力の高いものとして
高階の述語論理で表現するもの，自然言語の文で定義するものなどが
考えられるが，
とりあえず現在の言語処理技術で扱えて
それでいて多観点を扱えるという意味で
単語を複数属性の集合で意味記述するという辞書は
妥当なところではないだろうか
\footnote{複数の属性を持つ単語辞書の作成には，
国語辞典などの定義文が役に立つのではないかと考えている．
例えば，定義文の文末から意味ソートを多段的にかけた結果を
人手でチェックすることを行なえば，
比較的低コストでこの辞書を作成できるだろう．}．
ちょっと脇道にそれて
意味ソートと直接関係のない
単語意味辞書のあるべき姿について議論をしてしまったが，
単語を複数属性の集合で意味記述するという辞書ができれば，
先にも述べたようにその辞書には
ユーザが自分の好きな順番で属性を選んで意味ソートできる
という利点があるので，
意味ソートの立場としても非常に好都合である．

\section{意味ソートの三つの利用例}
\label{sec:riyourei}

\subsection{辞書の作成}

名詞と名詞の間の意味関係を示す
名詞意味関係辞書の作成に意味ソートが利用できる例は
すでに文献\cite{murata_indian_nlp}において述べている．
名詞と動詞，名詞と形容詞の間の関係辞書の作成も
格フレームや多義性などを考慮に入れながら同様にできることだろう．
ここでは，
例として表\ref{tab:taberu_case_frame}に
動詞「食べる」の格フレームの作成例を示しておく．

\begin{table}[t]
  \caption{「食べる」の格フレームの作成例}
  \label{tab:taberu_case_frame}
  \begin{center}
\small\renewcommand{\arraystretch}{}
(a)ガ格の意味ソート結果

\begin{tabular}[c]{|lp{10cm}|}\hline
(動物) &  牛 子牛 魚\\
(人間) &  わたしたち みんな 自分 乳幼児 親 妹 お客 日本人 看護婦 作家\\\hline
\end{tabular}

\vspace{0.3cm}

(b)ヲ格の意味ソート結果

\begin{tabular}[c]{|lp{10cm}|}\hline
(動物) &  動物 貝 プランクトン\\
(生産物) & 獲物 製品 材料 ペンキ 食べ物 えさ 和食 日本食 洋食 中華料理 おむすび 粥 すし ラーメン マカロニ サンドイッチ ピザ ステーキ バーベキュー てんぷら 空揚げ 穀物 米 白米 日本米 押し麦 キムチ カルビ 砂糖 ジャム 菓子 ケーキ ビスケット クッキー アイスクリーム \\
(体部) &  遺骸 人肉 肝臓\\
(植物) &  遺伝子 植物 牧草 ピーマン チコリ 桑 バナナ 松茸 昆布\\
(現象) &  珍味 雪 \\
(関係) &  中身\\
(活動) &  朝食 昼飯 夕食 夕御飯 おやつ 塩焼き \\\hline
\end{tabular}

\vspace{0.3cm}

(c)デ格の意味ソート結果

\begin{tabular}[c]{|lp{10cm}|}\hline
(人間) &  自分 \\
(組織) &  事務所 レストラン ホテル \\
(生産物) & しょうゆ シャトー 楽屋 便所 荷台 食卓 \\
(空間) &  現地 全域 車内 \\
(数量) &  ふたり 割合 複数 \\
(活動) &  研究 会議 \\\hline
\end{tabular}

\end{center}
\end{table}

表\ref{tab:taberu_case_frame}は受身文など考慮して
「食べる」の各格要素にくる名詞をそれぞれ
意味ソートしたものである．
表\ref{tab:taberu_case_frame}の形になれば
人手で格フレームを作成するのも容易であろうと思われる
\footnote{
最近では，格フレームは多項関係でとらえる
必要があることがいわれてきている．
例えば，魚はプランクトンを食べるが
牛は食べず，また
牛は牧草を食べるが魚は食べない．
表\ref{tab:taberu_case_frame}の形に各格要素ごと
まとめてしまうと魚とプランクトンの関係，
牛と牧草の関係が見えなくなり，よろしくない．}．
ガ格は動作主になりうる動物や人間が入ることがわかるし，
ヲ格には様々な食べ物になりうる名詞が入ることがわかる．
また，任意格のデ格を見ると，
「自分で」や「事務書で」や「しょうゆで」などデ格の意味関係が
多種多様なものであることまでわかる．
たとえば，``(人間)''の語は主体，``(組織)''``(空間)''の語は場所，
``(具体物)''の語は道具の場合と場所の場合があることまでわかる．

ここであげた例は動詞の格フレームであるが，
このようなことは形容詞に対しても
さらには名詞述語文に対しても
その他の単語間に対しても容易に行なえることを
考えれば，意味ソートの汎用性，有用性を理解できるであろう．
これは，辞書の作成に限った話しではなく，
言語現象の調査におけるデータの整理，
有用な情報の抽出にも役に立つ．
また，近年いろいろな知識獲得の研究が行なわれているが，
知識獲得で得られたデータの整理にも，
同じようにこの意味ソートが役に立つ．

\subsection{タグつきコーパスの作成(意味的類似度との関連)}

近年，さまざまなコーパスが
作成されてきており\cite{edr_corpus_2.1}\cite{kurohashi_nlp97}\cite{rwc}，
コーパスベースの研究も盛んになっている\cite{mori_DT}\cite{murata:nlken98}．
ここでは，コーパスの作成にも意味ソートが役に立つことに
ついて述べる．

例えば，名詞句「AのB」の意味解析を用例ベースで
解析したいとする．
この場合，名詞句「AのB」の意味解析用のタグつきコーパス
が必要となる．
具体的には，名詞句「AのB」の各用例に対して
「所有」「属性関係」といった意味関係をふっていくこととなる．
このとき名詞句「AのB」を意味ソートしておけば
比較的よく似た用例が近くに集まることになり，
意味関係をふる手間が軽減される．

\begin{table}[t]
  \caption{名詞句「AのB」の意味解析用のタグつきコーパスの作成例}
  \label{tab:make_corpus}
  \begin{center}
\small\renewcommand{\arraystretch}{}
\begin{tabular}[c]{|l|l|l|}\hline
名詞A       &   名詞B   &  意味関係       \\\hline
パナマ      &   事件    &       場所      \\
中学校      &   事件    &       場所      \\
軍          &   事件    &       場所      \\
アルバム    &   事件    &       間接限定  \\
タンカー    &   事件    &       間接限定  \\
最悪        &   事件    &       形的特徴  \\
最大        &   事件    &       形的特徴  \\
周辺        &   物件    &       場所      \\
両国        &   事項    &       主体対象  \\
文献        &   事項    &       分野限定  \\
総会        &   事項    &       主体対象  \\
上院        &   条項    &       分野限定,主体対象\\
新法        &   条項    &       分野限定,全体部分\\
条約        &   条項    &       分野限定,全体部分\\
協定        &   条項    &       分野限定  \\\hline
\end{tabular}
\end{center}
\end{table}

表\ref{tab:make_corpus}は文献\cite{yata_MT}において作成された
タグつきコーパスの一部分である．
ここでは名詞句「AのB」のうち名詞Bの方が重要であろうとして
名詞Bを先に意味ソートとしたのち名詞Aで意味ソートを行なっている．
表中の意味関係の用語は少々難しいものとなっているが
意味ソートの結果近くにあらわれている用例同士は比較的
同じ意味関係がふられていることがわかるだろう．
このように意味的に近い用例が近くに集まると
タグの付与の手間が軽減されることが理解できるであろう．

ところで，用例ベースによる手法では
入力のデータと最も類似した用例にふられたタグを解析結果とする．
意味ソートという操作は単語を意味の順番にならべかえるわけだが，
そのことによって類似した用例を集める働きをする．
用例ベースと意味ソートは単語の類似性を用いるという
共通点を持っている．この類似性を用いるという性質が
用例ベースによる手法と意味ソートの共通した利点となっている．

ここでは名詞句「AのB」を例にあげて
コーパス作成に意味ソートを用いると効率的であることを述べたが，
これは特に名詞句「AのB」に限ったことではない．
単語が関係している問題ならば，
その単語で意味ソートができるので，
文字列レベルで扱わないと仕方がない問題以外は
ほとんど本稿の意味ソートが利用できる．
また，もともと文字列レベルで扱わないと仕方がない問題では
文字列でソートすればよいのである．

しかし，ここであげた例では名詞Bで意味ソートした後，
名詞Aで意味ソートをするといった不連続性がある．
名詞Aと名詞Bの両方を考慮することで，
意味ソートで近くにくる用例よりも
意味的に近い用例を持ってこれる場合がある．
しかし，このような方法では一次元的に配列するのが困難で
人手でチェックするのが難しくなってくる．

\subsection{情報検索での利用}

近年，インターネットの発展とともに情報検索の研究は
非常に盛んになっている．
この情報検索がらみの研究においても
意味ソートの有効な利用方法が考えられる．

例えば，津田の研究\cite{tsuda94A}では
文書データベースの特徴を多数のキーワードによって
ユーザに提示するということを行なっている．
例えば，提示したい文書データベースAのキーワード群が
以下のとおりであったとする．

\begin{quote}
\fbox{検索 単語 文書 作成 候補 質問 数 キーワード 情報}
\end{quote}

この単語の羅列をランダムな順番でユーザに提示するのでは不親切である．
ここで意味ソートを行なってやると，以下のようになる．

{\small\renewcommand{\arraystretch}{}
\begin{tabular}[h]{ll}
(数量)      & 数 \\
(抽象関係)  & 候補 \\
(人間活動)  & 検索 \\
            & 文書 キーワード 単語 情報 質問 \\
            & 作成 \\
\end{tabular}
}

ここでは，分類語彙表の上位三桁が一致するものを同じ
行に表示している．ランダムに表示するよりは
このように意味ソートを行なって表示した方がよく似た
意味の単語が集まるので，
ユーザにとってやさしいのではないかと思われる．

また，情報検索システムが検索式を作る際に
ユーザにキーワードを提示して適切なものを
選んでもらう場合もある\cite{tsuda94A}．
このような場合においても，
キーワードを他に適切にならべかえる方法があれば
それを用いればよいが，
そういったものがない場合は上記と同様にとりあえず
意味ソートを用いておけば少しはユーザに対してやさしくなる．

\section{おわりに}

本稿ではまず初めに意味ソートの仕方について述べた．
そこでは，以下の三つの意味記述の異なる辞書を用いた
それぞれの意味ソートの方法について記述した．
\begin{enumerate}
\item 
  単語に番号がふってある辞書 (分類語彙表)
\item 
  単語に番号がふっていない階層シソーラス辞書 (EDR概念辞書)
\item 
  \label{enum:owarini_hukusuu_gainen}
  単語を複数の属性の集合によって表現する辞書 (IPAL日本語生成辞書)
\end{enumerate}
また，\ref{enum:owarini_hukusuu_gainen} の
「単語を複数の属性の集合によって表現する辞書」では，
この辞書の自由度の高さや多観点シソーラスとの関係を議論し，
この辞書の有用性を詳しく述べた．

また，本稿の最後では
以下の三つの異質な応用領域を述べ，
意味ソートの有用性を議論した．
\begin{enumerate}
\item 
  辞書の構築例
\item 
  タグつきコーパスの作成例
\item 
  情報提示システム例
\end{enumerate}

われわれは意味ソートは言語処理研究だけではなく，
言語研究での調査方法としても役に立つものであると考えている．

\section*{謝辞}

\ref{sec:hukusuu_zokusei}節で述べた単語を複数の属性の集合によって表現するという考え方は
国立国語研究所の柏野和佳子研究員との議論において
御教示いただいた．
また，郵政省通信総研の内山将夫研究員には
論文内容についていくつかのコメントをいただいた．
ここに感謝する．


\bibliographystyle{jnlpbbl}
\bibliography{jpaper}

\begin{biography}
\biotitle{略歴}
\bioauthor{村田真樹}{
1993年京都大学工学部卒業．
1995年同大学院修士課程修了．
1997年同大学院博士課程修了，博士（工学）．
同年，京都大学にて日本学術振興会リサーチ・アソシエイト．
1998年郵政省通信総合研究所入所．研究官．
自然言語処理，機械翻訳の研究に従事．
言語処理学会，情報処理学会，ACL，各会員．}
\bioauthor{内元清貴}{
1994年京都大学工学部卒業．
1996年同大学院修士課程修了．
同年郵政省通信総合研究所入所，郵政技官．
自然言語処理の研究に従事．
言語処理学会，情報処理学会，ACL，各会員．}
\bioauthor{馬 青}{
1983年北京航空航天大学自動制御学部卒業．
1987年筑波大学大学院理工学研究科修士課程修了．
1990年同大学院工学研究科博士課程修了．工学博士．
1990 $\sim$ 93年株式会社小野測器勤務．
1993年郵政省通信総合研究所入所，主任研究官． 
人工神経回路網モデル，知識表現，自然言語処理の研究に従事． 
日本神経回路学会，言語処理学会，電子情報通信学会，各会員．}
\bioauthor{井佐原均}{
1978年京都大学工学部電気工学第二学科卒業．
1980年同大学院修士課程修了．博士（工学）．
同年通商産業省電子技術総合研究所入所．
1995年郵政省通信総合研究所
関西支所知的機能研究室室長．自然言語処理，機械翻訳の研究に従事．
言語処理学会，情報処理学会，人工知能学会，日本認知科学会，ACL，各会員．}

\bioreceived{受付}
\biorevised{再受付}
\bioaccepted{採録}

\end{biography}

\end{document}

        
