(57)【要約】【課題】高精度の形態素解析処理を行うことができる文字列処理装置を提供する。【解決手段】解析対象の文字列を格納する文字列バッファ１１と、文字列バッファ１１中の部分文字列を対象に辞書引きを行い、文字列バッファ１１内文字列を複数のコスト付き形態素パスに変換して出力する形態素パス生成部１２と、形態素パス生成部１２によって参照され、形態素として成立する文字列とそのコストを少なくとも格納した形態素辞書１３と、を持つ文字列処理装置において、形態素辞書１３中の特定の形態素を示す情報を少なくとも持つ稀出現形態素辞書１４を備えたことを特徴とする。【選択図】　　　　図１
2004086491.tif 000002
【特許請求の範囲】
【請求項１】
解析対象の文字列を格納する文字列バッファと、
前記文字列バッファ中の部分文字列を対象に辞書引きを行い、前記文字列バッファ内文字列を複数のコスト付き形態素パスに変換して出力する形態素パス生成部と、
前記形態素パス生成部によって参照され、形態素として成立する文字列とそのコストを少なくとも格納した形態素辞書と、を持つ文字列処理装置において、
前記形態素辞書中の特定の形態素を示す情報を少なくとも持つ稀出現形態素辞書を備えた、
ことを特徴とする文字列処理装置。
【請求項２】
解析対象の文字列を格納する文字列バッファと、
前記文字列バッファ中の部分文字列を対象に辞書引きを行い、検出された形態素の品詞間の接続のコストを用いて、前記文字列バッファ内文字列を複数のコスト付き形態素パスに変換して出力する形態素パス生成部と、
前記形態素パス生成部によって参照され、形態素として成立する文字列とその品詞を少なくとも格納した形態素辞書と、
前記形態素パス生成部によって参照され、品詞と品詞との接続についてそのコストを格納した接続表と、を持つ文字列処理装置において、
前記接続表中の特定の接続を示す情報を少なくとも持つ稀出現接続辞書を備えた、
ことを特徴とする文字列処理装置。
【請求項３】
前記形態素パス生成部は、前記形態素辞書を参照して検出された形態素について、
前記稀出現形態素辞書が稀出現形態素のみを含む場合において当該稀出現形態素辞書に前記検出された形態素が存在しているとき、または、
前記稀出現形態素辞書が稀出現形態素および稀出現形態素以外の形態素を含み、かつ形態素が稀出現形態素か否かを示す情報を持つ場合において、当該特定情報が前記形態素が稀出現形態素であることを示しているときは、
前記検出された形態素について前記形態素辞書のコストを用いずに、所定値のコストを用いてコスト付き形態素パスの生成を行い、
前記コスト付き形態素パスの生成ができなかった場合には、当該形態素について前記形態素辞書のコストを用いて、再びコスト付き形態素パスの生成を行う、ことを特徴とする請求項１に記載の文字列処理装置。
【請求項４】
形態素パス生成部は、前記形態素辞書を参照して検出された形態素について、
前記稀出現形態素辞書が稀出現形態素のみを含む場合において当該稀出現形態素辞書に前記検出された形態素が存在しているとき、または、
前記稀出現形態素辞書が稀出現形態素および稀出現形態素以外の形態素を含み、かつ形態素が稀出現形態素か否かを示す情報を持つ場合において、当該特定情報が前記形態素が稀出現形態素であることを示しているときは、
そのコストを特定の値にし、これらに該当しないときは前記形態素辞書中のコストを用いる、
ことを特徴とする請求項１に記載の文字列処理装置。
【請求項５】
前記形態素パス生成部は、前記形態素辞書を参照した結果検出された形態素について、
前記稀出現形態素辞書は稀出現形態素のみを含み、かつ各形態素にはそのコストを示す情報が記載されている場合において、前記検出された形態素が前記稀出現形態素辞書に存在しているとき、または、
前記稀出現形態素辞書は稀出現形態素および稀出現形態素以外の形態素を含み、かつ形態素は、稀出現形態素であるときはそのコストを示す情報を、稀出現形態素でないときはその旨を示す情報を持つ場合において、前記検出された形態素がコストを示す情報を持つときは、
前記検出された形態素のコストを稀出現形態素辞書に記載されたコストに置き換えて用いることを特徴とする文字列処理装置。
【請求項６】
形態素辞書中のコストは、観測によって得られた、その形態素の品詞内出現確率の対数に比例した値であり、置き換えるコストは、観測によって１回もその形態素の出現がなかった場合に付与されるコストよりも大きいことを特徴とする請求項４に記載の文字列処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声合成等の各種の形態素解析を用いた技術分野に適用可能な文字列処理装置に関し、特に高精度の形態素解析処理を行うことができる文字列処理装置に関する。
【０００２】
【従来の技術】
形態素解析結果、あるいはカナ漢字変換結果をユーザからの働きかけによって修正する仕組みとしてはユーザ辞書がある。ユーザ辞書を持つものとしては、たとえばＭＳ−ＩＭＥや、各種音声合成ソフトなど、種々知られている。
【０００３】
また、これとは別に、低頻度語の悪影響に注目して、これを解決しようとしたものとして特開平０９−１８５６１４号公報記載のような技術がある。この技術では、かな漢字変換における使用頻度に基づいて低頻度語を排除しようとしているが、漢字かな混じり文を非対話的に解析する場合、この仕組みを用いることは困難である。
【０００４】
形態素解析技術では、一般に、与えられた文字列を形態素パスに変換する。文字列に対して、複数の形態素パスが考えられる場合、それぞれの形態素パスに対してなんらかの手段でコスト（あるいは優先度）を付与し、もっともコストが低い（あるいは優先度が高い）パスを選択してこれを出力することが多い。
【０００５】
しかしながら、複数の形態素パスに対するコスト付与は必ずしも正確ではなく、また、ある形態素に対するコストは、解析対象とする文書の属する分野や、その文書の作成者によっても変化する。このため、たとえば「プレ」が接頭辞として、「イオン」，「ライン」が普通名詞として辞書登録されている場合に、「プレイオンライン」（ぷれい／おんらいん）を「プレ／イオン／ライン」と解析してしまうと、「〇×」，「大和」，「算」，「研究会」が普通名詞として辞書登録されている場合に、「○×大和算研究会」（〇×だい／わさん／けんきゅうかい）を「○×／大和／算／研究会」（〇×／やまと／ざん／けんきゅうかい）と読んでしまうことなどの問題が生じる。
【０００６】
これらの問題を回避するため、従来、ユーザ辞書を使用している。ユーザ辞書はユーザが単語を登録するしくみであり、一般には登録された単語は形態素パスの解析時に優先的に選択される。たとえば上記の例では、「オンライン」がユーザによる変更ができないシステム辞書に登録されていないときはユーザ辞書に「オンライン」を、同じく「和算（わさん）」がシステム辞書に登録されていないときはユーザ辞書に「和算（わさん）」を登録することになる。
【０００７】
しかしながらユーザ辞書は、既存の辞書に対し、新たに単語を追加するのみであり、通常の場合は、辞書に未登録な語を「この単語は良く使う」という修正意図のもとに使用できるようにするための仕組みであるが、これには以下のような問題点がある。
【０００８】
辞書登録に関するユーザの理解を困難にしないため、ユーザ辞書に単語を登録する際に設定可能なパラメータは、形態素辞書で利用可能なパラメータ、たとえば共起情報などのすべてをカバーしていないことが多い。このため、ユーザ登録によっては詳細な単語の機能を設定できない
【０００９】
また、システム辞書に同じ語が存在する場合に、ユーザ辞書によっては詳細な登録ができないこともある。
また、従来の単語のユーザ登録は、個別の現象にのみ対応できるようにするだけであり、問題となった現象の原因そのものに手が打てないことがある。たとえば、「オンライン」をユーザ辞書に登録しておくことで、「プレイオンライン」を「プレイ／オンライン」と解析できても、「プレイオンデマンド」は、「プレ／イオン／デマンド」と誤って解析してしまうという問題がある。
【００１０】
逆に、ある単語を優先的に解析できるようにしたために、形態素の正確な認識に悪影響を与えることがある。たとえば「和算研究会」を「わさんけんきゅうかい」と解析しても、「協和算数塾」を「きょう／わさん／かず／じゅく」と誤って読んでしまうことがある。
本発明は上記問題点に鑑み、既に辞書内に存在する単語について、「この単語はほとんど使わない」という修正意図を反映できるしくみを提供することができる文字列処理装置を提供することを目的とする。
【００１１】
具体的には、本発明は、「イオン」や「大和」が、辞書内に既に存在する場合であっても、「この単語は、対象分野ではほとんど使わない」という指定をすることで、「プレイオンライン」，「プレイオンデマンド」を「プレイ／オンライン」，「プレイ／オンデマンド」と認識でき、「○×大和算研究会」を「○×大／和算／研究会」と認識できるしくみを提供するものである。
【００１２】
【課題を解決するための手段】
本発明の第１態様の文字列処理装置は、解析対象の文字列を格納する文字列バッファと、前記文字列バッファ中の部分文字列を対象に辞書引きを行い、前記文字列バッファ内文字列を複数のコスト付き形態素パスに変換して出力する形態素パス生成部と、前記形態素パス生成部によって参照され、形態素として成立する文字列とそのコストを少なくとも格納した形態素辞書とを持つものであって、前記形態素辞書中の特定の形態素を示す情報を少なくとも持つ稀出現形態素辞書を備えたことを特徴とする。
【００１３】
第１態様の文字列処理装置によれば、稀出現形態素辞書には、稀に出現する形態素が、既に辞書内に存在する場合に、これを指定して登録することができる。これによって、生成される複数の形態素パスのうち、稀に出現する形態素を含むもののコスト値に影響を与えることで、正しい解析結果を得ることができる。
【００１４】
第１態様の文字列処理装置では、前記形態素辞書を参照して検出された形態素について、前記稀出現形態素辞書が稀出現形態素のみを含む場合において当該稀出現形態素辞書に前記検出された形態素が存在しているとき、または、前記稀出現形態素辞書が稀出現形態素および稀出現形態素以外の形態素を含み、かつ形態素が稀出現形態素か否かを示す情報を持つ場合において、当該特定情報が前記形態素が稀出現形態素であることを示しているときは、前記検出された形態素について前記形態素辞書のコストを用いずに、所定値のコストを用いてコスト付き形態素パスの生成を行い、前記コスト付き形態素パスの生成ができなかった場合には、当該形態素について前記形態素辞書のコストを用いて、再びコスト付き形態素パスの生成を行うことができる。
【００１５】
第１態様の文字列処理装置では、形態素パス生成部は、前記形態素辞書を参照して検出された形態素について、前記稀出現形態素辞書が稀出現形態素のみを含む場合において当該稀出現形態素辞書に前記検出された形態素が存在しているとき、または、前記稀出現形態素辞書が稀出現形態素および稀出現形態素以外の形態素を含み、かつ形態素が稀出現形態素か否かを示す情報を持つ場合において、当該特定情報が前記形態素が稀出現形態素であることを示しているときは、そのコストを特定の値にし、これらに該当しないときは前記形態素辞書中のコストを用いることができる。
【００１６】
この場合には、対象とする単語が非常に稀な単語である場合でも、未登録語以外のあらゆる単語よりも低く、かつ未登録語よりも高い優先順位による形態素解析を行なうことができる。コスト最小法による解析の場合、コストの付与状態によって、たとえ大きなコストを与えていても、その優先順位を低くしたはずの単語が選択されることはありえるが、上記のような処理を行なうことで確実性の高い解析を行なうことができる。
【００１７】
第１態様の文字列処理装置では、形態素パス生成部は、前記形態素辞書を参照した結果検出された形態素について、前記稀出現形態素辞書は稀出現形態素のみを含み、かつ各形態素にはそのコストを示す情報が記載されている場合において、前記検出された形態素が前記稀出現形態素辞書に存在しているとき、または、前記稀出現形態素辞書は稀出現形態素および稀出現形態素以外の形態素を含み、かつ形態素は、稀出現形態素であるときはそのコストを示す情報を、稀出現形態素でないときはその旨を示す情報を持つ場合において、前記検出された形態素がコストを示す情報を持つときは、前記検出された形態素のコストを稀出現形態素辞書に記載されたコストに置き換えて用いることができる。
【００１８】
第１態様の文字列処理装置では、たとえば上記の「特定の値」を例にとると、形態素辞書中の形態素のコストは、観測によって得られた、その形態素の品詞内出現確率の対数に比例した値に基づき決定できるものであるため、観測によって１回も形態素の出現がなかった場合に付与されるコストよりも大きいように設定できる。
【００１９】
この場合には、コストの仕組みに制限を設けるが、与えるべきコストの値（たとえば、上記の「特定の値」）を計算式により決定することができる。
【００２０】
第１態様の文字列処理装置では、前記稀出現形態素辞書に、特定の形態素を示す情報の他に、その形態素のコストを示す情報を格納し、前記形態素パス生成部は、前記形態素辞書を参照した結果検出された形態素について、前記稀出現形態素辞書に当該形態素が存在していればコストを稀出現形態素辞書中のコストに置き換えて用いることができる。
【００２１】
この場合、稀に出現する単語においても、その頻度に微妙な違いがある場合、これを反映できる。特に、コスト付与が観測データによるものであり、観測データ数が小さな場合、形態素辞書内に記載された形態素のコストは、大部分観測数１回の単語として計算されることになり、同じ値になってしまうが、上記のコストを示す情報を格納しておくことにより観測数１回以下の単語についても優先順位に差をつけて解析ことが可能になる。
【００２２】
本発明の第２態様の文字列処理装置は、解析対象の文字列を格納する文字列バッファと、前記文字列バッファ中の部分文字列を対象に辞書引きを行い、検出された形態素の品詞間の接続のコストを用いて、前記文字列バッファ内文字列を複数のコスト付き形態素パスに変換して出力する形態素パス生成部と、前記形態素パス生成部によって参照され、形態素として成立する文字列とその品詞を少なくとも格納した形態素辞書と、前記形態素パス生成部によって参照され、品詞と品詞との接続についてそのコストを格納した接続表とを持つものであって、前記接続表中の特定の接続を示す情報を少なくとも持つ稀出現接続辞書を備えたことを特徴とする。
【００２３】
第２態様の文字列処理装置では、稀に出現する接続、たとえば接続詞と接続詞の接続などが、対象文書において誤って選択された場合に、これを「稀にしか生じない現象である」として修正することができる。
【００２４】
【発明の実施の形態】
図１は本発明の文字列処理装置の一実施形態を示す構成図である。
図１において、文字列処理装置１は、文字列バッファ１１と、形態素パス生成部１２と、形態素辞書１３と、稀出現形態素辞書１４と、接続表１５と、稀出現接続辞書１６とからなる。なお、ここでは、文字列バッファには“プレイオンラインの仕組みたい”なる文字列が格納されているとする。
【００２５】
最初に、稀に出現する形態素が、既に辞書内に存在する場合に、これを指定し、これによって、生成される複数形態素パスのうち、稀に出現する形態素を含むもののコスト値に影響を与え、正しい解析結果を得る例を説明する。
【００２６】
文字列バッファ１１に格納された文字列“プレイオンラインの仕組みたい”は、形態素パス生成部１２によって、その各位置から形態素辞書１３による辞書引きがなされ、まず表１のようにコストの付与されていないネットワーク構造のデータとして所定バッファに格納される。ここで、コストは値が大きいほど、選択される優先度が低い属性である。
【００２７】
【表１】
2004086491.tif 000003
【００２８】
形態素辞書１３には表２に示すようなデータが、また接続表１５には表３に示すようなデータが格納されている。
【００２９】
【表２】
2004086491.tif 000004
【００３０】
【表３】
2004086491.tif 000005
【００３１】
接続表１５は、実際には「すべての品詞」と「すべての品詞」との組合せについての接続のコスト（品詞個数の二乗個）を格納したデータであり、２次元の配列であるが、ここでは説明の都合上、関連ある接続のみを、表形式で示す。
【００３２】
表１および表２、表３から、可能な形態素パスをコスト付きで生成した結果を表４に示す。コストは、各構成形態素のコストと、構成形態素の品詞間の接続のコストを累計することによって求められる。
【００３３】
表４に示すように、形態素辞書１３および接続表１５を用いたままでは、コスト最小の解析結果は「プレ／イオン／ライン／の／仕組み／たい」である。
ユーザが表４の結果に対して、「イオンという言葉はそれほど使わない」と感じた場合、稀出現形態素辞書１４にこれを反映させることになる。稀出現形態素辞書１４を表５（Ａ），（Ｂ）に示す。
【００３４】
【表４】
2004086491.tif 000006
【００３５】
表５（Ａ）は単語ＩＤをキーにした表であり、００００１から、すべての形態素に対して所定ビット（ここでは、１ビット）のフラグで稀出現形態素であるか否かを表現している。
【００３６】
【表５】
2004086491.tif 000007
【００３７】
形態素パス生成部は、表１および表２、表３から、可能な形態素パスを生成する際、表２によって形態素の単語コストを求めた後、さらに単語ＩＤによって表５（Ａ）を参照し、フラグが１であれば単語コストを所定の値（ここでは、１０とする）に書き換える。この単語コストの値を１０と特定した根拠については後述する。
【００３８】
この結果、パス生成結果は変化し、表６のようになる。なお、上記の例では、すべての形態素に対して所定ビット（ここでは、１ビット）のフラグで稀出現形態素であるか否かを表現しているが、稀出現形態素ではない形態素については、表５（Ｂ）に示すように、稀出現形態素辞書１４に含めないようにできる。
【００３９】
【表６】
2004086491.tif 000008
【００４０】
上記の例では、単に辞書引きした単語のコストを最大にするという簡単な処理によって、対象とする単語の優先順位を非常に低く抑え、結果的に、その語の出現が稀であるという現象を処理できるようになる。
【００４１】
つぎに、稀に出現する接続、たとえば接続詞と接続詞の接続などが、対象文書において誤って選択された場合に、これを「稀にしか生じない現象である」として修正する場合を説明する。
【００４２】
ユーザが表４あるいは表６の結果に対して、さらに「“普通名詞”のあとに、“助動詞たい”はほとんど付かない」と感じた場合、稀出現接続辞書１６にこれを反映させることができる。
【００４３】
稀出現接続辞書１６を表７に示す。稀出現接続辞書１６も接続表１５と同様に２次元の配列であり、配列の各データにはある品詞がある品詞に連接する現象が稀であるか否かがフラグによって表現されている。
【００４４】
【表７】
2004086491.tif 000009
【００４５】
形態素パス生成部１２は、表１、表２および表３から、可能な形態素パスを生成する際、表３によってある品詞とある品詞の接続コストを求めた後、さらに稀出現接続辞書１６を参照し、フラグが１であれば接続コストを所定の値（ここでは、１０００とする）に書き換える。この結果、パス生成結果は変化し、表８のようになる。
【００４６】
【表８】
2004086491.tif 000010
【００４７】
以下に、表５において稀出現フラグが１のときに置き換えるべきコストの値の算出方法を例示する。
形態素辞書１３、接続表１５にはあらかじめ計算済みのコストが格納されている必要があるが、このコストに関しては、既に
（単語コスト）＝（形態素の品詞内出現確率の対数値）、
（接続コスト）＝（品詞間接続の出現確率の対数値）、
として説明できることが知られている。この出現確率は、実際には完全な値を求めることができず、ある量のコーパスを解析した結果の観測値から出現確率を推定することになる。ここでは形態素の出現に関して、仮に表９に示す観測数、品詞観測数のような値が求められたものとする。これを元にコストを求めるには、観測数を品詞観測数で割り（品詞内出現確率）、これの対数値を定数倍（本実施形態においては１／ｌｏｇ０．２）すればよい。
【００４８】
【表９】
2004086491.tif 000011
【００４９】
しかしながら、形態素辞書１３には記載されていても実際には観測されないデータもある。たとえば、普通名詞「イオン」は対象コーパス内での使用頻度が低く、観測されなかったとすれば、単純に計算した出現確率は０になり、コストは無限大になってしまう。
このため、実用上、１回はその単語が観測されたとしてコストを計算する。この場合、表９に示すように、「イオン」の出現確率は１．３×１０−５と計算され、ｌｏｇ（１．３×１０−５ｌｏｇ（０．２）により、コストは７と計算される。
【００５０】
このような仕組みにより、観測されなかった形態素にもコストが付与可能ではあるが、同じように出現が観測されなかった形態素であっても、その推定される出現確率には差があるはずであり、たまたま今回は観測されなかった形態素から、ほとんど観測されるはずの無い形態素まで、すべてを出現回数（観測数）１回と見積もることは無理がある。
本発明ではこれを解決するために、１回よりも小さな出現回数を付与可能にしたものと説明できる。
【００５１】
さて、本実施例においては、請求項６の適用により、稀出現形態素に与えるコストとして、すべての品詞の観測回数のうち、もっとも出現回数の多い品詞に関して、出現回数１回の単語に付与されるよりも大きなコストを設定すればよい。具体的には、たとえば普通名詞がもっとも出現回数が大きければ、先ほどの計算により１回出現の普通名詞の形態素に付与されるコストは７点なので、稀出現形態素に付与されるべきコストは少なくとも８点以上である。この計算結果を受け、実際に稀出現形態素に付与するコストを前述のとおり値１０に設定する。
【００５２】
対象とする単語が非常に稀な単語である場合でも、未登録語以外のあらゆる単語（他の登録語）よりも低く、かつ未登録語よりも高い優先順位での解析を行なうことができる。
すなわち、形態素パス生成部１２は、文字列バッファ中の各位置から形態素辞書１３による辞書引きとネットワーク状データの生成を行った後、表５と同様の稀出現形態素辞書１４を参照して、ネットワークデータから稀出現形態素を削除する。この結果を表１０に示す。
【００５３】
【表１０】
2004086491.tif 000012
【００５４】
このデータを用いてパス生成を行った場合、「プレイ／オン／ライン・・・」なるパスが生成可能なため、形態素パス生成部は「プレイ／オン／ライン・・・」なるパスを出力する。
【００５５】
一方、文字列バッファ内の文章が「イオンラインの仕組み」であった場合、「イオン」を削除したネットワークデータからはパスが生成できないため、削除した「イオン」を再び戻し、解析を実行する。この場合、「イオン」の優先順位は、未登録語以外のあらゆる単語（他の登録語）よりも低く、かつ登録語よりも高い優先順位とされ、その結果「イオン／ライン／・・・」なるパスが生成可能なため、形態素パス生成部は「イオン／ライン／・・・」を出力する。
【００５６】
次に、稀に出現する単語について、その頻度に微妙な違いがある場合、これを反映した解析結果を得る例を説明する。この場合、稀出現形態素辞書１４には表１１（Ａ）に示すように、フラグではなく、置き換えるべき形態素のコストが格納されている。
【００５７】
【表１１】
2004086491.tif 000013
【００５８】
表１１（Ａ）では、コストの値に−１が付与されている単語は、稀出現形態素でないことを示す。形態素パス生成部は、表１および表２、表３から、可能な形態素パスを生成する際、表２によって形態素の単語コストを求めた後、さらに単語ＩＤによって表１１を参照し、コストが−１以外であれば単語コストを稀形態素辞書のコストの値に書き換える。この結果、パス生成結果は変化し、表１２のようになる。
【００５９】
【表１２】
2004086491.tif 000014
【００６０】
なお、上記の例では、稀出現形態素か否かの判断を「−１」としたが、表１１（Ａ）に代えて、表１１（Ｂ）に示すように稀出現形態素でない形態素を稀出現形態素辞書１４に含めないようにしてもよい。
【００６１】
【発明の効果】
本発明の文字列処理装置によれば、既に辞書内に存在する単語についての「この単語はほとんど使わない」という修正意図を反映でき、ユーザ単語登録による解析結果修正の問題点を回避しつつ、解析結果を修正することが可能となった。また、稀に出現する接続が、対象文書において誤って選択された場合に、これを「稀にしか生じない現象である」として修正することができる。
【図面の簡単な説明】
【図１】本発明の文字列処理装置の一実施形態を示す構成図である。
【符号の説明】
１　文字列処理装置
１１　文字列バッファ
１２　形態素パス生成部
１３　形態素辞書
１４　稀出現形態素辞書
１５　接続表
１６　稀出現接続辞書
【図１】
2004086491.tif 000015