「用語辞書: 問題点への対処法 1/3」の続きです。
記事内で使う文字の色については「文字の色の約束(再確認)」を参照してください。$`\newcommand{\cat}[1]{\mathcal{#1}}
\newcommand{\mbf}[1]{\mathbf{#1}}
\newcommand{\mrm}[1]{\mathrm{#1}}
\newcommand{\mbb}[1]{\mathbb{#1}}
%\newcommand{\msc}[1]{\mathscr{#1}}
%\newcommand{\u}[1]{\underline{#1} }
%\newcommand{\o}[1]{\overline{#1} }
\newcommand{\In}{\text{ in } }
\newcommand{\hyp}{\text{-} }
\newcommand{\Imp}{\Rightarrow }
%\newcommand{\Iff}{\Leftrightarrow}
\newcommand{\T}[1]{ \text{#1} }
%\newcommand{\op}{\mathrm{op} }
\newcommand{\id}{\mathrm{id} }
%\newcommand{\pto}{\nrightarrow} % proarrow to
%\newcommand{\dto}{\looparrowright} % dependent to
%\newcommand{\hto}{\rightsquigarrow} % hetero to
%\newcommand{\parto}{\supset\!\to} % partial to
%\newcommand{\twoto}{\Rightarrow}
\newcommand{\C}{\mathop{;}} % Composition (diagrammatic order)
%\newcommand{\BR}[1]{ \big[\!\big[ {#1} \big]\!\big] } % BRacket
`$
内容:
- シグマ型とパイ型
- 簡約抽象辞書と意味対応
- 簡約具象辞書
- パラメトリックな語項目/辞書エントリ
- 概念・用語の整理と弁別子・パラメータ
- 無義語、単義語、多義語とは
- 多義が多義!
- 多義別名
- 辞書変換としての多義別名
- 弁別子による曖昧性解消
ハブ記事:
シグマ型とパイ型
辞書〈用語辞書〉の議論において、依存型理論のシグマ型とパイ型の集合論バージョンがあると便利です。詳しい説明は割愛します*1が、最小限の定義と記法の約束だけしておきます。
$`X\in |\mbf{Set}|`$ に対して、$`F : X \to |\mbf{Set}|`$ を($`X`$ 上の)集合族〈indexed family of sets〉とします。$`\sum_{x\in X}F(x)`$ は次のように定義します。
$`\quad \sum_{x \in X} F(x) := \bigcup_{x \in X}(\{x\} \times F(x) )`$
集合 $`\sum_{x\in X}F(x)`$ を、集合族 $`F`$ のシグマ型〈Sigma type〉と呼びます。
シグマ型 $`\sum_{x\in X}F(x)`$ の要素は、$`x\in X`$ と $`y\in F(x)`$ のペア $`(x, y)`$ として書けます。シグマ型の要素である $`(x, y)`$ を依存ペア〈dependent pair〉と呼びます。
依存ペアに対して、$`(x, y) \mapsto x`$ と定義される関数をシグマ型の射影〈projection of Sigma type〉と呼びます。シグマ型の射影を次のように書きます。
$`\quad \pi^F : \sum_{x\in X} F(x) \to X \In \mbf{Set}`$
関数 $`s: X \to \sum_{x\in X} F(x)`$ が次の等式条件を満たすとき、射影のセクション〈section〉と呼びます。($`\C`$ は、図式順の結合〈composition〉記号です。)
$`\quad s\C \pi^F = \id_X \; : X \to X \In \mbf{Set}`$
シグマ型の射影 $`\pi^F`$ のセクション全体の集合を次のように書きます。
$`\quad \mrm{Sect}(\pi^F : \sum_{x\in X} F(x) \to X )`$
上記のセクションの集合を $`\prod_{x\in X} F(x)`$ とも書き、集合族 $`F`$ のパイ型〈Pi type〉と呼びます*2。
小さい字の下付きは、ときに見にくいので、次のようにも書きます。
$`\quad \sum(x\in X \mid F(x) ) := \sum_{x\in X}F(x)`$
$`\quad \prod(x\in X \mid F(x) ) := \prod_{x\in X}F(x)`$
$`E := \sum(x \in X \mid F(x))`$ と置いて、次の記法を使います。
$`\T{For }a \in X\\
\quad E_{@a} := (\pi^F)^{-1}( \{a\} )
`$
$`E_{@a}`$ を、(シグマ型の)$`a`$ におけるファイバー〈fiber〉と呼びます。ファイバー $`E_{@a}`$ は、$`a\in X`$ における $`\pi^F`$ の $`a`$ の逆像です。次は成立します。
- $`E_{@a} \subseteq E`$
- $`E_{@a} \cong F(a)`$
$`E`$ の要素や $`E_{@a}`$ の要素の書き方が三種類あります。
- 依存ペアとして書く: $`(x, y) \in E`$
- $`x \in X`$
- $`y \in F(x)`$
- 第一成分固定の依存ペアとして書く: $`(a, t) \in E_{@a}`$
- $`a \in X`$
- $`t \in F(a)`$
- 依存ペアの第二成分のみを書く: $`t \in F(a)`$
- $`a \in X`$
どの書き方をしても本質的な差はありません。そのときどきで、都合のよい書き方を選びます。
簡約抽象辞書と意味対応
シグマ型を使うと、「用語辞書: 問題点への対処法 1/3」で述べた“簡約抽象辞書”の集合や、“意味割り当て非決定性関数の集合”をうまく書き下せます。シグマ型の記号的表現を解釈する負担は増えますが、自然言語でウダウダ書くより簡潔に正確に書けます。
まず、$`\mbf{Set}_{\#N}(W, \mrm{Pow}_{\le \omega}(\mbb{S}) )`$ の要素に名前を付けておきます。一般に、構文的対象(今の場合は語項目)に意味的対象を割り当てる関数は、意味関数〈semantic function〉、解釈〈interpretation〉、意味割り当て〈meaning assignment〉などと呼びます。が、$`\mbf{Set}_{\#N}(W, \mrm{Pow}_{\le \omega}(\mbb{S}) )`$ の要素は普通の関数ではなくて非決定性関数なので意味対応〈semantic correspondence〉と呼ぶことにします。意味対応は、構文的対象である語項目に、非決定的に意味(意味宇宙 $`\mbb{S}`$ の要素)を割り当てます。
さて、語項目の集合を固定しない“すべての簡約抽象辞書の集合”と、“すべての意味対応の集合”をシグマ型として定義します。次の名前を使います。
| $`\T{集合族}`$ | $`\T{そのシグマ型}`$ |
| $`\mrm{RedDict}`$ | $`\mbf{AllRedDict}`$ |
| $`\mrm{SemCorr}`$ | $`\mbf{AllSemCorr}`$ |
$`\mrm{RedDict}, \mbf{AllRedDict}`$ の定義は以下のようです。($`|\mbf{Set}|_{\le \omega}`$ は、すべての“たかだか可算無限な集合”からなる集合です。)
$`\quad \mrm{RedDict} : |\mbf{Set}|_{\le \omega} \to |\mbf{Set}_{\#N}|
\In \mbf{Set}_{\#(N + 1)}\\
\T{For }X \in |\mbf{Set}|_{\le \omega} \\
\quad \mrm{RedDict}(X) := \mrm{Pow}_{\le \omega}(X \times \mbb{S})
\; \in |\mbf{Set}_{\#N}|
`$
$`\quad \mbf{AllRedDict} := \sum( X\in |\mbf{Set}|_{\le \omega} \mid \mrm{RedDict}(X) ) \; \in |\mbf{Set}_{\#N}|
`$
$`\mbf{AllRedDict}`$ の要素や $`\mbf{AllRedDict}_{@W}`$ の要素を、三種類の書き方で書いてみます。
- 依存ペアとして書く: $`(X, Y) \in \mbf{AllRedDict}`$
- $`X \in |\mbf{Set}|_{\le \omega}`$
- $`Y \in \mrm{RedDict}(X)`$
- 第一成分固定の依存ペアとして書く: $`(W, D) \in \mbf{AllRedDict}_{@W}`$
- $`W \in |\mbf{Set}|_{\le \omega}`$
- $`D \in \mrm{RedDcit}(W)`$
- 依存ペアの第二成分のみを書く: $`D \in \mrm{RedDict}(W)`$
- $`W \in |\mbf{Set}|_{\le \omega}`$
$`\mrm{SemCorr}, \mbf{AllSemCorr}`$ の定義は以下のようです。
$`\quad \mrm{SemCorr} : |\mbf{Set}|_{\le \omega} \to |\mbf{Set}_{\#N}|
\In \mbf{Set}_{\#(N + 1)}\\
\T{For }X \in |\mbf{Set}|_{\le \omega} \\
\quad \mrm{SemCorr}(X) := \mbf{Set}_{\#N}(X , \mrm{Pow}_{\le \omega}(\mbb{S}) )
\; \in |\mbf{Set}_{\#N}|
`$
$`\quad \mbf{AllSemCorr} := \sum( X\in |\mbf{Set}|_{\le \omega} \mid \mrm{SemCorr}(X) ) \; \in |\mbf{Set}_{\#N}|
`$
$`\mbf{AllSemCorr}`$ の要素や $`\mbf{AllSemCorr}_{@W}`$ の要素を、三種類の書き方で書いてみます。
- 依存ペアとして書く: $`(X, F) \in \mbf{AllSemCorr}`$
- $`X \in |\mbf{Set}|_{\le \omega}`$
- $`F \in \mrm{SemCorr}(X)`$
- 第一成分固定の依存ペアとして書く: $`(W, M) \in \mbf{AllSemCorr}_{@W}`$
- $`W \in |\mbf{Set}|_{\le \omega}`$
- $`M \in \mrm{SemCorr}(W)`$
- 依存ペアの第二成分のみを書く: $`M \in \mrm{SemCorr}(W)`$
- $`W \in |\mbf{Set}|_{\le \omega}`$
各 $`X \in |\mbf{Set}|_{\le \omega}`$ ごとに次の同型があります。
$`\quad \mrm{RedDict}(X) \cong \mrm{SemCorr}(X) \In \mbf{Set}_{\#N}`$
定義を展開して書けば:
$`\quad \mrm{Pow}_{\le \omega}(X \times \mbb{S}) \cong
\mbf{Set}_{\#N}( X, \mrm{Pow}_{\le \omega}(\mbb{S}) )
\In \mbf{Set}_{\#N}
`$
これらの同型を全部寄せ集めると、次の同型が得られます。
$`\quad \mbf{AllRedDict} \cong \mbf{AllSemCorr} \In \mbf{Set}_{\#N}`$
定義を展開して書けば:
$`\quad \sum(X \in |\mbf{Set}|_{\le \omega} \mid \mrm{Pow}_{\le \omega}(X \times \mbb{S}) ) \cong\\
\quad \sum(X \in |\mbf{Set}|_{\le \omega} \mid \mbf{Set}_{\#N}( X, \mrm{Pow}_{\le \omega}(\mbb{S}) ) )\\
\quad \In \mbf{Set}_{\#N}
`$
上記の同型を与える関数は次の名前にします。
$`\quad \xymatrix@C+2pc{
{\mrm{RedDict}(X) }
\ar@/^1.5pc/[r]^{\mrm{ToSemCorr}_X }
&{\mrm{SemCorr}(X)}
\ar@/^1.5pc/[l]^{\mrm{ToRedDict}_X }
}\\
\quad \T{mutually inverse} \In \mbf{Set}_{\#N}
`$
$`\quad \xymatrix@C+2pc{
{\mbf{AllRedDict} }
\ar@/^1.5pc/[r]^{\mrm{ToSemCorr} }
&{\mbf{AllSemCorr} }
\ar@/^1.5pc/[l]^{\mrm{ToRedDict} }
}\\
\quad \T{mutually inverse} \In \mbf{Set}_{\#N}
`$
また、任意の $`W \in |\mbf{Set}|_{\le \omega}`$ に関して以下の可換図式もあります。
$`\quad \xymatrix@C+2pc{
{\mrm{RedDict}(W) } \ar[r]^{\mrm{ToSemCorr}_W }_{\cong}
\ar[d]_{\cong}
&{\mrm{SemCorr}(W)} \ar[d]^{\cong}
\\
{\mbf{AllRedDict}_{@W} } \ar[r]^{\mrm{ToSemCorr}_{@W} }_{\cong}
\ar@{_{(}->}[d]
&{\mbf{AllSemCorr}_{@W} } \ar@{^{(}->}[d]
\\
{\mbf{AllRedDict} } \ar[r]^{\mrm{ToSemCorr} }_{\cong}
\ar[d]_{\mrm{WItem}}
&{\mbf{AllSemCorr} } \ar[d]^{\mrm{WItem}}
\\
{|\mbf{Set}|_{\le \omega}} \ar@{=}[r]
&{|\mbf{Set}|_{\le \omega}}
}\\
\quad \T{commutative} \In \mbf{Set}_{\#N}
`$
$`\mrm{ToSemCorr}_{@W}`$ は、$`\mrm{ToSemCorr}`$ を $`W`$ 上のファイバーに制限したものです。
この節では、辞書エントリの集合としての辞書(最初の定義)について触れませんでしたが、同様に扱えます。集合族 $`\mrm{Dict}`$ に基づき、シグマ型として $`\mbf{AllDict}`$ を定義できます。
簡約具象辞書
抽象辞書と具象辞書との違いは、語項目が何でもいいか/タプルに限定するかの違いです。具象辞書/簡約具象辞書の語項目は、ひとつのスキーマ(データベース用語を借用)に従う必要があります。スキーマは、$`n`$ 個の集合 $`A_1, \cdots, A_n`$ で与えられます*3。$`A_i\; (i = 1, \cdots, n)`$ は、どれも空ではなく、どれもたかだか可算無限な集合です。
スキーマ $`A_1, \cdots, A_n`$ を指定した場合の、簡約具象辞書を定義します。
$`\quad \mrm{RedDict}_{A_1, \cdots, A_n} : \mrm{Pow}(A_1 \times \cdots \times A_n) \to |\mbf{Set}_{\#N}|
\In \mbf{Set}_{\#(N + 1)}\\
\T{For }X \in \mrm{Pow}(A_1 \times \cdots \times A_n) \\
\quad \mrm{RedDict}_{A_1, \cdots, A_n}(X) := \mrm{Pow}_{\le \omega}(X \times \mbb{S})
\; \in |\mbf{Set}_{\#N}|
`$
$`\quad \mbf{AllRedDict}_{A_1, \cdots, A_n} := \sum( X\in \mrm{Pow}(A_1 \times \cdots \times A_n) \mid \mrm{RedDict}_{A_1, \cdots, A_n}(X) )
`$
語項目の集合が、$`A_1 \times \cdots \times A_n`$ の部分集合に制限される以外は簡約抽象辞書と同じです。$`X \subseteq A_1 \times \cdots \times A_n`$ という制限を忘れてしまえば、簡約具象辞書は簡約抽象辞書とみなせるので、“すべての簡約具象辞書の集合”から“すべての簡約抽象辞書の集合”への忘却関数(忘却関手の関数バージョン)が存在します。
$`\quad \mrm{U} : \mbf{AllRedDict}_{A_1, \cdots, A_n} \to \mbf{AllRedDict}
\In \mbf{Set}_{\#N}
`$
スキーマ $`A_1, \cdots, A_n`$ がないと議論できない話題もありますが、語項目がタプルであることに依存しない議論は抽象辞書/簡約抽象辞書にも通用します。
スキーマ $`A_1, \cdots, A_n`$ を指定した場合の、$`\mrm{SemCorr}_{A_1,\cdots, A_n}`$、$`\mbf{AllSemCorr}_{A_1, \cdots, A_n}`$ も同様に定義できます。
パラメトリックな語項目/辞書エントリ
辞書の語項目やエントリは有限個に制限せず、可算無限個を許しました。「用語辞書とそのグラフ表現: 曖昧性の扱い方 // 用語辞書に関する注意事項」において、可算無限個の語項目/エントリが必要な例として、「0次元ユークリッド空間」、「1次元ユークリッド空間」、「2次元ユークリッド空間」‥‥ を出しました。
「ユークリッド空間」の場合は、自然数 $`n \in \mbf{N}`$ をパラメータ〈インデックス〉とする見出し語の族/語項目の族/エントリの族が定義されます。パラメータ付き族〈インデックス付き族〉とは、関数〈写像〉のことです。例えば、語項目のスキーマが
$`\quad \mbf{String}, \mbf{String}, \mbf{SynSort}, \mbf{LangCode}`$
だとして、自然数をパラメータとするエントリの族 $`E`$ は次の写像です。
$`\quad E : \mbf{N} \to \mbf{String}\times \mbf{String}\times \mbf{SynSort}\times \mbf{LangCode}\times (\mbb{S} \cup\{\bot\}) \\
\quad \In \mbf{Set}_{\#N}
`$
「パラメータ付き◯◯◯の族」を「パラメトリックな◯◯◯」とも言います。ここで出てくるのは、パラメトリックな語項目〈parametric word item〉やパラメトリックな辞書エントリ〈parametric dictionary entry〉です。パラメータは自然数のような単純なものとは限りません。次節で複雑なパラメータが出てきます。
概念・用語の整理と弁別子・パラメータ
最初に導入した辞書の定義は、辞書エントリの集合でした。理論的扱いが容易な簡約抽象辞書と意味対応を導入しました。辞書に関わる概念が幾つも登場したので、整理しておきましょう。また、「用語辞書: 問題点への対処法 1/3 // 辞書エントリ再考」で導入した弁別子〈discriminator〉と、前節で導入したパラメトリックな語項目/エントリの使い方も説明します。
概念の分類規準(二分法〈dichotomy〉の軸)は以下のようです。
- 非簡約 vs. 簡約 : ボトム($`\bot`$)を使うか、使わないか
- 抽象 vs. 具象 : 語項目は任意か、タプルか
- 辞書 vs. 意味対応 : 関係($`\mbf{Rel}_{\#N}`$ の射)か、非決定性関数($`\mbf{NonDet}_{\#N}`$ の射)か
二分法の軸が3本なので、2×2×2 = 8 種類に分類されるはずです。が、実際に使うのは 6 種類です。
非簡約(ボトムを使う):
| 抽象 | 具象 | |
|---|---|---|
| 辞書 | 非簡約抽象辞書 | 非簡約具象辞書 |
| 意味対応 | ― | ― |
意味対応では、もともと $`\bot`$ を使っていません。「ボトムを使う意味対応」はありません。
簡約(ボトムを使わない):
| 抽象 | 具象 | |
|---|---|---|
| 辞書 | 簡約抽象辞書 | 簡約具象辞書 |
| 意味対応 | 抽象意味対応 | 具象意味対応 |
「すべての ~ からなる集合」には、次の記号を割り当てましょう。$`A_1, \cdots, A_n`$ はタプルのスキーマです。
- すべての非簡約抽象辞書からなる集合 $`\mbf{AllDict}`$
- すべての非簡約具象辞書からなる集合 $`\mbf{AllDict}_{A_1, \cdots, A_n}`$
- すべての簡約抽象辞書からなる集合 $`\mbf{AllRedDict}`$
- すべての簡約具象辞書からなる集合 $`\mbf{AllRedDict}_{A_1, \cdots, A_n}`$
- すべての抽象意味対応からなる集合 $`\mbf{AllSemCorr}`$
- すべての具象意味対応からなる集合 $`\mbf{AllSemCorr}_{A_1, \cdots, A_n}`$
これらは、“用語法について語るための用語”の辞書エントリになります。
「非簡約」「抽象」「具象」という形容詞は多くの場合省略されるので、見出し語ではなくて弁別子(第2フィールド)にしましょう。すると、辞書エントリ達は:
- $`(\T{辞書}, \T{非簡約抽象}, \T{CN}, \T{ja}, \mbf{AllDict})`$
- $`(\T{辞書}, \T{非簡約具象}, \T{CN}, \T{ja}, \mbf{AllDict}_{A_1, \cdots, A_n})`$
- $`(\T{辞書}, \T{簡約抽象}, \T{CN}, \T{ja}, \mbf{AllRedDict})`$
- $`(\T{辞書}, \T{簡約具象}, \T{CN}, \T{ja}, \mbf{AllRedDict}_{A_1, \cdots, A_n})`$
- $`(\T{意味対応}, \T{抽象}, \T{CN}, \T{ja}, \mbf{AllSemCorr})`$
- $`(\T{意味対応}, \T{具象}, \T{CN}, \T{ja}, \mbf{AllSemCorr}_{A_1, \cdots, A_n})`$
見出し語は、文のなかで普通に使う言葉にして、強いて区別したいときの形容詞や目印を弁別子にします。弁別子は、辞書だけで(追加の機能を使わずに)曖昧多義語を表現する手段になります。同じ見出し語に異なる弁別子が付いた2つの辞書エントリは、同綴エントリ(「用語辞書: 何が問題なのか? // 「綴」「種」「義」」参照)です。が、“見出し語+弁別子”を新たな見出し語と考えれば、異綴エントリとなります。つまり弁別子は、同綴異義エントリ(問題がある2つのエントリ)を異綴異義エントリ(問題がない2つのエントリ)に分解する手段も与えます。
“見出し語+弁別子”をひとつの文字列にエンコードするときは、見出し語と弁別子のあいだにアンダースコアを挟んで並べることにします。例えば、「辞書_非簡約抽象」(LaTeX なら $`\T{辞書_非簡約抽象}`$*4)。
さてところで、辞書_非簡約具象、辞書_簡約具象、意味対応_具象 のエントリは、3つのエントリではありません。スキーマ $`A_1, \cdots, A_n`$ がパラメータになっているパラメトリックなエントリです。ありとあらゆるスキーマを考えて、それらをすべて辞書エントリに突っ込むと、辞書(エントリの集合)が巨大になってしまいます。実際には、ありとあらゆるスキーマは要りません。今までに出現したスキーマ(語項目タプルの仕様)は3つです。
- $`\mbf{String}, \mbf{B}, \mbf{SynSort},\mbf{LangCode}`$ (第2フィールドは、アンカー性〈Anchorness〉)
- $`\mbf{String}, \mbf{SynSort},\mbf{LangCode}`$ (アンカー性〈Anchorness〉なし)
- $`\mbf{String}, \mbf{String}, \mbf{SynSort},\mbf{LangCode}`$ (第2フィールドは弁別子〈Discriminator〉)
ユークリッド空間の場合、見出し語に具体的なパラメータ値(例えば 3)を入れて「3次元ユークリッド空間」などとしているので、それに倣うと見出し語+弁別子は長いものになります。
- "スキーマが $`\mbf{String}, \mbf{String}, \mbf{SynSort},\mbf{LangCode}`$ である辞書"_非簡約具象
- "スキーマが $`\mbf{String}, \mbf{String}, \mbf{SynSort},\mbf{LangCode}`$ である辞書"_簡約具象
- "スキーマが $`\mbf{String}, \mbf{String}, \mbf{SynSort},\mbf{LangCode}`$ である意味対応"_具象
実際には、こんな長ったらしい言い方はしません。パラメータであるスキーマは文脈から推定され、弁別子も適宜補完されます。つまり、通常は、パラメータや弁別子は暗黙に存在していて、明示的には示されないのです。このことがコミュニケーションの問題を引き起こすのですが。
無義語、単義語、多義語とは
「用語辞書: 何が問題なのか? // 「綴」「種」「義」」で指摘したように、用語について語るための用語が乱れています。
「語」が表すものが次の3つのどれかハッキリしません。
- 見出し語
- 語項目
- 辞書エントリ
また、単一のモノについて語っているのか、複数のモノについて語っているのかもハッキリしません。この節では、この点に注意しながら、表題の概念を説明します。
意味対応
$`\quad M : W \to \mrm{Pow}_{\le \omega}(\mbb{S}) \In \mbf{Set}_{\#N}`$
を固定して、語項目($`W`$ の要素)が、無義〈nullsemous〉、単義〈monosemous〉、多義〈polysemous〉であることを定義します。「無義」「単義」「多義」は、$`W`$ の要素に制限をかける制限的形容詞〈restrictive adjective〉です。
- $`w\in W`$ が、$`M`$ に関して無義であるとは、$`M(w) = \{\} = \emptyset`$ であること。
- $`w\in W`$ が、$`M`$ に関して単義であるとは、$`M(w) = \{s\}`$ ($`s\in \mbb{S}`$)であること。
- $`w\in W`$ が、$`M`$ に関して多義であるとは、無義でも単義でもないこと。$`M(w)`$ の基数〈cardinality〉は 2 以上になる。
今説明した「無義」「単義」「多義」は、意味対応 $`M`$ を固定した上で、$`W`$ の要素について語るための形容詞または述語〈predicate〉です。
次に辞書(非簡約抽象辞書) $`D \subseteq W\times (\mbb{S}\cup\{\bot\})`$ を考えます。$`D`$ のエントリ $`(w, y) \in D`$ が「無義」「単義」「多義」であるとは:
- $`(w, y) \in D`$ が、$`D`$ に関して無義であるとは、$`y = \bot`$ であること。
- $`(w, y) \in D`$ が、$`D`$ に関して単義であるとは、$`y \ne \bot`$ であり、$`z \ne \bot, z \ne y`$ であるエントリ $`(w, z) \in D`$ が存在しないこと。
- $`(w, y) \in D`$ が、$`D`$ に関して多義であるとは、$`y \ne \bot`$ であり、$`z \ne \bot, z \ne y`$ であるエントリ $`(w, z) \in D`$ が存在すること。
これらは、単一のエントリに関する形容詞・述語でした。複数のエントリ達について語る場合もあります。
- $`D`$ の2つのエントリ $`(w, y), (w', y')`$ が、$`D`$ に関して多義エントリ〈polysemous entries〉であるとは、$`w = w'`$ かつ $`y \ne \bot`$ かつ $`y' \ne \bot`$ かつ $`y \ne y'`$ であること。
もっとたくさんのエントリ達〈entries〉について語る場合は、自然言語だときついので論理式で書いておきます。
$`\T{For } n \in \mbf{N}, n \ge 2\\
\T{For }(w_1, y_1), \cdots, (w_n, y_n) \in D\\
\quad \forall i, j \in \{1, \cdots, n\}.(\, w_i = w_j \,)\\
\quad \land \\
\quad \forall i \in \{1, \cdots, n\}.(\, y_i \ne \bot \,)\\
\quad \land \\
\quad \forall i, j \in \{1, \cdots, n\}.(\, i \ne j \Imp y_i \ne y_j \,)
`$
複数のエントリ達が多義エントリであるとは、より正確に言えば同語項目・多義エントリ(語項目が同じなのに、意味がバラバラ)です。より分類を細かくした同綴異義エントリ(見出し語が同じなのに、意味がバラバラ)などについては、「用語辞書: 何が問題なのか? // 「綴」「種」「義」」を参照してください。
用語について語る用語の場合でも、何(今の場合、抽象意味対応か抽象辞書か)を前提にしているのか、何(今の場合、語項目か辞書エントリか複数の辞書エントリ達か)について語っているのかハッキリしない問題があります。用語法をクリアにするための議論が曖昧では元も子もありません。注意しましょう(自戒も込めて)。
多義が多義!
今まで、「~ が多義だ」「~ が曖昧だ」「~ が良くない」といった言い方をしてきました。これらの言い方の正確な定義はありませんでした。ここらでハッキリさせましょう。
まず、「多義」と「曖昧」は同義で次の言い方は同じ意味だとします。
- ~ が多義だ
- ~ が曖昧だ
- ~ が曖昧多義だ
- ~ が多義曖昧だ
以下では「多義」を代表として取り上げます。
「~ が多義だ」を次の二種の言い方に分類します。
- ◯◯が多義だ
- ◯◯の☓☓が多義だ
◯◯に入る候補は:
- 具象辞書(非簡約) ◯◯
- 抽象辞書(非簡約) ◯◯
- 簡約具象辞書 ◯◯
- 簡約抽象辞書 ◯◯
- 具象意味対応 ◯◯
- 抽象意味対応 ◯◯
☓☓に入る候補は:
- 辞書エントリ ☓☓
- 語項目 ☓☓
- 2つの辞書エントリ ☓☓1 と ☓☓2
- n個の辞書エントリ ☓☓1, ..., ☓☓n
- 見出し語 ☓☓
「◯◯の☓☓」が自由に作れるわけではありません。禁止される組み合わせを正規表現〈regular expression〉(括弧に波括弧使用)で表すと:
{具象 | 抽象}意味対応 ◯◯ の{2つの | n個の}?辞書エントリ {☓☓ | ☓☓1 と ☓☓2 | ☓☓1, ..., ☓☓n}
前節で定義した多義性は:
- 抽象意味対応の語項目の多義性
- 非簡約抽象辞書の辞書エントリの多義性
- 非簡約抽象辞書の2つの辞書エントリの多義性
- 非簡約抽象辞書のn個の辞書エントリの多義性
次も容易に定義可能です。
- 非簡約抽象辞書の語項目の多義性
具象バージョンの多義性は抽象バージョンの多義性の特殊ケースに過ぎません。
非簡約抽象辞書と簡約抽象辞書は一対一対応するので、非簡約抽象辞書の定義を簡約抽象辞書に翻訳することができます。それにより次の定義が得られます。
- 簡約抽象辞書の語項目の多義性
- 簡約抽象辞書の辞書エントリの多義性
- 簡約抽象辞書の2つの辞書エントリの多義性
- 簡約抽象辞書のn個の辞書エントリの多義性
「◯◯ の見出し語 ☓☓ が多義」は、◯◯ が具象的でないと定義できません。したがって、「◯◯ の見出し語 ☓☓」として、次の組み合わせは無意味なので禁止されます。
{非簡約抽象辞書 | 簡約抽象辞書 | 抽象意味対応} ◯◯ の見出し語 ☓☓
非簡約具象辞書、簡約具象辞書、具象意味対応の場合は、語項目がタプルであり、タプルの成分〈フィールド〉のひとつが“見出し語”であると想定できます。この状況で、文字列 $`h \in \mbf{String}`$ が多義であることは次のように定義できます。
$`\quad \exists w, w' \in W.\\
\qquad \T{見出し語}(w) = \T{見出し語}(w') = h \\
\qquad \land\\
\qquad \T{2つの語項目 }w, w' \T{ は同義ではない}
`$
「◯◯が多義だ」は、◯◯が多義な語項目を(少なくとも1つは)持つことだと定義できます。「多義な語項目を持つ」は、語項目の多義性だけに基づいています。よって、具象辞書/抽象辞書/簡約具象辞書/簡約抽象辞書/具象意味対応/抽象意味対応のいずれに対しても有効な定義です。
「◯◯が多義だ」は「◯◯が良くない」とも言います。「良くない」の否定が「良い」です。「◯◯が良い」も、具象辞書/抽象辞書/簡約具象辞書/簡約抽象辞書/具象意味対応/抽象意味対応のいずれに対しても有効な定義です。
多義別名
「用語辞書とそのグラフ表現: 曖昧性の扱い方 // 辞書エントリのあいだの関連性: forward」において、フォワード関連性〈forward relationship〉*5を導入しました。フォワード関連性は、それだけでは意味がなくて、意味を転送〈forward〉する指定として使われます。
フォワード関連性は、語項目の集合 $`W`$ 上の二項関係 $`R \subseteq W\times W`$です。別な見方としては、語項目をノードとする単純有向グラフ〈simple directed graph〉の辺の集合です。辺を矢印として描くと
$`\quad x \overset{\T{forward}}{\longrightarrow} y`$
あるいは簡略に
$`\quad x \mapsto y`$
となります。
フォワード関連性の用途は、無義語項目 $`x`$ に対して、$`y`$ の意味を付与することです。$`x`$ は $`y`$ の別名〈alias〉(である語項目)となります。単なる別名とは違い、次のような状況を許します。
$`\quad \xymatrix{
{}
&y
&{}
\\
x \ar@{|->}[ur] \ar@{|->}[dr]
&{}
&{}
\\
{}
&z \ar@{|->}[r]
&w
}
`$
$`x`$ は $`y`$ の別名であると同時に $`z`$ の別名でもあり、$`z`$ は $`w`$ の別名です。ひとつの語項目が複数の語項目の別名となることを許します。また、別名の別名もありです。フォワード関連性(のグラフ)は、多義別名〈polysemous alias〉の表現とみなせます。ここで、「別名」に付く形容詞「多義」の意味は、「多義性を許す」ということです。
フォワード関連性のグラフでは、次のことが起こり得ます。
- サイクルを持つ。辺をたどる(素朴な)アルゴリズムは無限ループする。
- 無限な長さのパスを持つ。辺をたどるアルゴリズムは終わらない。
- パスの終端の語項目が意味を持たない。宙ぶらりんなパス〈dangling path〉。
サイクル/無限パス/宙ぶらりんなパスは特に禁止はしないで、「意味の転送が失敗する」と考えます。意味の転送の失敗をエラーとはみなさず、単に無義語(正確には無義な語項目)が意味を持てなかっただけ、とします。
フォワード関連性 $`R \subseteq W\times W`$ にゴチャゴチャと条件を付けることはしませんが、もともと意味を持っていた語項目〈無義ではない語項目〉を別名の語項目に使うことは禁止します。
この条件をハッキリと書き下すために、関係〈二項関係〉の定義域と非決定性関数の定義域を定義します。
一般的な関係 $`R \subseteq A \times B`$ に対して、その定義域〈domain of definition〉 $`\mrm{def}(R)`$ は:
$`\quad \mrm{def}(R) := \{ a \in A \mid \exists b\in B. (a, b)\in R \}`$
一般的な非決定性関数 $`F: A \to B \In \mbf{NonDet}_{\#N}`$ に対して、その定義域〈domain of definition〉 $`\mrm{def}(F)`$ は:
$`\quad \mrm{def}(F) := \{ a \in A \mid F(a) \ne \emptyset \}`$
今、同じ見出し語「定義域」で異なる2つの概念を定義したので、曖昧多義語が発生しました。2つの語項目を作るなら、弁別子で区別することになるでしょう。
- $`(\T{定義域}, \T{関係の}, \T{RN}, \T{ja})`$
- $`(\T{定義域}, \T{非決定性関数の}, \T{RN}, \T{ja})`$
これら語項目の構文ソートは RN〈役割り名〉です。それは、定義域が $`\mrm{def}(\hyp)`$ と書けることから分かるでしょう。
話を本題に戻すと、フォワード関連性 $`R \subseteq W\times W`$ に課す条件は、意味対応 $`M: W \to \mbb{S} \In \mbf{NonDet}_{\#N}`$ に対して次のようです。
$`\quad \mrm{def}(R) \cap \mrm{def}(M) = \emptyset`$
$`\mrm{def}(R)\subseteq W`$ は、別名として使いたい語項目の集合です。一方 $`\mrm{def}(M) \subseteq W`$ は、$`M`$ による意味を持っている〈無義ではない〉語項目の集合です。これらの共通部分が空であるという条件は、別名が最初から意味を持っていることを禁止します。
この条件を課さなくても破綻するようなことは起きませんが、人間にとって分かりにくくなる/考えにくくなるので、この条件をフォワード関連性の定義に入れておきます。
辞書変換としての多義別名
与えられた意味対応 $`M: W \to \mrm{Pow}_{\le \omega}(\mbb{S})`$ とフォワード関連性 $`R \subseteq W\times W`$ から、多義別名のメカニズムにより拡張した意味対応 $`M'`$ を作れます。ここで、$`M'`$ が $`M`$ を拡張しているとは、次のことです。
$`\quad \forall w\in W.( M(w)\subseteq M'(w))`$
$`M'`$ は $`M`$ と $`R`$ から決まるので、次のように書けます。
$`\quad M' = \mrm{PolyAlias}(M, R)`$
$`(M, S) \mapsto \mrm{PolyAlias}(M, S)`$ は辞書変換(「用語辞書: 問題点への対処法 1/3 // 辞書演算と辞書変換」参照)です。$`\mrm{PolyAlias}`$ の第一引数と戻り値は、意味対応ですが、意味対応と辞書/簡約辞書は一対一対応するので、辞書変換という言葉を使っても悪くはないでしょう。
辞書変換(あるいは意味対応変換) $`\mrm{PolyAlias}`$ の域〈ドメイン〉と余域〈コドメイン〉をハッキリさせましょう。第一引数は意味対応 $`M`$ ですが、第二引数 $`R`$ を $`M`$ と独立には取れません。$`(M, R)`$ は依存ペアです。そして、依存ペアはシグマ型の要素です。
$`\mrm{PolyAlias}`$ の域となるシグマ型は、次の集合族から定義されます。$`\mrm{WItem}(M)`$ は $`\mrm{dom}(M)`$ と同じです。
$`\quad \mrm{ForwardRel} : \mbf{AllSemCorr} \to |\mbf{Set}| \\
\T{For } M \in \mbf{AllSemCorr} \\
\quad \mrm{ForwardRel}(M) := \\
\qquad \{
R \in \mrm{Pow}(\mrm{WItem}(M) \times \mrm{WItem}(M)) \mid
\mrm{def}(R) \cap \mrm{def}(M) = \emptyset
\}
`$
したがって、$`\mrm{PolyAlias}`$ の域と余域は:
$`\quad \mrm{PolyAlias} : \sum( M \in \mbf{AllSemCorr} \mid \mrm{ForwardRel}(M) ) \\
\qquad \to \mbf{AllSemCorr} \\
\quad \In \mbf{Set}_{\#N}
`$
辞書変換 $`\mrm{PolyAlias}`$ には、特筆すべき特徴が2つあります。
- $`\mrm{PolyAlias}`$ は、辞書(意味対応)の良さを保存しない。(正確には、保存するとは限らない。)
- $`\mrm{PolyAlias}`$ は、もとの辞書(意味対応)を拡張するが、もとの有義な語項目の意味はそのまま保持する。
ここで、有義〈non-nullsemous〉は、無義ではないことです。
「良さを保存しない」を正確に書き下しましょう。$`W`$ 上の意味対応 $`M`$ が良いは次の意味です。
$`\quad \forall w \in W.(\mrm{card}( M(w) ) \le 1)`$
$`\mrm{card}(\hyp)`$ は基数〈cardinality〉のことなので、$`M(w)`$ は空集合か単元集合です。
「~ は良い」を「~ is-good」と書くことにして、「$`\mrm{PolyAlias}`$ は、良さを保存しない」は次のように書けます。
$`\quad \lnot(\\
\qquad \forall (M, R) \in \sum( M \in \mbf{AllSemCorr} \mid \mrm{ForwardRel}(M) ) . \\
\quad\qquad (M \T{ is-good}) \Imp (\mrm{PolyAlias}(M, R) \T{ is-good}) \\
\quad )
`$
命題を変形すれば:
$`\quad \exists (M, R) \in \sum( M \in \mbf{AllSemCorr} \mid \mrm{ForwardRel}(M) ) . \\
\qquad (M \T{ is-good}) \land \lnot (\mrm{PolyAlias}(M, R) \T{ is-good})
`$
このような $`(M, R)`$ は容易に作れます。例えば、$`M(y) = \{s\}`$ 、$`M(z) = \{t\}`$ ($`s \ne t`$)、$`R = \{(x, y), (x, z)\}`$ とすると、$`x`$ が多義になります。
$`\mrm{PolyAlias}`$ が、もとの意味対応の有義な語項目の意味はそのまま保持することは、次のように書けます。
$`\quad \forall (M, R) \in \sum( M \in \mbf{AllSemCorr} \mid \mrm{ForwardRel}(M) ) . \\
\qquad \forall w\in \mrm{WItem}(M). \\
\quad \qquad M(w) \ne \emptyset \Imp \mrm{PolyAlias}(M, R)(w) = M(w)
`$
これは、フォワード関連性 $`R`$ に課せられた条件(前節参照)と多義別名のアルゴリズムから出てきます。フォワード関連性を無条件にしてしまうと、この性質は保証されません ―― それでは分かりにくくなると思います。
弁別子による曖昧性解消
既に述べたように、「良くない◯◯」「曖昧な◯◯」とは「多義な◯◯」のことです。「多義な◯◯」とは、多義な語項目を少なくとも1つ持つ◯◯のことでした。◯◯は、具象辞書/抽象辞書/簡約具象辞書/簡約抽象辞書/具象意味対応/抽象意味対応のいずれでも通用するので、◯◯として抽象意味対応を選んで話します。
抽象意味対応 $`M:W \to \mrm{Pow}_{\le \omega}(\mbb{S})`$ が曖昧多義であるとき、曖昧多義ではない〈良い〉抽象意味対応 $`M' : W' \to \mrm{Pow}_{\le \omega}(\mbb{S})`$ を作る手順を説明します。なお、$`M \mapsto M'`$ は辞書変換〈意味対応変換〉ではありません。与えられた $`M`$ に対して、一意的に $`M'`$ が作れるわけではありません。
弁別子の集合として可算無限集合 $`K`$ を考えます。$`K = \mbf{String}`$ に固定してもかまわないですが、可算無限集合なら何でもいいので一般の $`K`$ としておきます。特定の要素 $`\upsilon \in K`$ を決めておきます。$`\upsilon`$ は未定義のマーカーなので、$`K = \mbf{String}`$ のときは $`\upsilon = \T{"*UNDEF*"}`$ とかにしておきます。
最初に、$`S : W \to \mrm{Pow}(K) \In \mbf{Set}`$ を構成します。次の条件を課します。
- $`M(w) = \emptyset`$ なら、$`S(w) = \{\upsilon\}`$
- $`M(w) \ne \emptyset`$ なら、$`S(w)`$ は $`M(w)`$ と同型で、$`\upsilon \not\in S(w)`$。
$`S(w)`$ は非空でたかだか可算無限集合であり、$`S(w) \subseteq K`$ です。
上の条件に出てくる同型を、$`w`$ ごとに選んでおきます*6。それらの同型達を $`\varphi_w`$ とします。$`W_{有義} := \{w \in W \mid M(w) \ne \emptyset \}`$ とします。
$`\quad \forall w \in W_{有義}. \\
\qquad \varphi_w : S(w) \overset{\cong}{\to} M(w) \In \mbf{Set}
`$
このような $`S, \varphi`$ は、$`M`$ から一意には決まりませんが存在します。
$`S, \varphi`$ から、部分関数 $`F : W' \to \mbb{S} \In \mbf{Partial}_{\#N}`$ を作ります。意味対応が部分関数とみなせることは良い意味対応の条件なので、いきなり部分関数を作ってしまおう、というわけです。
部分関数 $`F`$ の域(定義域〈domain of definition〉ではない)は次のように定義します。
$`\quad W' := \sum( w\in W \mid S(w) )`$
$`F`$ の定義は:
- $`(w, \upsilon)`$ に対しては未定義
- $`(w, k),\; k \ne \upsilon`$ に対しては、$`F( (w, k) ) := \varphi_w(k)`$
$`S, \varphi, F`$ の定義の仕方から、$`F`$ は $`W' \to \mbb{S}`$ という部分関数です。また、部分関数 $`F`$ は意味対応 $`M`$ の情報を完全に持っています。$`F`$ から $`M`$ が復元できることを確認してみてください。
部分関数 $`F`$ (あるいは対応する意味対応)を、意味対応 $`M`$ の曖昧性解消〈disambiguation〉と呼ぶことにします。曖昧性解消は、一意には決まりませんが必ず存在します。
$`M`$ が具象意味対応のときは、タプルである語項目に、弁別子フィールドを付け加えることにより、曖昧性〈多義性〉の解消ができます。
3/3 に続きます。
*1:このブログの検索欄に、「シグマ型」「パイ型」と入力して検索してみてください。
*2:パイ型はこの記事内では使いません。
*3:スキーマでは、各フィールドに対する命名もしますが、ここでは割愛します。
*4:ほんとの LaTeX では、\text 内のアンダースコアはエスケープすべきですが、MathJax ではエスケープ不要なようです。
*5:関連性は関係と言っても同じ事ですが、関係データベースの用語である「関係」と誤認・誤解されないように「関連性」としました。こんな事情で、用語法が乱れたり錯綜したりすることもありますね。
*6:各 $`w`$ について $`\varphi_w`$ を一斉に選ぶには、選択公理($`W`$ が可算なので可算選択で足ります)を使います。