JPH077399B2 - 言語処理法 - Google Patents
言語処理法Info
- Publication number
- JPH077399B2 JPH077399B2 JP61273880A JP27388086A JPH077399B2 JP H077399 B2 JPH077399 B2 JP H077399B2 JP 61273880 A JP61273880 A JP 61273880A JP 27388086 A JP27388086 A JP 27388086A JP H077399 B2 JPH077399 B2 JP H077399B2
- Authority
- JP
- Japan
- Prior art keywords
- kana notation
- clause
- phrase
- kana
- bunsetsu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は、日本語連続音声認識装置や、べた書き仮名漢
字変換方式の日本語ワードプロセッサなどに用いる言語
処理法に関するものであり、さらに詳しくは、様々な文
字位置を仮名表記始端および仮名表記終端とする複数の
文節候補、すなわち、いわゆる文節ラティスが与えられ
たとき、それらの候補の確実度と、文節間の係り受けの
整合度を考慮に入れ、日本語の句あるいは文として最適
な文節例が構成されるように文節候補から文節を選択す
ると共にその最適な構文を決定し、かつそれにより得ら
れる最適文節例上の最適構文の日本語の句あるいは文と
しての適格度を計算する技術に関するものである。
字変換方式の日本語ワードプロセッサなどに用いる言語
処理法に関するものであり、さらに詳しくは、様々な文
字位置を仮名表記始端および仮名表記終端とする複数の
文節候補、すなわち、いわゆる文節ラティスが与えられ
たとき、それらの候補の確実度と、文節間の係り受けの
整合度を考慮に入れ、日本語の句あるいは文として最適
な文節例が構成されるように文節候補から文節を選択す
ると共にその最適な構文を決定し、かつそれにより得ら
れる最適文節例上の最適構文の日本語の句あるいは文と
しての適格度を計算する技術に関するものである。
[従来の技術] 日本語連続音声認識やべた書き仮名漢字変換方式日本語
ワードプロセッサにおいて、適切な最終的処理結果を得
るためには、 (A)形態素分割による多義性 (B)同音語による多義性 の2つの多義性を解消しなければならない。仮名文字列
が与えられたとき、それが文節をなすかどうかを判定す
ること、また文節をなすならば、その仮名文字列を仮名
表記として持つ同音文節を全て列挙することは、文節を
入力単位とする従来の日本語ワードプロセッサで既に行
われているように、単語辞書と文節内での単語接続規則
を用いて、自動的に行うことができる。従って、上述の
多義性は次のように言い換えてもよい。
ワードプロセッサにおいて、適切な最終的処理結果を得
るためには、 (A)形態素分割による多義性 (B)同音語による多義性 の2つの多義性を解消しなければならない。仮名文字列
が与えられたとき、それが文節をなすかどうかを判定す
ること、また文節をなすならば、その仮名文字列を仮名
表記として持つ同音文節を全て列挙することは、文節を
入力単位とする従来の日本語ワードプロセッサで既に行
われているように、単語辞書と文節内での単語接続規則
を用いて、自動的に行うことができる。従って、上述の
多義性は次のように言い換えてもよい。
(A′)与えられた仮名文字列を文節単位に区切る区切
り方の多義性 (B′)文節単位に区切られた各部分仮名文字列を仮名
表記とする同音文節が複数個存在することからくる多義
性 以上のような多義性を解消し、妥当な文節単位の区切り
と、区切られた各部分文字列を仮名表記として持つ適切
な文節を定める問題は、これまで主に日本語ワードプロ
セッサの分野で研究されてきた。以下にかかる従来技術
について述べる。
り方の多義性 (B′)文節単位に区切られた各部分仮名文字列を仮名
表記とする同音文節が複数個存在することからくる多義
性 以上のような多義性を解消し、妥当な文節単位の区切り
と、区切られた各部分文字列を仮名表記として持つ適切
な文節を定める問題は、これまで主に日本語ワードプロ
セッサの分野で研究されてきた。以下にかかる従来技術
について述べる。
(1)与えられた仮名文字列を文節単位に区切る方法と
して、二文節最長一致法がある(牧野寛、木沢誠: 情報処理学会論文誌、vol.20,No.4,pp.337−345(197
9)。これは、連続する二文節の長さを分かち書きの尺
度とし、二文節形として最長の解釈を与える区切りを二
文節間の境界と認定する方法である。
して、二文節最長一致法がある(牧野寛、木沢誠: 情報処理学会論文誌、vol.20,No.4,pp.337−345(197
9)。これは、連続する二文節の長さを分かち書きの尺
度とし、二文節形として最長の解釈を与える区切りを二
文節間の境界と認定する方法である。
(2)同じく仮名文字列を文節単位に区切る方法とし
て、文節数最小法が知られている(吉村賢治、日高達、
吉田将:文節数最小法を用いたべた書き日本語文の形態
素解析、情報処理学会論文誌、vol.24,No.1,pp.40−46
(1983)。これは、与えられた仮名文字列を文節単位に
区切ったときにできる文節の個数が最小になるような区
切り方を、最適な区切り方とする方法である。
て、文節数最小法が知られている(吉村賢治、日高達、
吉田将:文節数最小法を用いたべた書き日本語文の形態
素解析、情報処理学会論文誌、vol.24,No.1,pp.40−46
(1983)。これは、与えられた仮名文字列を文節単位に
区切ったときにできる文節の個数が最小になるような区
切り方を、最適な区切り方とする方法である。
以上の二つの方法は、いわゆるヒューリスティックな方
法であり、最適な区切り方の基準に明確な根拠があるわ
けではない。また、文節単位に区切られた仮名文字列を
仮名表記とする複数の文節候補から適切な文節を自動的
に選択する機能はなく、従来の、文節単位で分かち書き
して入力するワードプロセッサと同様に、単語の使用頻
度の情報を用いて、複数の文節候補に順位を付けて出力
し、後は使用者の選択に任せる等の処置が必要になる。
法であり、最適な区切り方の基準に明確な根拠があるわ
けではない。また、文節単位に区切られた仮名文字列を
仮名表記とする複数の文節候補から適切な文節を自動的
に選択する機能はなく、従来の、文節単位で分かち書き
して入力するワードプロセッサと同様に、単語の使用頻
度の情報を用いて、複数の文節候補に順位を付けて出力
し、後は使用者の選択に任せる等の処置が必要になる。
(3)与えられた仮名文字列を二文節最長一致法で文節
単位に区切った後、文節間の係り受け解析を行って、文
節候補の中から構文的に最も適切な文節を選択する方法
がある(牧野寛、木沢誠:べた書き文の仮名漢字変換シ
ステムとその同音語処理、情報処理学会論文誌、Vol.2
2,No.1,pp.59−67(1981))。この方法は、文節候補か
ら出力すべき文節を選択するに当たって、日本語の構造
を利用している点で、上記(1),(2)の方法より優
れている。しかし、二文節最長一致法自体がヒューリス
ティックな方法であり、常に最適な文節単位への区切り
方が得られるとは限らないこと、また、処理を簡単にす
るため、係り受けの関係は規則的に許される限り、最も
近い文節間で成立するという、現実には満たされないこ
ともあるヒューリスティックスを用いているという問題
がある。
単位に区切った後、文節間の係り受け解析を行って、文
節候補の中から構文的に最も適切な文節を選択する方法
がある(牧野寛、木沢誠:べた書き文の仮名漢字変換シ
ステムとその同音語処理、情報処理学会論文誌、Vol.2
2,No.1,pp.59−67(1981))。この方法は、文節候補か
ら出力すべき文節を選択するに当たって、日本語の構造
を利用している点で、上記(1),(2)の方法より優
れている。しかし、二文節最長一致法自体がヒューリス
ティックな方法であり、常に最適な文節単位への区切り
方が得られるとは限らないこと、また、処理を簡単にす
るため、係り受けの関係は規則的に許される限り、最も
近い文節間で成立するという、現実には満たされないこ
ともあるヒューリスティックスを用いているという問題
がある。
上記(A′),(B′)の多義性を解消するためには、
理想的には、与えられた仮名文字列を文節単位に区切る
あらゆる可能な区切り方、および、その際の文節単位に
区切られた部分仮名文字列を仮名表記とする文節からな
る、あらゆる可能な文節列の中から、日本語の文あるい
は句としての適格性と、単語の使用頻度などから得られ
る各文節の確実度の双方を考慮して、最適な区切り方
と、その区切り方における最適な文節例を選択すべきで
ある。この考え方を採ったものに次の論文がある。
理想的には、与えられた仮名文字列を文節単位に区切る
あらゆる可能な区切り方、および、その際の文節単位に
区切られた部分仮名文字列を仮名表記とする文節からな
る、あらゆる可能な文節列の中から、日本語の文あるい
は句としての適格性と、単語の使用頻度などから得られ
る各文節の確実度の双方を考慮して、最適な区切り方
と、その区切り方における最適な文節例を選択すべきで
ある。この考え方を採ったものに次の論文がある。
(4)大島義光、阿部正博、湯浦克彦、武市宣之:格文
法による仮名漢字変換の多義解消、情報処理学会論文
誌、Vol.27,No.7,pp.679−687,(1986)。
法による仮名漢字変換の多義解消、情報処理学会論文
誌、Vol.27,No.7,pp.679−687,(1986)。
しかし、この方法においては、枚挙法で処理を行おうと
しているため、計算量が膨大になってしまうので、結
局、構文解析を行う前に局所的な情報により文節列の数
を絞らなければならず、あらゆる可能性の中から最適な
ものを選択するという本来の考え方が生かされないとい
う問題があった。
しているため、計算量が膨大になってしまうので、結
局、構文解析を行う前に局所的な情報により文節列の数
を絞らなければならず、あらゆる可能性の中から最適な
ものを選択するという本来の考え方が生かされないとい
う問題があった。
文節集合の列が与えられた時、文節間の係り受けの整合
度と、各文節の確実度の双方を考慮して最適な文節例を
選択するアルゴリズムについては次の文献に記された方
法がある。
度と、各文節の確実度の双方を考慮して最適な文節例を
選択するアルゴリズムについては次の文献に記された方
法がある。
(5)尾関和彦:最適文節列を選択するための多段決定
アルゴリズム、電子通信学会音声研究会資料、SP86−3
2,(1986−7) このアルゴリズムを用いれば高速で最適文節列を選択す
ることができる。しかし、文節集合の列が与えられてい
るということは、仮名文字列の文節単位への区切りがた
だ一つに固定されている、ということと等価であるの
で、区切り方をも可能な範囲ですべて動かして最適解を
求める必要がある、ここでの問題にそのまま適用するこ
とはできない。
アルゴリズム、電子通信学会音声研究会資料、SP86−3
2,(1986−7) このアルゴリズムを用いれば高速で最適文節列を選択す
ることができる。しかし、文節集合の列が与えられてい
るということは、仮名文字列の文節単位への区切りがた
だ一つに固定されている、ということと等価であるの
で、区切り方をも可能な範囲ですべて動かして最適解を
求める必要がある、ここでの問題にそのまま適用するこ
とはできない。
[発明が解決しようとする問題点] 仮名文字列が与えられたとき、それから文節と認定でき
る部分仮名文字列をすべて切りだし、そのような各部分
列を仮名表記として持つ文節をすべて列挙すると、様々
な仮名文字位置を仮名表記始端、仮名表記終端とする文
節の集合が得られる。このような文節の集合は文節ラテ
ィスと呼ばれている。文節ラティスは、連続音声中から
文節として認められる区間を切り出す方式の連続音声認
識装置の出力としても得られる。文節ラティスという言
葉を用いると、本発明が取り扱う問題は、 「文節ラティスが与えられたとき、その中の文節を、終
端と始端が仮名文字位置として連続するという条件を満
たすように並べてできるあらゆる文節列を作り、その中
から日本語の文、あるいは句としての適格性と、各文節
の確実度の双方を考慮して、最も妥当な文節列を選択せ
よ」 と述べることができる。
る部分仮名文字列をすべて切りだし、そのような各部分
列を仮名表記として持つ文節をすべて列挙すると、様々
な仮名文字位置を仮名表記始端、仮名表記終端とする文
節の集合が得られる。このような文節の集合は文節ラテ
ィスと呼ばれている。文節ラティスは、連続音声中から
文節として認められる区間を切り出す方式の連続音声認
識装置の出力としても得られる。文節ラティスという言
葉を用いると、本発明が取り扱う問題は、 「文節ラティスが与えられたとき、その中の文節を、終
端と始端が仮名文字位置として連続するという条件を満
たすように並べてできるあらゆる文節列を作り、その中
から日本語の文、あるいは句としての適格性と、各文節
の確実度の双方を考慮して、最も妥当な文節列を選択せ
よ」 と述べることができる。
これを実行する上での問題点と、本発明の目的を述べる
ために、まず、この問題の厳密な定式化を行う。
ために、まず、この問題の厳密な定式化を行う。
ここではminが入った数式にまぎれがないよう、通常用
いられている min f(x) xに関する条件 という記法の代りに、 min(xに関する条件)[f(x)] を用いる。但し、混乱の恐れがないときには[、]は省
略することもある。
いられている min f(x) xに関する条件 という記法の代りに、 min(xに関する条件)[f(x)] を用いる。但し、混乱の恐れがないときには[、]は省
略することもある。
argmin、Σ,∪,等についても同様の記法を用いる。
以下[E2]までは文献(尾関和彦:最適文節列を選択す
るための多段決定アルゴリズム、電子通信学会音声研究
会資料、SP86−32,(1986−7)に述べられていること
であるが、説明上必要なのでここに掲げておく。
るための多段決定アルゴリズム、電子通信学会音声研究
会資料、SP86−32,(1986−7)に述べられていること
であるが、説明上必要なのでここに掲げておく。
日本語の文、あるいはまとまった句は、文節という単位
の間の広義の修飾関係によって成り立っていると考える
ことができる。文節xが文節yを修飾するとき、xはy
に係り、yはxを受けるという。また、このような修飾
関係を係り受けという。文節列が日本語のまとまった
句、あるいは文を構成するためには、それらの文節間
に、次のような条件を満たす係り受けが存在することが
必要であると考えられている。
の間の広義の修飾関係によって成り立っていると考える
ことができる。文節xが文節yを修飾するとき、xはy
に係り、yはxを受けるという。また、このような修飾
関係を係り受けという。文節列が日本語のまとまった
句、あるいは文を構成するためには、それらの文節間
に、次のような条件を満たす係り受けが存在することが
必要であると考えられている。
[C1]最後の文節以外の文節は、それより後ろにある文
節のいずれか一つに係る。
節のいずれか一つに係る。
[C2]二つの文節間の係り受けは、他の二つの文節間の
係り受けと交差しない。
係り受けと交差しない。
[C3]二つの文節間に係り受けが存在し得るためには、
それらの文節の種類や意味が互いに一定の関係を待たな
ければならない。
それらの文節の種類や意味が互いに一定の関係を待たな
ければならない。
与えられた文節列が正しい日本語の場合には、このよう
な手法で構文解析を行なうことができるが、話し言葉
や、音声認識装置の出力にありがちな、誤りを含む文節
列に対しては、解析が行き詰まってしまうことがある。
な手法で構文解析を行なうことができるが、話し言葉
や、音声認識装置の出力にありがちな、誤りを含む文節
列に対しては、解析が行き詰まってしまうことがある。
そこで、上の条件[C3]を、もっと柔軟な条件 [C′3]二つの文節x,yの組に対して、それらの文節
を構成する単語の品詞や意味によってxがyに代ること
の整合度を表わす数値が与えられている。
を構成する単語の品詞や意味によってxがyに代ること
の整合度を表わす数値が与えられている。
で置き換え、整合度の和が最大あるいは最小になる構文
を探索する方法がある。次はこれについて説明する。
を探索する方法がある。次はこれについて説明する。
条件[C1],[C2]は、つぎのように定義される、「構
文」によって表わすことができる。
文」によって表わすことができる。
[D1](1)xが文節のとき、(x)は「構文」であ
る。
る。
(2)X1,X2,…,Xmが「構文」、xが文節のとき、(X1X
2…Xmx) は「構文」である。
2…Xmx) は「構文」である。
[D2]文節列x1,x2,…xnに適切に括弧を付け、構文にな
るようにしたものを、x1x2…xn上の構文という。文節列
x1x2…xn上の構文の全体をK(x1x2…xn) と表わすことにする。
るようにしたものを、x1x2…xn上の構文という。文節列
x1x2…xn上の構文の全体をK(x1x2…xn) と表わすことにする。
条件[C3′]に関しては、文節xが文節yに係ることの
整合度が非負の値をとる関数 PEN(x,y) で表わされるものとする。PEN(x,y)の値は、0に近い
ほど整合度が高いことを表わすものと約束しておく。関
数PENをどうのように定めるかは、非常に重要な問題で
あるが、これは従来から既に考えられていることであ
り、本発明の主眼点ではないので、その説明を省く。
整合度が非負の値をとる関数 PEN(x,y) で表わされるものとする。PEN(x,y)の値は、0に近い
ほど整合度が高いことを表わすものと約束しておく。関
数PENをどうのように定めるかは、非常に重要な問題で
あるが、これは従来から既に考えられていることであ
り、本発明の主眼点ではないので、その説明を省く。
構文Xの適格度P(x)を次のように再帰的に定める。
[D3](1)X=(x),(xは文節)のとき、P
(X)=0, (2)X=(Y1Y2…Ymx),Y1=(…y1),Y2=(…
y2),…,Ym=(…ym)のとき、 P(X)=P(Y1)+P(Y2)+…+p(Ym) +PEN(y1,x)+PEN(y2,x)+…+PEN(ym,x) このように定義されたP(X)の値は、Xの中のあらゆ
る係り受けに対するPENの値を加算したものになってい
る。
(X)=0, (2)X=(Y1Y2…Ymx),Y1=(…y1),Y2=(…
y2),…,Ym=(…ym)のとき、 P(X)=P(Y1)+P(Y2)+…+p(Ym) +PEN(y1,x)+PEN(y2,x)+…+PEN(ym,x) このように定義されたP(X)の値は、Xの中のあらゆ
る係り受けに対するPENの値を加算したものになってい
る。
X,Yが構文で、Y=(Z1Z2…Zmy)、但し、Z1,…,Zmは構
文で、xは文節)とするとき、XをYの先頭に挿入して
できる構文 (X Z1Z2…Zmy) をXYと書くと、 [E1]X=(…x),Y=(…y)に対して、 P(XY)=P(X)+P(Y)+PEN(x,y) が成り立つ。また、 [E2]任意の文節列x1x2…xnに対して (1)n=1のとき K(x1)=(x1) (2)n>1のとき K(x1x2…xn) =∪(1≦k≦n−1){XY|X∈K(x1x2…xk), Y∈K(xk+1xk+2…xn)} が成り立つ。
文で、xは文節)とするとき、XをYの先頭に挿入して
できる構文 (X Z1Z2…Zmy) をXYと書くと、 [E1]X=(…x),Y=(…y)に対して、 P(XY)=P(X)+P(Y)+PEN(x,y) が成り立つ。また、 [E2]任意の文節列x1x2…xnに対して (1)n=1のとき K(x1)=(x1) (2)n>1のとき K(x1x2…xn) =∪(1≦k≦n−1){XY|X∈K(x1x2…xk), Y∈K(xk+1xk+2…xn)} が成り立つ。
[D4]A1,A2,…,Amを文節の集合とするとき KB(A1,A2,…,Am) ={X|∃x1∈A1,∃x2∈A2,…,∃xm∈Am,X∈K(x1x2…
xm)}と定義する。KB(A1,A2,…,Am)は、A1,A2,…,Am
から一つずつ文節を選んでできるあらゆる文節列上のあ
らゆる構文の全体である。
xm)}と定義する。KB(A1,A2,…,Am)は、A1,A2,…,Am
から一つずつ文節を選んでできるあらゆる文節列上のあ
らゆる構文の全体である。
[D5](1)整数列i,i+1,…,jのm分割とは、 i−1=s0<s1<s2<…<sm=j を満たす整数の組(s0,s1,s2,…,sm)をいう。
(2)整数列i,i+1,…,jのm分割の全体をDm(i,j)と
書く: Dm(i,j)={(s0,s1,s2,…,sm)|i−1=s0<s1<s2
<…<sm=j} (3)更に、整数列i,i+1,…,jの分割の全体D(i,j)
を、次のように定義する。
書く: Dm(i,j)={(s0,s1,s2,…,sm)|i−1=s0<s1<s2
<…<sm=j} (3)更に、整数列i,i+1,…,jの分割の全体D(i,j)
を、次のように定義する。
D(i,j)=∪(1≦m≦j−i+1)[Dm(i,j)] さて、次の状況を考える: [J1]1から自然数Nまでの仮名文字位置を考え、各i,
j(1≦i≦j≦N)に対してiを仮名表記始端位置、
jを仮名表記終端位置とする文節の集合B(i,j)が与
えられている。また、各文節xに対して、非負の実数値
S(x)が定められている。
j(1≦i≦j≦N)に対してiを仮名表記始端位置、
jを仮名表記終端位置とする文節の集合B(i,j)が与
えられている。また、各文節xに対して、非負の実数値
S(x)が定められている。
同じ文節でも仮名表記始端位置あるいは仮名表記終端位
置が異なれば、別の文節として取り扱う。
置が異なれば、別の文節として取り扱う。
上記のB(i,j),(1≦i≦j≦N)全体を文節ラテ
ィスという。べた書き入力仮名漢字返換方式日本語ワー
ドプロセッサを例にとると、仮名文字列a1a2…aNが与え
られたとき、B(i,j)はその部分列aiai+1…ajを仮名
表記として持つ文節の全体である。S(x)は、単語の
使用頻度などの情報から定まる、文節xの確実度を表わ
す数値で、0に近いほど確実度が高いとしておく。ま
た、連続音声認識を例にとれば、B(i,j)は仮名文字
位置i,jをそれぞれ始端位置、終端位置とする区間の認
識結果候補として装置が出力する文節の集合である。こ
の場合、S(x)は認識装置が、xという認識結果をど
の程度の確からしさで認識したかという確実度を示す数
値であり、大抵の音声認識装置はそのような数値を認識
結果と共に出力するようになっている。いずれの場合
も、仮名文字位置i,jを始端,終端とする文節が存在し
ないことがあるので、B(i,j)は空集合になりうる。
この場合も特別な取扱いをしなくて済むように、B(i,
j)が空集合のときはダミー文節を加えておき、ダミー
文節に対するSの値は∞と約束しておく。また、xある
いはyの少なくとも一方がダミー文節のとき、PEN(x,
y)の値も∞と約束しておく。
ィスという。べた書き入力仮名漢字返換方式日本語ワー
ドプロセッサを例にとると、仮名文字列a1a2…aNが与え
られたとき、B(i,j)はその部分列aiai+1…ajを仮名
表記として持つ文節の全体である。S(x)は、単語の
使用頻度などの情報から定まる、文節xの確実度を表わ
す数値で、0に近いほど確実度が高いとしておく。ま
た、連続音声認識を例にとれば、B(i,j)は仮名文字
位置i,jをそれぞれ始端位置、終端位置とする区間の認
識結果候補として装置が出力する文節の集合である。こ
の場合、S(x)は認識装置が、xという認識結果をど
の程度の確からしさで認識したかという確実度を示す数
値であり、大抵の音声認識装置はそのような数値を認識
結果と共に出力するようになっている。いずれの場合
も、仮名文字位置i,jを始端,終端とする文節が存在し
ないことがあるので、B(i,j)は空集合になりうる。
この場合も特別な取扱いをしなくて済むように、B(i,
j)が空集合のときはダミー文節を加えておき、ダミー
文節に対するSの値は∞と約束しておく。また、xある
いはyの少なくとも一方がダミー文節のとき、PEN(x,
y)の値も∞と約束しておく。
また、Sを構文にも適用できるよう拡張しておく。すな
わち、X∈K(xixi+1…xj)に対して S(X)=Σ(i≦m≦j)[S(xm)] と定義する。
わち、X∈K(xixi+1…xj)に対して S(X)=Σ(i≦m≦j)[S(xm)] と定義する。
このような状況のもとで、本発明が取扱う問題は次のよ
うに述べることができる。仮名文字位置1,2,…,Nを固定
し、その分割 (s0,s1,s2,…,sm)∈D(1,N) を一つ選ぶ。この分割に対応して、文節の集合列 B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,sm) が定まる。各文節集合B(sk-1+1,sk)から文節xkを一
つずつ選ぶと、その上の構文の全体 K(x1x2…xm) が定まる。K(x1x2…xm)の中から構文Xを一つ選ぶ
と、その適格度と確実度の和 P(X)+S(X) が定まる。そこで、上記の分割、文節、および構文を可
能な範囲で全て動かし、P(X)+S(X)を最小にす
るような分割、文節、および構文を選択する。すなわ
ち、 min((s0,s1,s2,…,sm)∈D(1,N)) [min(x1∈B(s0+1,s1),x2∈B(s1+1,s2),…, xm∈B(sm-1+1,sm))[min(X∈K(x1x2…xm)) [P(X)+S(X)]]] を達成するような各変数の値と、それに対する最小値を
求めるというのが、ここでの問題である。
うに述べることができる。仮名文字位置1,2,…,Nを固定
し、その分割 (s0,s1,s2,…,sm)∈D(1,N) を一つ選ぶ。この分割に対応して、文節の集合列 B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,sm) が定まる。各文節集合B(sk-1+1,sk)から文節xkを一
つずつ選ぶと、その上の構文の全体 K(x1x2…xm) が定まる。K(x1x2…xm)の中から構文Xを一つ選ぶ
と、その適格度と確実度の和 P(X)+S(X) が定まる。そこで、上記の分割、文節、および構文を可
能な範囲で全て動かし、P(X)+S(X)を最小にす
るような分割、文節、および構文を選択する。すなわ
ち、 min((s0,s1,s2,…,sm)∈D(1,N)) [min(x1∈B(s0+1,s1),x2∈B(s1+1,s2),…, xm∈B(sm-1+1,sm))[min(X∈K(x1x2…xm)) [P(X)+S(X)]]] を達成するような各変数の値と、それに対する最小値を
求めるというのが、ここでの問題である。
最適文節列を選ぶためには、文節列の日本語の文あるい
は句としての適格性を考慮しなければならないので、結
局は上記のように最適な構文をも求める問題になる。逆
に最適な構文が求まれば、それを構成する文節列は定ま
るので、 min((s0,s1,s2,…,sm)∈D(1,N)) min(x1∈B(s0+1,s1),x2∈B(s1+1,s2),…, xm∈B(sm-1+1,sm))min(X∈K(x1x2…xm)) [P(X)+S(X)] =min(X∈∪((s0,s1,s2,…,sm)∈D(1,N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,
sm))]) [P(X)+S(X)] に注意して、上の問題を、次のように構文を変数とする
問題として書き直す。
は句としての適格性を考慮しなければならないので、結
局は上記のように最適な構文をも求める問題になる。逆
に最適な構文が求まれば、それを構成する文節列は定ま
るので、 min((s0,s1,s2,…,sm)∈D(1,N)) min(x1∈B(s0+1,s1),x2∈B(s1+1,s2),…, xm∈B(sm-1+1,sm))min(X∈K(x1x2…xm)) [P(X)+S(X)] =min(X∈∪((s0,s1,s2,…,sm)∈D(1,N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,
sm))]) [P(X)+S(X)] に注意して、上の問題を、次のように構文を変数とする
問題として書き直す。
[P1] (1) min(X∈∪((s0,s1,s2,…,sm)∈D(1,
N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,
sm))]) [P(X)+S(X)] と (2) argmin(X∈∪((s0,s1,s2,…,sm)∈ D(1,N))[KB(B(s0+1,s1),B(s1+1,s2),
…, B(sm-1+1,sm))])[P(X)+S(X)] を求めよ。
N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,
sm))]) [P(X)+S(X)] と (2) argmin(X∈∪((s0,s1,s2,…,sm)∈ D(1,N))[KB(B(s0+1,s1),B(s1+1,s2),
…, B(sm-1+1,sm))])[P(X)+S(X)] を求めよ。
従来、この問題を解こうとすれば枚挙法、すなわち、集
合 ∪((s0,s1,s2,…,sm)∈D(1,N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,
sm))]) の全ての元Xに対してP(X)+S(X)を逐一計算
し、最小値を与えるXとそれに対する最小値を求めなけ
ればならなかった。枚挙法によると、各B(i,j)の文
節数をJ、全体の仮名文字列長さをNとするとき、必要
な加算演算回路数は、 Σ(1≦j≦N)N-1Cj-1・Jj・L(j)・(2j−1) または比較演算回数は Σ(1≦j≦N)N-1Cj-1・Jj・L(j) ま与えられる。ここで、N-1Cj-1は2項係数、また、L
(j)は長さjの文節列上の構文の数であり、 で計算することができる。
合 ∪((s0,s1,s2,…,sm)∈D(1,N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sm-1+1,
sm))]) の全ての元Xに対してP(X)+S(X)を逐一計算
し、最小値を与えるXとそれに対する最小値を求めなけ
ればならなかった。枚挙法によると、各B(i,j)の文
節数をJ、全体の仮名文字列長さをNとするとき、必要
な加算演算回路数は、 Σ(1≦j≦N)N-1Cj-1・Jj・L(j)・(2j−1) または比較演算回数は Σ(1≦j≦N)N-1Cj-1・Jj・L(j) ま与えられる。ここで、N-1Cj-1は2項係数、また、L
(j)は長さjの文節列上の構文の数であり、 で計算することができる。
上式をいくつかのJおよびNについて計算したものを第
1表に示す。これから分かるように、枚挙法において
は、計算量が文字列長に対して指数関数的に増加して、
たちまち膨大なものになるので、これを実際問題に適用
することは極めて困難であった。そこで、本発明の目的
は、このような従来技術の欠点を改善し、計算量が文字
列長および、各文節集合の元の数に関して多項式のオー
ダーであるような、従来法と比較して格段に効率の良い
言語処理法を提供することにある。
1表に示す。これから分かるように、枚挙法において
は、計算量が文字列長に対して指数関数的に増加して、
たちまち膨大なものになるので、これを実際問題に適用
することは極めて困難であった。そこで、本発明の目的
は、このような従来技術の欠点を改善し、計算量が文字
列長および、各文節集合の元の数に関して多項式のオー
ダーであるような、従来法と比較して格段に効率の良い
言語処理法を提供することにある。
[問題点を解決するための手段] (5−1)基本的な再帰方程式 本発明の構成について説明するにあたり、本発明におい
て基本的な役割を果たす再帰方程式について述べる。ま
ず、次の定義を設ける。
て基本的な役割を果たす再帰方程式について述べる。ま
ず、次の定義を設ける。
[D6]自然数Nを固定し、1≦i≦m≦j≦N,X∈B
(m,j)に対して (1)OPTPS(i,j,m,x) =min(X∈∪((s0,s1,s2,…,sm)∈D(1,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})])[P(X)+S(X)] 但し、m=iのときはD(i,m−1)が定義されていな
いが ∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x}]=KB({x}) と約束しておく。
(m,j)に対して (1)OPTPS(i,j,m,x) =min(X∈∪((s0,s1,s2,…,sm)∈D(1,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})])[P(X)+S(X)] 但し、m=iのときはD(i,m−1)が定義されていな
いが ∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x}]=KB({x}) と約束しておく。
(2)OPTKS(i,j,m,x) =argmin(X∈∪(s0,s1,s2,…,sp)∈D(i,m−
1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})])[P(X)+S(X)] 上記(2)において、P(X)+S(X)を最小にする
Xは一般に複数個あるので、OPTKS(i,j,m,x)は集合と
なる。
1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})])[P(X)+S(X)] 上記(2)において、P(X)+S(X)を最小にする
Xは一般に複数個あるので、OPTKS(i,j,m,x)は集合と
なる。
本発明において基本的な役割を果たすのは、OPTPSとOPT
KSが満たす次の2つの再帰方程式[T1],[T2]であ
る。
KSが満たす次の2つの再帰方程式[T1],[T2]であ
る。
[T1]1≦i≦m≦N,x∈B(m,j)に対して (1)i=mのとき OPTPS(i,j,m,x)=S(x) (2)i<mのとき OPTPS(i,j,m,x) =min(i≦n≦k≦m−1)[min(y∈B(n,k)) [OPTPS(i,k,n,y)+OPTPS(k+1,j,m,x)+PEN(y,
x)] [T2]1≦i≦m≦j≦N,X∈B(m,j)に対して (1)i=mのとき OPTKS(i,j,m,x)={(x)} (2)i<mのとき、[T1]の(2)で最小値を与える
n,k,yの組(n,k,y)の集合を KTS(i,j,m,x) と書くと OPTKS(i,j,m,x) =∪(n,k,y)∈KTS(i,j,m,x)) [{XY|X∈OPTKS(i,k,n,y), Y∈OPTKS(k+1,j,m,x)}] 以下、これらの再帰方程式が成立することを説明する。
そのために、まず、次の[E3]を示す。
x)] [T2]1≦i≦m≦j≦N,X∈B(m,j)に対して (1)i=mのとき OPTKS(i,j,m,x)={(x)} (2)i<mのとき、[T1]の(2)で最小値を与える
n,k,yの組(n,k,y)の集合を KTS(i,j,m,x) と書くと OPTKS(i,j,m,x) =∪(n,k,y)∈KTS(i,j,m,x)) [{XY|X∈OPTKS(i,k,n,y), Y∈OPTKS(k+1,j,m,x)}] 以下、これらの再帰方程式が成立することを説明する。
そのために、まず、次の[E3]を示す。
[E3] ∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})] =∪(i≦n≦k≦m−1)∪(y∈B(n,k)) {YX|Y∈∪((u0,u1,u2…uq)∈D(i,n−1)) [KB(B(u0+1,u1),B(u1+1,u2),…,B(uq-1+1,
uq), {y})],X∈∪((v0,v1,v2…,vr)∈D(k+1,m+
1))KB (B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,v
r), {x})} これは次のようにして示される。
sp), {x})] =∪(i≦n≦k≦m−1)∪(y∈B(n,k)) {YX|Y∈∪((u0,u1,u2…uq)∈D(i,n−1)) [KB(B(u0+1,u1),B(u1+1,u2),…,B(uq-1+1,
uq), {y})],X∈∪((v0,v1,v2…,vr)∈D(k+1,m+
1))KB (B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,v
r), {x})} これは次のようにして示される。
Z∈∪(s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})] とする。そうすると、(s0,s1,s2,…,sp)∈D(i,m−
1))と、x1∈B(s0+1,s1),x2∈B(s1+1,s2),
…,xp∈B(sp-1+1,sp)が存在して、 Z∈K(x1x2…xpx) が成り立つ。[E2]により、1≦t≦pとY∈K(x1x2
…xt),X∈K(xt+1xt+2…xpx) が存在してZは Z=YX, と書ける。
sp), {x})] とする。そうすると、(s0,s1,s2,…,sp)∈D(i,m−
1))と、x1∈B(s0+1,s1),x2∈B(s1+1,s2),
…,xp∈B(sp-1+1,sp)が存在して、 Z∈K(x1x2…xpx) が成り立つ。[E2]により、1≦t≦pとY∈K(x1x2
…xt),X∈K(xt+1xt+2…xpx) が存在してZは Z=YX, と書ける。
n=st-1+1,k=st,y=xt とおくと i≦n≦k≦m−1,y_∈B(n,k), Y∈∪((u0,u1,u2…,uq)∈D(i,n−1)) [KB(B(u0+1,u1),B(u1+1,u2),…,B(uq+1+1,
uq), {y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m+1) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})] 従って、 Z∈∪(i≦n≦k≦m−1)∪(y∈B(n,k))
{YX| Y∈∪((u0,u1,u2…,uq)∈D(i,n−1))[KB(B
(u0+1, u1),B(u1+1,u2),…,B(uq-1+1,uq),
{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m+1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr),{x})} となり、左辺は右辺に含まれることが分かる。右辺が左
辺に含まれることを同様にして示される。
uq), {y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m+1) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})] 従って、 Z∈∪(i≦n≦k≦m−1)∪(y∈B(n,k))
{YX| Y∈∪((u0,u1,u2…,uq)∈D(i,n−1))[KB(B
(u0+1, u1),B(u1+1,u2),…,B(uq-1+1,uq),
{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m+1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr),{x})} となり、左辺は右辺に含まれることが分かる。右辺が左
辺に含まれることを同様にして示される。
次に、[E3]を用いて、[T1]を示す。
OPTPS(i,j,m,x) =min(Z∈∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})])[P(Z)+S(Z)] (定義による) =min(i≦n≦k≦m−1)min(y∈B(n,k))min
{Y∈∪ ((u0,u1,u2…,uq)∈D(i,n−1))[KB(B(u0+
1,u1),B (u1+1,u2),…,B(uq-1+1,uq),{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m−1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})])[P(YX)+S(YX)] (E3による) =min(i≦n≦k≦m−1)min(y∈B(n,k))min
{Y∈∪ ((u0,u1,u2…,uq)∈D(i,n−1))[KB(B(u0+
1,u1),B (u1+1,u2),…,B(uq-1+1,uq),{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m−1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})])[P(Y)+P(X)+PEN(y,x)+S
(Y)+S(X)] (E1による) =min(i≦n≦k≦m−1)[min(y∈B(n,k)) [OPTPS(i,k,n,y)+OPTPS(k+1,j,m,x)+PEN(y,
x)] これで[T1]が示された。次に[T2]を示す。(1)は
定義から明らかであるので(2)を示す。まず、 X∈∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})] に対して、 X∈OPTKS(i,j,m,x)と(P(X)+S(X)=OPTPS
(i,j,m,x))は同値であることに注意しておく。
sp), {x})])[P(Z)+S(Z)] (定義による) =min(i≦n≦k≦m−1)min(y∈B(n,k))min
{Y∈∪ ((u0,u1,u2…,uq)∈D(i,n−1))[KB(B(u0+
1,u1),B (u1+1,u2),…,B(uq-1+1,uq),{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m−1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})])[P(YX)+S(YX)] (E3による) =min(i≦n≦k≦m−1)min(y∈B(n,k))min
{Y∈∪ ((u0,u1,u2…,uq)∈D(i,n−1))[KB(B(u0+
1,u1),B (u1+1,u2),…,B(uq-1+1,uq),{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m−1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})])[P(Y)+P(X)+PEN(y,x)+S
(Y)+S(X)] (E1による) =min(i≦n≦k≦m−1)[min(y∈B(n,k)) [OPTPS(i,k,n,y)+OPTPS(k+1,j,m,x)+PEN(y,
x)] これで[T1]が示された。次に[T2]を示す。(1)は
定義から明らかであるので(2)を示す。まず、 X∈∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})] に対して、 X∈OPTKS(i,j,m,x)と(P(X)+S(X)=OPTPS
(i,j,m,x))は同値であることに注意しておく。
さて、(2)を示すには、 (a)OPTKS(i,j,m,x) ⊃∪((n,k,y)∈KTS(i,j,m,x)) [{YX|Y∈OPTKS(i,k,n,y), X∈OPTKS(k+1,j,m,x)}] (b)OPTKS(i,j,m,x) ⊂∪((n,k,y)∈KTS(i,j,m,x)) [{YX|Y∈OPTKS(i,k,n,y), X∈OPTKS(k+1,j,m,x)}] の2つを示せばよい。(a)は次のように示される。
Z∈∪((n,k,y)∈KTS(i,j,m,x)) [{YX|Y∈OPTKS(i,k,n,y), X∈OPTKS(k+1,j,m,x)}] とすれば、 (n,k,y)∈KTS(i,j,m,x), Y∈OPTKS(i,k,n,y), X∈OPTKS(k+1,j,m,x) が存在して Z=YX と書ける。当然、 Z∈∪(s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})] であり、 P(Z)+S(Z) =P(YX)+S(YX) =P(Y)+P(X)+PEN(y,x)+K(Y)+S
(x) =P(Y)+S(Y)+P(X)+S(X)+PEN(y,
x) =OPTPS(i,k,n,y)+OPTPS(k+1,j,m,x)+PEN(y,
x) =OPTPS(i,j,m,x) 従って、 Z∈OPTKS(i,j,m,x) (b)は次のように示される。
sp), {x})] であり、 P(Z)+S(Z) =P(YX)+S(YX) =P(Y)+P(X)+PEN(y,x)+K(Y)+S
(x) =P(Y)+S(Y)+P(X)+S(X)+PEN(y,
x) =OPTPS(i,k,n,y)+OPTPS(k+1,j,m,x)+PEN(y,
x) =OPTPS(i,j,m,x) 従って、 Z∈OPTKS(i,j,m,x) (b)は次のように示される。
Z∈OPTKS(i,j,m,x)とする。
Z∈∪((s0,s1,s2,…,sp)∈D(i,m−1)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(sp-1+1,
sp), {x})] であるから、[E3]により i≦n≦k≦m−1,y∈B(n,k), Y∈∪((u0,u1,u2…,uq)∈D(i,n−1))[KB(B
(u0+1, u1),B(u1+1,u2),…,B(uq-1+1,uq),
{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m−1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})] が存在して、 Z=YX と書ける。ところが、 P(Z)+S(Z)=P(Y)+P(X)+S(Y)+
S(X)+PEN(y,z) であり、Zは左辺を最小とするから、YとXも右辺を最
小にしなければならない。従って、[T1]の証明から分
るように、 (n,k,y)∈KTS(i,j,m,x) Y∈OPTKS(i,k,n,y),E∈OPTKS(k+1,j,m,x)}] よって Z∈∪((n,k,y)∈=KTS(i,j,m,x)) [{xY|X∈=OPTKS(i,k,n,y), Y∈OPTKS(k+1,j,m,x)}] これで[T2]が示された。
sp), {x})] であるから、[E3]により i≦n≦k≦m−1,y∈B(n,k), Y∈∪((u0,u1,u2…,uq)∈D(i,n−1))[KB(B
(u0+1, u1),B(u1+1,u2),…,B(uq-1+1,uq),
{y})], X∈∪((v0,v1,v2…,vr)∈D(k+1,m−1)) [KB(B(v0+1,v1),B(v1+1,v2),…,B(vr-1+1,
vr), {x})] が存在して、 Z=YX と書ける。ところが、 P(Z)+S(Z)=P(Y)+P(X)+S(Y)+
S(X)+PEN(y,z) であり、Zは左辺を最小とするから、YとXも右辺を最
小にしなければならない。従って、[T1]の証明から分
るように、 (n,k,y)∈KTS(i,j,m,x) Y∈OPTKS(i,k,n,y),E∈OPTKS(k+1,j,m,x)}] よって Z∈∪((n,k,y)∈=KTS(i,j,m,x)) [{xY|X∈=OPTKS(i,k,n,y), Y∈OPTKS(k+1,j,m,x)}] これで[T2]が示された。
OPTPS(i,j,m,x)は4つの変数i,j,m,xを持っている。
しかし、mは文節xの始端位置であり、xを定めれば、
自動的に定まる。そこで、 [D7] (1)I(x)=(文節xの始端位置) (2)B(i,j)=∪(i≦k≦j)B(k,j) (3)x∈B(i,j)に対して OPT(i,j,x)=OPTPS(i,j,I(x),x) と定義すると、[T1]は次のように書き直すことができ
る。
しかし、mは文節xの始端位置であり、xを定めれば、
自動的に定まる。そこで、 [D7] (1)I(x)=(文節xの始端位置) (2)B(i,j)=∪(i≦k≦j)B(k,j) (3)x∈B(i,j)に対して OPT(i,j,x)=OPTPS(i,j,I(x),x) と定義すると、[T1]は次のように書き直すことができ
る。
[T1′]1≦i≦j≦N,x∈B(i,j)に対して (1)i=I(x)のとき OPT(i,j,x)=S(x) (2)i<I(x)のとき OPT(i,j,x) =min(i≦k≦I(x)−1)[min(y∈B(i,
k)) [OPT(i,k,y)+OPT(k+1,j,x)+PEN(y,x)] また、OPTKSについても同様に [D8]1≦i≦j≦N,x∈B(i,k)に対して OPTK(i,j,k)=OPTKS(i,j,I(x),x) と定義を直し、 [D9][T1′](2)において最小値を与えるk,yの組
(k,y)の集合を、 KT(i,j,x) と書くと、[T2]も次のように書き直すことができる。
k)) [OPT(i,k,y)+OPT(k+1,j,x)+PEN(y,x)] また、OPTKSについても同様に [D8]1≦i≦j≦N,x∈B(i,k)に対して OPTK(i,j,k)=OPTKS(i,j,I(x),x) と定義を直し、 [D9][T1′](2)において最小値を与えるk,yの組
(k,y)の集合を、 KT(i,j,x) と書くと、[T2]も次のように書き直すことができる。
[T2′]1≦i≦j≦N,x∈B(i,k)に対して (1)i=Iのとき OPTK(i,j,x)={(x)} (2)i<I(x)のとき、 OPTK(i,j,x) =∪((k,y)∈KT(i,j,x)) [{YX|Y∈OPTK(i,k,y), X∈OPTK(k+1,j,x)}] KT(i,j,x)の元(k,y)について、kを、i,j,xに対す
る最適区分点、yを最適文節という。
る最適区分点、yを最適文節という。
(5−2)OPTおよび最適区分点と最適文節の組の決定
法 [T1′](1)はI(x)=iのとき、OPT(i,j,x)の
値がS(x)として定まること、また、[T1′](2)
は、I(x)>iのとき、OPT(i,k,y)とOPT(k+1,
j,x),(i≦k≦I(x)−1,y∈B(i,k)がすでに
計画されていれば、1変数関数の最小化問題を2回解く
ことによりOPT(i,j,x)が計算できることを示してい
る。これらの事実を用いると、j−1が0部分からOPT
(i,j,x)の計算を始めて、順次j−iがより大きいOPT
(i,j,x)、(1≦i≦j≦N,x∈B(i,k))へと計算
を進め、それと同時に最適区分点と最適文節の組を決定
して行くことができる。OPT(1,N,x)、(x∈B(i,
k))が計算されたとき、OPTおよび、最適区分点と最適
文節の組の計算が終了する。
法 [T1′](1)はI(x)=iのとき、OPT(i,j,x)の
値がS(x)として定まること、また、[T1′](2)
は、I(x)>iのとき、OPT(i,k,y)とOPT(k+1,
j,x),(i≦k≦I(x)−1,y∈B(i,k)がすでに
計画されていれば、1変数関数の最小化問題を2回解く
ことによりOPT(i,j,x)が計算できることを示してい
る。これらの事実を用いると、j−1が0部分からOPT
(i,j,x)の計算を始めて、順次j−iがより大きいOPT
(i,j,x)、(1≦i≦j≦N,x∈B(i,k))へと計算
を進め、それと同時に最適区分点と最適文節の組を決定
して行くことができる。OPT(1,N,x)、(x∈B(i,
k))が計算されたとき、OPTおよび、最適区分点と最適
文節の組の計算が終了する。
(5−3)最適構文の計算法 簡単のために、最適区分点と最適文節の組が常に一意的
に定まる場合について説明する。
に定まる場合について説明する。
このとき、OPTK(i,j,x)はただ一つの構文に等しい。
先ず、 min(X∈∪(s0,s1,s2,…,sm)∈D(1,N)) [KB(B(s0+1,s1),B(s1+1,s2),…,B(Sm-1+1,
sm))]) [P(X)+S(X)] =min(x∈B(1,N))[OPT(1,N,x)] であるから、この右辺を計算することにより、最適な文
節列上の最適な構文に対する適格度が計算される。ま
た、 x0=argmin(x∈B(1,N))[OPT(1,N,x)] とすれば、最適文節列とその上の最適構文は、 OPTK(1,N,x0) で与えられる。これをさらに具体的に計算するには次の
ようにすればよい。もし、I(x0)=1ならば、[T
2′]の(1)によって OPTK(1,N,x0)=(x0) であるから、これにより最適構文が決定される。
sm))]) [P(X)+S(X)] =min(x∈B(1,N))[OPT(1,N,x)] であるから、この右辺を計算することにより、最適な文
節列上の最適な構文に対する適格度が計算される。ま
た、 x0=argmin(x∈B(1,N))[OPT(1,N,x)] とすれば、最適文節列とその上の最適構文は、 OPTK(1,N,x0) で与えられる。これをさらに具体的に計算するには次の
ようにすればよい。もし、I(x0)=1ならば、[T
2′]の(1)によって OPTK(1,N,x0)=(x0) であるから、これにより最適構文が決定される。
I(x0)≠ならば、1,N,x0に対する最適区分点と最適文
節番号の組をそれぞれ(k1,x1)とすれば、[T2′]の
(2)によって OPTK(1,N,x0) =OPTK(1,k1,x1)OPTK(k1+1,N,x0) が成り立つ。もし、I(x1)≠1ならば、さらにOPTK
(1,k1,x)は1,k1,xに対する最適区分点k2と最適文節x2
を用いて、 OPTK(1,k1,x1) =OPTK(1,k2,x2)OPTK(k2+1,k1,x1) と分解できる。OPTK(k1+1,N,x0)についてもI(x0)
≠k1+1ならば同様にして、k1+1,N,x0に対する最適区
分点k3、最適文節x3を用いて OPTK(k1+1,N,x0 =OPTK(k1+1,k3,x3)OPTK(k3+1,N,x0) と分解できる。したがって、 OPTK(1,N,x0) =(OPTK(1,k2,x2)OPTK(k2+1,N,x1)) (OPTK(k1+1,k3,x3)OPTK(k3+1,N,x0)) このような分解操作を、出現するOPTK(i,j,x)の全て
においてI(x)=iになるまで行い、I(x)=iに
なったところで[T2′]の(1)を用いて、ただ一つの
文節からなる構文に置き換え、分解の逆をたどって挿入
操作を行えば、最適な文節列と、その文節列の上の最適
な構文が同時に得られる。
節番号の組をそれぞれ(k1,x1)とすれば、[T2′]の
(2)によって OPTK(1,N,x0) =OPTK(1,k1,x1)OPTK(k1+1,N,x0) が成り立つ。もし、I(x1)≠1ならば、さらにOPTK
(1,k1,x)は1,k1,xに対する最適区分点k2と最適文節x2
を用いて、 OPTK(1,k1,x1) =OPTK(1,k2,x2)OPTK(k2+1,k1,x1) と分解できる。OPTK(k1+1,N,x0)についてもI(x0)
≠k1+1ならば同様にして、k1+1,N,x0に対する最適区
分点k3、最適文節x3を用いて OPTK(k1+1,N,x0 =OPTK(k1+1,k3,x3)OPTK(k3+1,N,x0) と分解できる。したがって、 OPTK(1,N,x0) =(OPTK(1,k2,x2)OPTK(k2+1,N,x1)) (OPTK(k1+1,k3,x3)OPTK(k3+1,N,x0)) このような分解操作を、出現するOPTK(i,j,x)の全て
においてI(x)=iになるまで行い、I(x)=iに
なったところで[T2′]の(1)を用いて、ただ一つの
文節からなる構文に置き換え、分解の逆をたどって挿入
操作を行えば、最適な文節列と、その文節列の上の最適
な構文が同時に得られる。
最適区分点と最適文節の組が複数個存在するときは、そ
れらの組すべてについて同様の操作を行い、構成された
構文すべてをOPTK(1,N,x0)の元とすればよい。
れらの組すべてについて同様の操作を行い、構成された
構文すべてをOPTK(1,N,x0)の元とすればよい。
このように、本発明は、1からNまでの自然数で決る仮
名文字位置と、仮名表記始端位置および仮名表記終端位
置が1からNまでの範囲内の様々な位置にある文節の集
合と、それら文節の確実度を表わす数値が与えられたと
き、2文節間の係り受けの整合度と各文節の確実度を表
わす数値の総和を最小化あるいは最大化するという最適
基準の下で、最初の文節の仮名表記始端位置が1に等し
く、最後の文節の仮名表記終端位置がNに等しく、か
つ、最終文節以外の文節の仮名表記終端位置に1を加え
た値が次の文節の仮名表記始端位置に等しいという条件
を満たすようにそれら文節を並べてできるあらゆる文節
列の中から、最適な文節列と、その文節列の最適構文、
およびその適格度を定める言語解析方式において、Nに
等しい行、列の数を持つ、2次元の上3角行列形の第1
表および第2表を用意し、第1表および第2表の各桝目
を、仮名表記終端位置がその列番号に等しく、かつ仮名
表記始端位置がその行番号以上であるような文節の数だ
けの項に分割して、第1表および第2表を3次元化し、
仮名表記始端位置が自然数i以上であり、かつ仮名表記
終端位置が自然数jであるような文節集合中のq番目の
文節について、その仮名表記始端位置がiに等しいとき
には第1表の第i行,第j列、第q項にその文節の確実
度を格納し、自然数kがiから始まって、仮名表記始端
位置がi以上で、かつ仮名表記終端位置がjに等しいよ
うな文節の集合中の第q番目の文節の仮名表記始端位置
より1を減じた値までを動くとき、第1表の第i行,第
k列の各項と、第1表の第k+1行,第j列,第q項に
計算済みの値を格納し、その格納がなされたならば、計
算済みの、第1表の第i行,第k列,第p項の値と、第
1表の第k+1行,第j列,第q項の値と、仮名表記始
端位置がi以上であり、かつ仮名表記終端位置がkであ
るような文節集合中の第p番目の文節が、仮名表記始端
位置がi以上で、かつ仮名表記終端位置がjであるよう
な文節集合中の第q番目の文節に係ることの整合度を加
算し、その加算結果のkおよびpに関する最小値または
最大値を第1表の第i行,第j列,第q項に格納し、最
小値または最大値を与える最適区分点であるところのk
および最適文節番号であるところのpの値の組を第2表
の第i行,第i列,第q項に格納し、第1表および第2
表を順次計算済みの値で埋めて行き、第1表および第2
表の第1行,第N列の各項に計算済みの値が格納される
に至ったときに、第1表の第1行,第N列の各項の中の
最小値または最大値を求めることにより最終的な適格度
と、最終文節の文節番号を得ると共に、最適構文を構成
するために必要な最適区分点および最適文節番号の組の
全体を第2表に得ることを特徴とする。
名文字位置と、仮名表記始端位置および仮名表記終端位
置が1からNまでの範囲内の様々な位置にある文節の集
合と、それら文節の確実度を表わす数値が与えられたと
き、2文節間の係り受けの整合度と各文節の確実度を表
わす数値の総和を最小化あるいは最大化するという最適
基準の下で、最初の文節の仮名表記始端位置が1に等し
く、最後の文節の仮名表記終端位置がNに等しく、か
つ、最終文節以外の文節の仮名表記終端位置に1を加え
た値が次の文節の仮名表記始端位置に等しいという条件
を満たすようにそれら文節を並べてできるあらゆる文節
列の中から、最適な文節列と、その文節列の最適構文、
およびその適格度を定める言語解析方式において、Nに
等しい行、列の数を持つ、2次元の上3角行列形の第1
表および第2表を用意し、第1表および第2表の各桝目
を、仮名表記終端位置がその列番号に等しく、かつ仮名
表記始端位置がその行番号以上であるような文節の数だ
けの項に分割して、第1表および第2表を3次元化し、
仮名表記始端位置が自然数i以上であり、かつ仮名表記
終端位置が自然数jであるような文節集合中のq番目の
文節について、その仮名表記始端位置がiに等しいとき
には第1表の第i行,第j列、第q項にその文節の確実
度を格納し、自然数kがiから始まって、仮名表記始端
位置がi以上で、かつ仮名表記終端位置がjに等しいよ
うな文節の集合中の第q番目の文節の仮名表記始端位置
より1を減じた値までを動くとき、第1表の第i行,第
k列の各項と、第1表の第k+1行,第j列,第q項に
計算済みの値を格納し、その格納がなされたならば、計
算済みの、第1表の第i行,第k列,第p項の値と、第
1表の第k+1行,第j列,第q項の値と、仮名表記始
端位置がi以上であり、かつ仮名表記終端位置がkであ
るような文節集合中の第p番目の文節が、仮名表記始端
位置がi以上で、かつ仮名表記終端位置がjであるよう
な文節集合中の第q番目の文節に係ることの整合度を加
算し、その加算結果のkおよびpに関する最小値または
最大値を第1表の第i行,第j列,第q項に格納し、最
小値または最大値を与える最適区分点であるところのk
および最適文節番号であるところのpの値の組を第2表
の第i行,第i列,第q項に格納し、第1表および第2
表を順次計算済みの値で埋めて行き、第1表および第2
表の第1行,第N列の各項に計算済みの値が格納される
に至ったときに、第1表の第1行,第N列の各項の中の
最小値または最大値を求めることにより最終的な適格度
と、最終文節の文節番号を得ると共に、最適構文を構成
するために必要な最適区分点および最適文節番号の組の
全体を第2表に得ることを特徴とする。
[作用] 本発明では、仮名表記始端および仮名表記終端が1から
ある自然数Nまでの範囲の様々な位置にある文節の集
合、すなわち文節ラティス、および、それら各文節の確
実度を示す数値が与えられたとき、2文節間の係り受け
の整合度と、各文節の確実度にもとずいて、上記文節ラ
ティスから最適な文節列を選び、その文節列に対する最
適な構文を決定し、かつその構文の適格度を計算するに
あたって、与えられた2つの自然数決る文字位置をそれ
ぞれ仮名表記始端位置および仮名表記終端位置とし、最
後の文節が固定された文節列の全体の中から、日本語の
句として最も適格度の高い文節列が選ばれ、それに対す
る構文、およびその構文に対する適格度が計算されたな
らば、それを記憶しておき、それを上記の始端および終
端で定まる仮名文字区間を含むような、より長い仮名文
字区間に対して同様の計算を行なう際に利用することに
より、部分的に同じ計算が繰り返し行なわれることを組
織的に避ける。従って、本発明の計算法を、与えられた
文節ラティスに適用することにより、可能な全文節列の
中から、日本語の句、あるいは文として最も適格度の高
い文節列、その上の構文、およびその構文に対する適格
度を、従来法に比べて格段に少ない計算量で計算するこ
とができる。
ある自然数Nまでの範囲の様々な位置にある文節の集
合、すなわち文節ラティス、および、それら各文節の確
実度を示す数値が与えられたとき、2文節間の係り受け
の整合度と、各文節の確実度にもとずいて、上記文節ラ
ティスから最適な文節列を選び、その文節列に対する最
適な構文を決定し、かつその構文の適格度を計算するに
あたって、与えられた2つの自然数決る文字位置をそれ
ぞれ仮名表記始端位置および仮名表記終端位置とし、最
後の文節が固定された文節列の全体の中から、日本語の
句として最も適格度の高い文節列が選ばれ、それに対す
る構文、およびその構文に対する適格度が計算されたな
らば、それを記憶しておき、それを上記の始端および終
端で定まる仮名文字区間を含むような、より長い仮名文
字区間に対して同様の計算を行なう際に利用することに
より、部分的に同じ計算が繰り返し行なわれることを組
織的に避ける。従って、本発明の計算法を、与えられた
文節ラティスに適用することにより、可能な全文節列の
中から、日本語の句、あるいは文として最も適格度の高
い文節列、その上の構文、およびその構文に対する適格
度を、従来法に比べて格段に少ない計算量で計算するこ
とができる。
本発明は、日本語を対象とする場合のみならず、韓国語
のように日本語と同様の文法構造を持つ外国語にも適用
できることは言うまでもない。
のように日本語と同様の文法構造を持つ外国語にも適用
できることは言うまでもない。
[実施例] 以下に図面を参照して本発明を詳細に説明する。
以下の説明において、仮名文字位置を1,2,…,Nとする。
文節集合B(i,j)の元の数を#(i,j)とし、B(i,
j)の元をxi,j,1,xi,j,2,…,xi,j,#(i,j)と表わす。
文節集合B(i,j)の元の数のi,jに関する最大値をMと
する。
文節集合B(i,j)の元の数を#(i,j)とし、B(i,
j)の元をxi,j,1,xi,j,2,…,xi,j,#(i,j)と表わす。
文節集合B(i,j)の元の数のi,jに関する最大値をMと
する。
本発明を実施する装置の一実施例を第1図に示す。
第1図において、SCは入力端子i1から入力される各文節
の確実度を表わす数値S(xi,j,q)を保持するRAM,BUF
は文節入力端子i2から入力される文節集合を保持するRA
Mなどによるバッファメモリである。例えば、本発明を
音声認識に用いるときには、認識装置から出力される文
節ラティスの各文節を端子i2から入力し、各文節に付随
した確実度を端子i1から入力する。また、本発明をべた
書き入力仮名漢字変換方式日本語ワードプロセッサに適
用するときには、与えられた仮名文字列a1,a2,…aNをま
ず従来技術で形態素解析し、部分文字列ai,ai+1,…,aj
を仮名表記として持つ文節候補を各i,j(1≦i≦j≦
N)について全て列挙し、それらを端子i2から入力す
る。その際、単語の使用頻度などから定まる、各文節の
確実度を端子i1から入力する。
の確実度を表わす数値S(xi,j,q)を保持するRAM,BUF
は文節入力端子i2から入力される文節集合を保持するRA
Mなどによるバッファメモリである。例えば、本発明を
音声認識に用いるときには、認識装置から出力される文
節ラティスの各文節を端子i2から入力し、各文節に付随
した確実度を端子i1から入力する。また、本発明をべた
書き入力仮名漢字変換方式日本語ワードプロセッサに適
用するときには、与えられた仮名文字列a1,a2,…aNをま
ず従来技術で形態素解析し、部分文字列ai,ai+1,…,aj
を仮名表記として持つ文節候補を各i,j(1≦i≦j≦
N)について全て列挙し、それらを端子i2から入力す
る。その際、単語の使用頻度などから定まる、各文節の
確実度を端子i1から入力する。
PEはバッファメモリBUFから読み出した2文節xとyの
間の係り受けの整合度PEN(x,y)を計算する装置であ
る。
間の係り受けの整合度PEN(x,y)を計算する装置であ
る。
T1およびT2は第2図(A)および(B)に示すフローチ
ャートのテーブルTABLE1およびTABLE2を実現するための
RAMである。
ャートのテーブルTABLE1およびTABLE2を実現するための
RAMである。
INITは文節xi,j,qの始端位置がiに等しいか否か、すな
わちI(xi,j,q)=iか否かを判定する文節始端位置検
出器である。
わちI(xi,j,q)=iか否かを判定する文節始端位置検
出器である。
SELは、文節xi,j,qの始端位置がiに等しいことを示す
信号をINITから受け取った時、SCに保持されているS
(xi,j,q)を選び出し、T1において実現されているTABL
E1(i,j,q)に書き込むデータ選択装置である。
信号をINITから受け取った時、SCに保持されているS
(xi,j,q)を選び出し、T1において実現されているTABL
E1(i,j,q)に書き込むデータ選択装置である。
ADD1はTABLE1(i,k,p)とPEN(xi,k,p,xi,j,q)とを加
算する加算器である。
算する加算器である。
MIN1は加算器ADD1の出力の、上記pを変化させた時の最
小値と、その最小値を与えるpを検出するための最小値
検出器である。
小値と、その最小値を与えるpを検出するための最小値
検出器である。
ADD2は最小値検出器MIN1の出力とTABLE1(k+1,j,q)
とを加算する加算器である。MIN2は加算器ADD2の出力の
上記kを変化させた時の最小値と、その最小値を与える
kを検出するための最小値検出器である。
とを加算する加算器である。MIN2は加算器ADD2の出力の
上記kを変化させた時の最小値と、その最小値を与える
kを検出するための最小値検出器である。
CONTはこれら各部の動作順序を制御するための制御装置
であって、例えば中央処理装置CPUと、各部の制御手順
を予め記憶しておくためのROMの形態のメモリMEM1およ
び作業用のRAMの形態のメモリMEM2を有する。01および0
2はRAM T1およびT2に書き込まれた結果をそれぞれ出力
する出力端子である。
であって、例えば中央処理装置CPUと、各部の制御手順
を予め記憶しておくためのROMの形態のメモリMEM1およ
び作業用のRAMの形態のメモリMEM2を有する。01および0
2はRAM T1およびT2に書き込まれた結果をそれぞれ出力
する出力端子である。
第2図(A)および(B)は、第1図示の実施例におけ
るメモリMEM1にあらかじめ格納しておく制御手順の一例
としての、最適文節列の上の最適構文の適格度、最適文
節列、およびその上の最適構文を定めるための最適区分
点と最適文節の組を順次求めるための手順を示すフロー
チャートである。以下、これについて説明する。
るメモリMEM1にあらかじめ格納しておく制御手順の一例
としての、最適文節列の上の最適構文の適格度、最適文
節列、およびその上の最適構文を定めるための最適区分
点と最適文節の組を順次求めるための手順を示すフロー
チャートである。以下、これについて説明する。
第2図(A)および(B)のフローチャートに付随し
て、第3図(A)および(B)に示すように、想定して
いる文字列の全長Nに等しい数の行および列、および文
節集合B(i,j)の元の数の最大値Mに等しい数の項を
持った2つの3次元テーブルTABLE1(i,j,q),TABLE2
(i,j,q)(1≦i≦j≦N,1≦q≦M)が必要である。
各テーブルの添字は左から順に行,列,項を表わす。TA
BLE1(i,j,q)はOPT(i,j,xi,j,q)の値を、またTABLE2
(i,j,q)はi,j,xi,j,qに対する最適区分点と最適文節
番号の組を記憶するためのものである。
て、第3図(A)および(B)に示すように、想定して
いる文字列の全長Nに等しい数の行および列、および文
節集合B(i,j)の元の数の最大値Mに等しい数の項を
持った2つの3次元テーブルTABLE1(i,j,q),TABLE2
(i,j,q)(1≦i≦j≦N,1≦q≦M)が必要である。
各テーブルの添字は左から順に行,列,項を表わす。TA
BLE1(i,j,q)はOPT(i,j,xi,j,q)の値を、またTABLE2
(i,j,q)はi,j,xi,j,qに対する最適区分点と最適文節
番号の組を記憶するためのものである。
第2図(A)および(B)のフローチャートにおいて、
ステップS1からS13において、各テーブルの列番号jを
1から始めてNまで1ずつ増加させ、各列に対して次の
処理を実行する。
ステップS1からS13において、各テーブルの列番号jを
1から始めてNまで1ずつ増加させ、各列に対して次の
処理を実行する。
ステップS2からS11において、iをjから始めて1まで
1ずつ減少させ、次の処理を実行する。
1ずつ減少させ、次の処理を実行する。
ステップS3からS9において、qを1から始めて#(i,
j)まで1ずつ増加させ、次の処理を実行する。
j)まで1ずつ増加させ、次の処理を実行する。
(1)ステップS4においてI(xi,j,q)=iと判定され
たならば、ステップS7において次のことを実行する。
たならば、ステップS7において次のことを実行する。
[F1]TABLE1(i,j,q):=S(xi,j,q) (2)ステップS4においてI(xi,j,q)>iと判定され
たならば、ステップS5において次の[F2]、またステッ
プS6において次の[F3]を実行する。
たならば、ステップS5において次の[F2]、またステッ
プS6において次の[F3]を実行する。
[F2]min(i≦k≦I(xi,j,q)−1)[min(1≦p
≦#(i,k)) [TABLE1(i,k,p)+PEN(xi,k,p,xi,j,q)] +TABLE1(k+1,j,q)] を求めて、それをTABLE1(i,j,q)に記憶する。[F3]
[F2]で最小値を与えるkとpの組(k,p)をTABLE2
(i,j,q)に記憶する。
≦#(i,k)) [TABLE1(i,k,p)+PEN(xi,k,p,xi,j,q)] +TABLE1(k+1,j,q)] を求めて、それをTABLE1(i,j,q)に記憶する。[F3]
[F2]で最小値を与えるkとpの組(k,p)をTABLE2
(i,j,q)に記憶する。
以上の処理により、TABLE1とTABLE2の各行,列,項に上
述の計算を施し、その結果を順次テーブルに書き込んで
行く。
述の計算を施し、その結果を順次テーブルに書き込んで
行く。
ステップS13においてj>Nとなったとき計算が終了
し、TABLE1(1,N,q)にはOPT(1,N,x1,N,q)、(1≦q
≦#(1,N))が記憶されている。また、TABLE2には最
適区分点と最適文節番号の情報が記憶されているので、
(5−2)項および(5−3)項で述べた方法により、
この情報から最適な文節列と最適構文を構成することが
できる。
し、TABLE1(1,N,q)にはOPT(1,N,x1,N,q)、(1≦q
≦#(1,N))が記憶されている。また、TABLE2には最
適区分点と最適文節番号の情報が記憶されているので、
(5−2)項および(5−3)項で述べた方法により、
この情報から最適な文節列と最適構文を構成することが
できる。
本発明を実際に使用するときには、第2図(A)および
(B)のフローチャートの他にTABLE2の情報から最適な
文節例とその上の最適な構文を構成する機構が必要であ
るが、本発明の主眼点はTABLE1およびTABLE2の内容を計
算するところにあるので、これらの情報から最適な文節
列およびその上の最適な構文を構成する機構については
上記の説明にとどめる。
(B)のフローチャートの他にTABLE2の情報から最適な
文節例とその上の最適な構文を構成する機構が必要であ
るが、本発明の主眼点はTABLE1およびTABLE2の内容を計
算するところにあるので、これらの情報から最適な文節
列およびその上の最適な構文を構成する機構については
上記の説明にとどめる。
但し、TABLE1およびTABLE2の内容が計算できていれば、
与えられた文節の集合から最適な文節列およびその上の
最適な構文を構成するために必要な計算の内で最も計算
量の多い部分はもはや終了していることに注意してお
く。
与えられた文節の集合から最適な文節列およびその上の
最適な構文を構成するために必要な計算の内で最も計算
量の多い部分はもはや終了していることに注意してお
く。
[F2]において最小値を与えるkおよびpの組が複数個
存在することがあるが、そのときには、TABLE2(i,j,
q)に複数個の数値の組が記憶できるようにしておき、
[F3]においてそれらを全てTABLE2(i,j,q)に記憶す
るようにすればよい。このように第2図(A)および
(B)のフローチャートを変更しても計算量には殆ど変
わりがない。
存在することがあるが、そのときには、TABLE2(i,j,
q)に複数個の数値の組が記憶できるようにしておき、
[F3]においてそれらを全てTABLE2(i,j,q)に記憶す
るようにすればよい。このように第2図(A)および
(B)のフローチャートを変更しても計算量には殆ど変
わりがない。
以上述べたように、本発明の特徴は、仮名文字位置i,j
に対応して与えられた文節の集合B(i,j)(=1≦i
≦N)から、最初の文節の仮名表記始端位置が1に等し
く、最後の文節の仮名表記終端位置がNに等しく、最終
文節以外の文節の仮名表記終端位置に1を加えたものが
それに続く文節の仮名表記始端位置に等しいという条件
を満たすように文節を選んでできるあらゆる文節列の中
で、最終文節x1,N,q∈B(1,N)を一つ固定したときの
最適な文節列とその上の最適な構文およびそれに対する
適格度を求めるに当たって、最初の文節の仮名表記始端
位置がiに等しく、最後の文節の仮名表記終端位置がj
に等しいという条件の下での上記と同様の最後の文節を
固定したときの最適な文節列とその上の最適な構文、お
よびその適格度を、j−iが小さいものから順次求めて
それを記憶しておき、しかも最初の文節の仮名表記始端
位置がiに等しく、最後の文節の仮名表記位置がjに等
しいという条件の下での上記の諸数値を求めるに当たっ
ては、k=i,…,I(xi,j,q)−1に対して既に求められ
記憶されている、最初の文節の仮名表記始端位置がiに
等しく、最後の文節の仮名表記終端位置がkに等しいと
いう条件の下での上記の諸数値、最初の文節の仮名表記
始端位置がk+1に等しく、最後の文節の仮名表記終端
位置がjに等しいという条件の下での上記の諸数値、お
よび文節xi,k,p∈B(i,k)が文節xi,j,q∈B(i,j)に
係ることの整合度を表わす関数値のみを用いるところに
ある。
に対応して与えられた文節の集合B(i,j)(=1≦i
≦N)から、最初の文節の仮名表記始端位置が1に等し
く、最後の文節の仮名表記終端位置がNに等しく、最終
文節以外の文節の仮名表記終端位置に1を加えたものが
それに続く文節の仮名表記始端位置に等しいという条件
を満たすように文節を選んでできるあらゆる文節列の中
で、最終文節x1,N,q∈B(1,N)を一つ固定したときの
最適な文節列とその上の最適な構文およびそれに対する
適格度を求めるに当たって、最初の文節の仮名表記始端
位置がiに等しく、最後の文節の仮名表記終端位置がj
に等しいという条件の下での上記と同様の最後の文節を
固定したときの最適な文節列とその上の最適な構文、お
よびその適格度を、j−iが小さいものから順次求めて
それを記憶しておき、しかも最初の文節の仮名表記始端
位置がiに等しく、最後の文節の仮名表記位置がjに等
しいという条件の下での上記の諸数値を求めるに当たっ
ては、k=i,…,I(xi,j,q)−1に対して既に求められ
記憶されている、最初の文節の仮名表記始端位置がiに
等しく、最後の文節の仮名表記終端位置がkに等しいと
いう条件の下での上記の諸数値、最初の文節の仮名表記
始端位置がk+1に等しく、最後の文節の仮名表記終端
位置がjに等しいという条件の下での上記の諸数値、お
よび文節xi,k,p∈B(i,k)が文節xi,j,q∈B(i,j)に
係ることの整合度を表わす関数値のみを用いるところに
ある。
OPT(i,j,x)の定義から分かるように、列番号jはNで
あるか、または、あるダミーでない文節の最終文字位置
であり、かつ、あるダミーでない文節の最初の文字位置
から1を減じた値になっているような値以外は意味がな
い。もし、このような意味のない列番号があらかじめ分
かっている時は、そのような列を取り除き、残りの列に
対して、あらためて1から番号を付け直した上で、上記
の処理を行うことにより、更に計算量を減らすことがで
きる。同様にして、行番号iは1であるか、または、あ
るダミーでない文節の最初の文字位置であり、かつある
ダミーでない文節の最終文字位置に1を加えた値になっ
ているような値以外は意味がない。もし、このような意
味のない行番号が予め分かっているときは、そのような
行を取り除き、残りの行に対して、あらためて1から番
号を付け直した上で、上記の処理を行うことにより、更
に計算量を減らすことができる。
あるか、または、あるダミーでない文節の最終文字位置
であり、かつ、あるダミーでない文節の最初の文字位置
から1を減じた値になっているような値以外は意味がな
い。もし、このような意味のない列番号があらかじめ分
かっている時は、そのような列を取り除き、残りの列に
対して、あらためて1から番号を付け直した上で、上記
の処理を行うことにより、更に計算量を減らすことがで
きる。同様にして、行番号iは1であるか、または、あ
るダミーでない文節の最初の文字位置であり、かつある
ダミーでない文節の最終文字位置に1を加えた値になっ
ているような値以外は意味がない。もし、このような意
味のない行番号が予め分かっているときは、そのような
行を取り除き、残りの行に対して、あらためて1から番
号を付け直した上で、上記の処理を行うことにより、更
に計算量を減らすことができる。
なお、上述した実施例では、最小値を求める処理の場合
を示したが、これはSの値が小さいほど確実度が高く、
PENの値が小さいほど係り受けの整合度が高いとしたた
めである。Sの値が大きいほど確実度が高く、PENの値
が大きいほど係り受けの整合度が高い場合には、最小値
の変りに最大値を求める処理を行えばよい。
を示したが、これはSの値が小さいほど確実度が高く、
PENの値が小さいほど係り受けの整合度が高いとしたた
めである。Sの値が大きいほど確実度が高く、PENの値
が大きいほど係り受けの整合度が高い場合には、最小値
の変りに最大値を求める処理を行えばよい。
[発明の効果] 係り受けの整合度を示す関数PENについては、一度計算
したものを記憶しておくことにすると、従来法と本発明
とで計算量は同じになる。従って、この部分を除外する
と、基本演算は、実数の加算と比較演算であるので、従
来法と本発明を、これらの演算の回数で比較する。
したものを記憶しておくことにすると、従来法と本発明
とで計算量は同じになる。従って、この部分を除外する
と、基本演算は、実数の加算と比較演算であるので、従
来法と本発明を、これらの演算の回数で比較する。
与えられた仮名文字列の全長をN、B(i,j)の元の数
をJとすると、本発明の上記実施例における加算回数は
次式で与えられる。
をJとすると、本発明の上記実施例における加算回数は
次式で与えられる。
2・J・[Σ(1≦j≦N)Σ(1≦i≦j−1)Σ
(i+1≦r≦j)Σ(i≦m≦r−1)[J・(m−
i+1)+1]] また、比較回数は次式で与えられる。
(i+1≦r≦j)Σ(i≦m≦r−1)[J・(m−
i+1)+1]] また、比較回数は次式で与えられる。
J・[Σ(1≦j≦N)Σ(1≦i≦j−1)Σ(i+
1≦r≦j)Σ(i≦m≦r−1)[j・(m−i+
1)+1]]+2・J・[Σ(1≦j≦N)Σ(1≦i
≦j)[j−i+1]] これらの式は、Jに関して2乗、Nに関して5乗のオー
ダの多項式になる。
1≦r≦j)Σ(i≦m≦r−1)[j・(m−i+
1)+1]]+2・J・[Σ(1≦j≦N)Σ(1≦i
≦j)[j−i+1]] これらの式は、Jに関して2乗、Nに関して5乗のオー
ダの多項式になる。
これらの式をいくつかのJおよびNについて計算したも
のが第2表である。
のが第2表である。
第1表と、第2表とを比較するとわかるように、Jおよ
びNが大きいほど、本発明の効果は大きく、J=5で、
N=10のとき加算回数は約107分の1、比較演算回数は
約106分の1に、またJ=10、N=40のときには加算回
数は約1055分の1、比較演算回数は約1053分の1に改善
される。
びNが大きいほど、本発明の効果は大きく、J=5で、
N=10のとき加算回数は約107分の1、比較演算回数は
約106分の1に、またJ=10、N=40のときには加算回
数は約1055分の1、比較演算回数は約1053分の1に改善
される。
第1図は本発明を実施する装置の一実施例を示すブロッ
ク図、 第2図(A)および(B)はその制御手順の一例を示す
フローチャート、 第3図(A)および(B)は第2図のフローチャートを
実行する際に必要となるテーブルの一例を示す構造図で
ある。 SC……各文節の確信度を表わす数値保持用RAM、 BUF……文節集合保持用バッファメモリ、 PE……2文節間整合度計算装置、 INIT……文節仮名表記始端位置検出器、 SEL……データ選択装置、 T1……TABLE1用RAM、 T2……TABLE2用RAM、 ADD1……加算器、 MIN1……最小値検出装置、 ADD2……加算器、 MIN2……最小値検出装置、 CPU……中央処理装置、 MEM1……制御手順記憶用ROM、 MEM2……CPU作業用RAM、 CONT……各部の動作順序を制御する制御装置、 i1……文節確実度入力端子、 i2……文節入力端子、 o1……T1に得られた結果の出力端子、 o2……T2に得られた結果の出力端子。
ク図、 第2図(A)および(B)はその制御手順の一例を示す
フローチャート、 第3図(A)および(B)は第2図のフローチャートを
実行する際に必要となるテーブルの一例を示す構造図で
ある。 SC……各文節の確信度を表わす数値保持用RAM、 BUF……文節集合保持用バッファメモリ、 PE……2文節間整合度計算装置、 INIT……文節仮名表記始端位置検出器、 SEL……データ選択装置、 T1……TABLE1用RAM、 T2……TABLE2用RAM、 ADD1……加算器、 MIN1……最小値検出装置、 ADD2……加算器、 MIN2……最小値検出装置、 CPU……中央処理装置、 MEM1……制御手順記憶用ROM、 MEM2……CPU作業用RAM、 CONT……各部の動作順序を制御する制御装置、 i1……文節確実度入力端子、 i2……文節入力端子、 o1……T1に得られた結果の出力端子、 o2……T2に得られた結果の出力端子。
Claims (1)
- 【請求項1】1からNまでの自然数で決る仮名文字位置
と、仮名表記始端位置および仮名表記終端位置が1から
Nまでの範囲内の様々な位置にある文節の集合と、それ
ら文節の確実度を表わす数値が与えられたとき、2文節
間の係り受けの整合度と各文節の確実度を表わす数値の
総和を最小化あるいは最大化するという最適規準の下
で、最初の文節の仮名表記始端位置が1に等しく、最後
の文節の仮名表記終端位置がNに等しく、かつ、最終文
節以外の文節の仮名表記終端位置に1を加えた値が次の
文節の仮名表記始端位置に等しいという条件を満たすよ
うにそれら文節を並べてできるあらゆる文節列の中か
ら、最適な文節列と、その文節列の最適構文、およびそ
の適格度を定める言語処理法において、 前記Nに等しい行、列の数を持つ、2次元の上3角行列
形の第1表および第2表を用意し、 前記第1表および前記第2表の各桝目を、仮名表記終端
位置がその列番号に等しく、かつ仮名表記始端位置がそ
の行番号以上であるような文節の数だけの項に分割し
て、前記第1表および前記第2表を3次元化し、 仮名表記始端位置が自然数i以上であり、かつ仮名表記
終端位置が自然数jであるような文節集合中のq番目の
文節について、その仮名表記始端位置がiに等しいとき
には前記第1表の第i行,第j列、第q項にその文節の
確実度を格納し、 自然数kがiから始まって、仮名表記始端位置がi以上
で、かつ仮名表記終端位置がjに等しいような文節の集
合中の第q番目の文節の仮名表記始端位置より1を減じ
た値までを動くとき、前記第1表の第i行,第k列の各
項と、前記第1表の第k+1行,第j列,第q項に計算
済みの値を格納し、 その格納がなされたならば、当該計算済みの、前記第1
表の第i行,第k列,第p項の値と、前記第1表の第k
+1行,第j列,第q項の値と、仮名表記始端位置がi
以上であり、かつ仮名表記終端位置がkであるような文
節集合中の第p番目の文節が、仮名表記始端位置がi以
上で、かつ仮名表記終端位置がjであるような文節集合
中の第q番目の文節に係ることの整合度を加算し、 その加算結果のkおよびpに関する最小値または最大値
を前記第1表の第i行,第j列,第q項に格納し、 前記最小値または最大値を与える最適区分点であるとこ
ろのkおよび最適文節番号であるところのpの値の組を
前記第2表の第i行,第j列,第q項に格納し、 前記第1表および前記第2表を順次計算済みの値で埋め
て行き、 前記第1表および前記第2表の第1行,第N列の各項に
計算済みの値が格納されるに到ったときに、前記第1表
の第1行,第N列の各項の中の最小値または最大値を求
めることにより最終的な適格度と、最終文節の文節番号
を得ると共に、最適構文を構成するために必要な最適区
分点および最適文節番号の組の全体を前記第2表に得る
ことを特徴とする言語処理法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61273880A JPH077399B2 (ja) | 1986-11-19 | 1986-11-19 | 言語処理法 |
| US07/072,158 US4805100A (en) | 1986-07-14 | 1987-07-10 | Language processing method and apparatus |
| KR1019870007491A KR910004009B1 (ko) | 1986-07-14 | 1987-07-13 | 언어 처리 방법 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61273880A JPH077399B2 (ja) | 1986-11-19 | 1986-11-19 | 言語処理法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63128467A JPS63128467A (ja) | 1988-06-01 |
| JPH077399B2 true JPH077399B2 (ja) | 1995-01-30 |
Family
ID=17533857
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61273880A Expired - Lifetime JPH077399B2 (ja) | 1986-07-14 | 1986-11-19 | 言語処理法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH077399B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013035794A (ja) * | 2011-08-09 | 2013-02-21 | Nippon Beet Sugar Mfg Co Ltd | Rxr及び/又はppar活性化剤 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0628057B2 (ja) * | 1989-12-07 | 1994-04-13 | キヤノン株式会社 | 文字処理装置 |
-
1986
- 1986-11-19 JP JP61273880A patent/JPH077399B2/ja not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013035794A (ja) * | 2011-08-09 | 2013-02-21 | Nippon Beet Sugar Mfg Co Ltd | Rxr及び/又はppar活性化剤 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS63128467A (ja) | 1988-06-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5377889B2 (ja) | 言語処理装置およびプログラム | |
| Mohri et al. | Speech recognition with weighted finite-state transducers | |
| Alshawi et al. | Learning dependency translation models as collections of finite state head transducers | |
| JP3196868B2 (ja) | テキストをインデックス及び検索するための関連ワード形態の限定状態トランスジューサ | |
| JP7103264B2 (ja) | 生成装置、学習装置、生成方法及びプログラム | |
| EP0813156A2 (en) | Method and apparatus for language translation | |
| Veenstra et al. | Fast NP chunking using memory-based learning techniques | |
| JP7230576B2 (ja) | 生成装置、学習装置、生成方法及びプログラム | |
| EP0752698A2 (en) | System and method for selecting training text | |
| KR910004009B1 (ko) | 언어 처리 방법 | |
| KR100895940B1 (ko) | 문법 저작에서의 세그먼테이션 모호성의 자동 해결 | |
| Gu et al. | Markov modeling of mandarin Chinese for decoding the phonetic sequence into Chinese characters | |
| JPH077399B2 (ja) | 言語処理法 | |
| CN119323214A (zh) | 一种融合了词性特征的中文语义解析方法及解析器 | |
| JP2001142877A (ja) | アルファベット文字・日本語読み対応付け装置と方法およびアルファベット単語音訳装置と方法ならびにその処理プログラムを記録した記録媒体 | |
| JP3953772B2 (ja) | 読みがな付与装置およびプログラム | |
| CN116595991A (zh) | 文本匹配模型训练方法、匹配方法、设备及存储介质 | |
| JP2954215B2 (ja) | 言語処理システム | |
| JP2005025555A (ja) | シソーラス構築システム、シソーラス構築方法、この方法を実行するプログラム、およびこのプログラムを記憶した記憶媒体 | |
| JP2527719B2 (ja) | 言語処理装置の言語処理方法 | |
| Pieraccini et al. | Implementation aspects of large vocabulary recognition based on intraword and interword phonetic units | |
| KR102668118B1 (ko) | 자연어 기반의 비디오 검색을 위한 학습 장치 및 학습 방법 | |
| JPH077400B2 (ja) | 言語処理方法 | |
| Liu et al. | Evaluating Modeling Units and Sub-word Features in Language Models for Turkish ASR | |
| JP2776213B2 (ja) | 木文法パタン認識・解析・確率計算装置及び確率学習装置 |