(57)【特許請求の範囲】
【請求項１】
単語の文字列およびその単語の属性を示すデータを登録した辞書ファイルと、
前記辞書ファイルを用いて入力された文字列を単語に分割する形態素解析を行う形態素解析手段と、
前記入力された文字列中の連接するカタカナ文字列が前記形態素解析によって複数の単語に分割されたとき、この分割された単語内に文字列長が１文字の未登録単語が含まれていれば、該未登録単語と該未登録単語の前または後ろに隣合う単語とをつないだ文字列を未登録単語として検出する未登録単語検出手段と、
該検出された未登録単語を前記辞書ファイルに仮登録する未登録単語登録手段と、
前記未登録単語検出手段で検出され、前記辞書ファイルに仮登録されている未登録単語と一致する文字列の単語が前記形態素解析によって連接するカタカナ文字列を分割した複数の単語に含まれているとき、一致する文字列以外の単語の正当性を検証した検証結果に基づいて、該未登録単語が単語として正当なものであるかどうかを検証する正当性検証手段と、を備え、
前記未登録単語登録手段は、前記正当性検証手段が正当であることを検証した仮登録されている未登録単語を前記辞書ファイルに正式に登録する日本語文解析装置。
【請求項２】
形態素解析手段が、単語の文字列およびその単語の属性を示すデータを登録した辞書ファイルを用いて入力された文字列を単語に分割する形態素解析を行うステップと、
未登録単語検出手段が、前記入力された文字列中の連接するカタカナ文字列が前記形態素解析によって複数の単語に分割されたとき、この分割された単語内に文字列長が１文字の未登録単語が含まれていれば、該未登録単語と該未登録単語の前または後ろに隣合う単語とをつないだ文字列を未登録単語として検出するステップと、
未登録単語登録手段が、該検出された未登録単語を前記辞書ファイルに仮登録するステップと、
正当性検証手段が、前記未登録単語検出手段で検出され、前記辞書ファイルに仮登録されている未登録単語と一致する文字列の単語が前記形態素解析によって連接するカタカナ文字列を分割した複数の単語に含まれているとき、一致する文字列以外の単語の正当性を検証した検証結果に基づいて、該未登録単語が単語として正当なものであるかどうかを検証するステップと、
前記未登録単語登録手段が、前記正当性検証手段が正当であることを検証した仮登録されている未登録単語を前記辞書ファイルに正式に登録するステップと、を有する日本語文解析方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力された日本語文に含まれる辞書にのっていない単語、特にカタカナで記載された単語を検出し、この検出した単語を登録する日本語文解析装置および日本語文解析方法に関する。
【０００２】
【従来の技術】
機械翻訳の前処理には、形態素解析と言われる処理が行われている。形態素解析とは、簡単にいうと入力された日本語文に対して辞書を用いて文節切りや単語切りなどを行う処理である。ここで、問題となるのは入力された日本語文中に辞書に載っていない単語（以下、未登録単語と言う。）が存在すると、形態素解析が正確に行えないという点である。したがって、機械翻訳にも失敗するという結果となる。そこで、機械翻訳の前処理で翻訳に失敗しそうなところを予め警告するためには、未登録語を正確に検出する必要がある。
【０００３】
また、未登録単語は文献中のキーワードとなる単語として用いられる新語である場合が多い。このため、文書検索の自動キーワード作成（インデックス作成）等の技術では、未登録単語をキーワードとして登録する必要がある。すなわち、文書検索の自動キーワード作成で辞書にない未登録単語をキーワードとして登録するためには、未登録単語を正確に検出しなければならない。
【０００４】
従来、未登録単語の検出処理は、未登録単語がカタカナ文字列である場合がほとんどであることから、辞書引きに失敗した文字列に同じ文字種（カタカナ）が連接する文字列全体を未登録語として検出するというものであった。
例えば、「インタラプタ」という文字列に対して「イン」、「タラ」が辞書に登録されている登録語で、「プタ」が未登録語である場合には、「インタラプタ」を未登録単語として検出する方法（情報処理学会第３６回（昭和６３年前記）全国大会予稿集１２３１頁〜１２３２頁「日英機械翻訳用前編集システム(2)-形態素のあいまい性の検出方法- 」参照）や、
「ニューステーションホテル」と言う文字列に対して辞書引きされる「ニュー」、「ニュース」「ホテル」等の情報は無視し、カタカナ文字列全体である「ニューステーションホテル」を未知語（本願で言う未登録単語）として検出する方法（情報処理学会第４７回（平成５年後期）全国大会予稿集３−１５９頁〜３−１６０頁「選択的辞書引き機構を導入した日本語形態素解析における未知語推定機構」参照）であった。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記した未登録単語を抽出する方法では、カタカナの文字列が複数の単語からなる複合語であると、この複合語を未登録単語として検出してしまうという問題がある。例えば、「ファイナンシャルシステム」という文字列の単語（「ファイナンシャル」が未登録語であり、「システム」とつながって複合語を形成している単語）がある場合、登録語である「ファイ」や「システム」等の辞書引きされる情報を無視し（「ファイ」、「システム」は辞書ファイルに登録されている単語とする。）、「ファイナンシャルシステム」全体が未登録単語として検出される。また、「ファイナンシャル」という未登録単語を含む複合語である「ファイナンシャルバンキング」、「ファイナンシャルセンター」、「ファイナンシャルアドバイザー」、「ファイナンシャルプランナー」等も別の未登録単語として検出される（「バンキング」、「センター」、「アドバイザー」、「プランナー」等は辞書に登録されている単語であるとする。）。このため、機械翻訳の前処理における処理量が増加したり、文書検索のキーワードとして冗長なキーワード（複合語）が作成されるという結果となる。
【０００６】
ここで、登録単語と照合しない部分のみを未登録単語として検出するという手法も考えられるが、この手法では検出すべき未登録単語の一部が登録単語と一致していると、この一致した部分が切り離された不適当な文字列の未登録単語が検出されることになる。上記した例の「ファイナンシャルシステム」という文字列に対して、「ファイ」、「システム」と言う登録単語に一致する部分を除いた「ナンシャル」という単語として正当性のない文字列を未登録単語として検出してしまう。さらに、未登録単語の文字列が複数の単語を連接させた文字列とたまたま一致する場合には、未登録単語が検出されないという問題もある。例えば、「カリマンタン」と言う文字列の未登録単語に対して「カリ」「マン」「タン」という３つの登録単語があると、未登録単語が検出されないということである。
【０００７】
この発明の目的は、未登録単語を含むカタカナ文字列中から正確に未登録単語を形成する文字列のみを検出し、この検出した未登録単語を登録することのできる日本語文解析装置および日本語文解析方法を提供することにある。
【０００８】
また、この発明は、検出された未登録単語の正当性を検出し、誤って検出されて登録された未登録単語を取り消すことのできる日本語文解析装置および日本語文解析方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
この発明の日本語文解析装置は、単語の文字列およびその単語の属性を示すデータを登録した辞書ファイルと、前記辞書ファイルを用いて入力された文字列を単語に分割する形態素解析を行う形態素解析手段と、
前記入力された文字列中の連接するカタカナ文字列が前記形態素解析によって複数の単語に分割されたとき、この分割された単語内に文字列長が１文字の未登録単語が含まれていれば、該未登録単語と該未登録単語の前または後ろに隣合う単語とをつないだ文字列を未登録単語として検出する未登録単語検出手段と、
該検出された未登録単語を前記辞書ファイルに仮登録する未登録単語登録手段と、
前記未登録単語検出手段で検出され、前記辞書ファイルに仮登録されている未登録単語と一致する文字列の単語が前記形態素解析によって連接するカタカナ文字列を分割した複数の単語に含まれているとき、一致する文字列以外の単語の正当性を検証した検証結果に基づいて、該未登録単語が単語として正当なものであるかどうかを検証する正当性検証手段と、を備え、
前記未登録単語登録手段は、前記正当性検証手段が正当であることを検証した仮登録されている未登録単語を前記辞書ファイルに正式に登録する。
【００１０】
この構成では、形態素解析手段が辞書ファイルを用いて入力された文字列を単語に分割する形態素解析を行う。形態素解析された結果、連接するカタカナ文字列が複数の単語に分割されたときに、分割された単語内に文字列長が１文字の未登録単語が含まれていれば、未登録単語検出手段がこの１文字の未登録単語と該未登録単語の前または後ろに隣合う単語とをつないだ文字列を未登録単語として検出する。そして、未登録単語登録手段がこの検出された未登録単語を辞書ファイルに仮登録する。また、正当性検証手段が前記形態素解析によって連接するカタカナ文字列を分割した複数の単語に前記未登録単語検出手段で検出され、登録されている未登録単語と一致する文字列の単語が含まれるとき、一致する文字列以外の単語の正当性を検証した検証結果に基づいて、該未登録単語が単語として正当なものであるかどうかを検証する。そして、未登録単語登録手段が単語として正当なものであることが検証された辞書ファイルに仮登録されている未登録単語を正式に登録する。
【００２２】
【発明の実施の形態】
図１は、この発明の実施の形態である日本語文解析装置の機能を示すブロック図である。日本語文解析装置１は、テキストデータ記憶部２と、形態素解析部３、辞書ファイル４と、単語候補検出部５と、単語候補登録部６と、単語候補検証部７と、単語候補削除部８と、登録単語検証部９と、単語候補正式登録部１０とを備えている。
テキストデータ記憶部２は、処理の対象となるテキストデータを記憶する。
形態素解析部３は、前記テキストデータ記憶部２に記憶されているテキストデータに対して形態素解析を行う。
辞書ファイル４は、単語の文字列と、該単語の属性（品詞等）を対応させて記憶している。
単語候補検出部５は、前記形態素解析部３で形態素解析された結果に基づいて、辞書ファイル４に登録されていない未登録単語を単語候補として検出する。
単語候補登録部６は、前記単語候補検出部５で検出された単語候補を辞書ファイル４に仮登録する。
単語候補検証部７は、辞書ファイル４に仮登録されている単語候補の正当性を検証する。
単語候補削除部８は、辞書ファイル４に仮登録されている単語候補で正当性が検証されなかった単語を削除する。
登録単語検証部９は、未登録単語の含まれている可能性がある文字列中から検出された辞書ファイル４に登録されている単語の正当性を検証する。
単語候補正式登録部１０は、仮登録されている単語候補で正当性が検証されたときにこの単語候補を正式に登録する。
【００２３】
図２は、この発明の実施の形態である日本語群解析装置の処理を示すフローチャートである。ここでは、日本語文解析装置１の一連の処理を簡単に説明する。日本語文解析装置１は、テキストデータ記憶部２に処理対象となるテキストデータを取り込み、記憶する（ｎ１）。形態素解析部３は、句読点で区切られた文字列単位毎にテキストデータを取り込む（ｎ２）。形態素解析部３は、句読点で区切られたテキストデータを取り込むと、辞書ファイル４を用いて形態素解析を行う（ｎ３）。この形態素解析によって、ｎ２で取り込まれた句読点で区切られたテキストデータが形態素に分割される。日本語文解析装置１は、ｎ３において形態素解析部３で形態素解析された結果にカタカナ文字列の単語が含まれているかどうかを判定する（ｎ４）。カタカナ文字列の単語が含まれていない場合には、ｎ１でテキストデータ記憶部２に記憶したテキストデータを全て処理したかどうか（未処理のテキストデータが残っていないかどうか）を判定し（ｎ１１）、処理されていないテキストデータが残っているとｎ２に戻る。
【００２４】
カタカナ文字列の単語が含まれている場合には、単語候補検出部５がこのカタカナ文字列の単語に未登録単語が含まれているかどうかを判定する（ｎ５）。未登録語が含まれていると、単語候補検出部５はこの未登録単語に連接するカタカナ文字列の単語を含めたカタカナ文字列全体から単語候補を検出し、この検出した単語候補を辞書ファイル４に仮登録する第１の単語候補検出、登録処理を行う（ｎ６）。ｎ５で未登録単語が含まれていないと判定した場合、または、上記したｎ６の処理を完了すると、辞書ファイル４に登録されている複数のカタカナ文字列の登録単語が連接している箇所の有無を判定する（ｎ７）。カタカナ文字列の登録単語が連接した箇所があると、この登録単語をつなげたカタカナ文字列全体から単語候補を検出し、この検出した単語候補を辞書ファイル４に仮登録する第２の単語候補検出、登録処理を行う（ｎ８）。
【００２５】
また、単語候補検証部７は、形態素解析によって分割された単語の中に、ｎ６、または、ｎ８で辞書ファイル４に仮登録されている単語候補と同じカタカナ文字列の単語があるかどうか（ｎ６、または、ｎ８で辞書ファイル４に仮登録した単語候補が別の文字列中から再出現しているかどうか）を判定する（ｎ９）。単語候補が再出現していると、単語候補検証部７が辞書ファイル４に仮登録されているこの再出現した単語候補の正当性を検証する単語候補正当性検証処理を実行する（ｎ１０）。
【００２６】
そして、未処理のテキストデータが残っていないかどうかをｎ１１で判定し、未処理のテキストデータが残っていれば上記したｎ２〜ｎ１０の処理をくりかえす。未処理のテキストデータがなければ、辞書ファイル４に仮登録されている不要な単語候補（正当性が検証されなかった単語候補等）を全て削除して処理を完了する（ｎ１２）。
【００２７】
以下、上記した処理を詳細に説明する。
ｎ１では、テキストデータ記憶部２が形態素解析を行う一連のテキストデータ（ファイル単位、レコード単位、ディレクトリ単位、ハードディスク単位、時間単位、１００ＭＢ等のデータ量単位等）を取り込み、記憶する。
【００２８】
ｎ２、ｎ３では、形態素解析部３がテキストデータ記憶部２に記憶された一連のテキストデータから、順次句読点で区切られた文字列単位で取り出し、形態素解析を行う。そして、形態素解析部３はこの形態素解析を行った句読点で区切られた文字列単位のテキストデータを単語に分割して出力する。
例えば、形態素解析を行うテキストデータに「ファイナンシャルシステム」というカタカナ文字列が含まれているとする。また、辞書ファイル４には図３（Ａ）に示すように「ファイ」「システム」という文字列が単語として登録されており、「ナンシャル」「ファイナンシャル」「ファイナンシャルシステム」という文字列の単語が登録されていないものとする。ここで、形態素解析部３はこの「ファイナンシャルシステム」と言うカタカナ文字列に対して形態素解析を行うと、図３（Ｂ）に示すように「ナ」「ン」「シャ」「ル」で辞書引きに失敗し、「ファイ」と「システム」とを品詞が名詞である単語として検出する。そして、形態素解析部３はこの連続して辞書引きに失敗した「ナ」「ン」「シャ」「ル」をつなげたカタカナ文字列「ナンシャル」を１つの未登録単語とみなし、図３（Ｃ）に示すように「ファイナンシャルシステム」と言う文字列の形態素解析の結果として「ファイ」、「ナンシャル」および「システム」の３つの単語を出力する。このとき「ナンシャル」の品詞は未登録語として出力される。
【００２９】
ｎ４では、形態素解析部３が出力した形態素解析結果にカタカナ文字列の単語が含まれているかどうかを判定する。ここで、形態素解析結果にカタカナ文字列の単語が含まれていない場合には、ｎ５〜ｎ１０の処理を行わず、ｎ１１で未処理のテキストデータの有無を判定する。一方、形態素解析結果にカタカナ文字列の単語が含まれている場合にはｎ５〜ｎ１０の処理を行う。
【００３０】
ｎ５では、単語候補検出部５がこの形態素解析結果に未登録単語が含まれているかどうかを判定する。この実施の形態では、形態素解析の結果にその品詞が未登録語とされた単語を含んでいるときに、未登録単語が含まれていると判定する。上記した例では、品詞が未登録語とされた「ナンシャル」と言う単語が含まれているので、ｎ５で未登録単語を含んでいると判定される。
【００３１】
単語候補検出部５は、ｎ５で未登録単語を含んでいると判定すると、この未登録単語に連接するカタカナ文字列全体から、単語候補を検出し、この検出した単語候補を辞書ファイル４に仮登録する第１の単語候補検出、登録処理を実行する。ここで、未登録単語に連接するカタカナ文字列全体とは、未登録単語の前または／および後ろに連続しているカタカナ文字列の単語（未登録単語に連接している単語）を含めたカタカナ文字列のことである。上記した例では、「ファイナンシャルシステム」が未登録単語に連接するカタカナ文字列全体となる。なお、「ファイ」の前および「システム」の後ろに、カタカナ文字列の単語が連接していないものとする。
【００３２】
ここで、図４を参照しながら第１の単語候補検出、登録処理を詳細に説明する。図４は第１の単語候補検出、登録処理の流れを示すフローチャートである。このカタカナ文字列の未登録単語に連接するカタカナ文字列全体を１つの単語とし、品詞を名詞として辞書ファイル４に登録する（ｎ２１）。上記している例では「ファイナンシャルシステム」が単語（品詞は名詞）として辞書ファイル４に登録される。つぎに、ｎ２１で辞書ファイル４に登録した単語のカタカナ文字列中に含まれる未登録単語が１文字の単語であるかどうかを判定する（ｎ２２）。ここで、１文字の単語でなければこの未登録単語を単語候補の構成要素として検出する（ｎ２３）。未登録単語が１文字であり、この未登録単語の前にカタカナ文字列の登録単語が連接しているとこの登録単語と未登録単語とをつないだ文字列からなる単語を単語候補の構成要素として検出し、また、この未登録単語の前または後ろにカタカナ文字列の登録単語が連接しているとこの登録単語と未登録単語とをつないだ文字列からなる単語を単語候補の構成要素として検出する（ｎ２４）。例えば、「イリオモテ」と言う文字列に対して、形態素解析結果が「イ」が未登録語、「リオ」「モテ」が登録語である場合、「イ」が１文字の未登録であるので後ろの登録語「リオ」とつながれた「イリオ」が単語候補の構成要素として検出される。なお、形態素解析部３で未登録語である「イ」の前に検出している単語はカタカナ文字列ではないとする。また、この１文字の未登録単語の前後両方にカタカナ文字列の登録単語が連接している場合には、前に連接する登録単語とつながれた単語候補の構成要素と、後ろに連接する登録単語とつながれた単語候補の構成要素とを検出する。
【００３３】
そして、形態素解析において、未登録単語を含むカタカナ文字列全体から検出されている登録単語（辞書ファイル４に登録されている単語）の正当性の対象となる登録単語の正当性検証処理を行う（ｎ２５）。ここでは、検証する登録単語が、複合語を形成しうる単語であれば正当性がある、複合語を形成しえない単語であれば正当性がない、とする。上記した「ファイナンシャルシステム」という文字列の例では「ファイ」と「システム」との２つの登録単語が正当性の検証対象となる。単語の正当性の検証は登録単語検証部９で行われる。単語の正当性は以下に示す▲１▼〜▲３▼のルールに基づいて検証される。
▲１▼単語の文字列長によるルール
このルールでは、複合語ではない単語の文字列中に、登録単語と一致する文字列が含まれる可能性は、登録単語の文字列長が長くなるにつれて低下するという理由から、この実施の形態では、
(1) 文字列長が４文字以上の単語であれば正当性のある単語、
(2) 文字列長が２または３文字の単語であれば正当性の有無を判定できない単語、
(3) １文字であれば正当性がない単語、であるとする。
▲２▼単語の品詞によるルール
このルールでは以下に示す品詞の働きに基づいて正当性を検証する。
感動詞は、他の単語を修飾したり、他の単語に修飾されたりする性質がないため、複合語の構成単語とはならない。
副詞は、他の単語を修飾したり、他の単語に修飾されたりする性質がないため、複合語の構成単語とはならない。
サ行変格活用以外の動詞は、複合語の構成単語とならない。
接頭辞は、複合語の最後に来ることはない。
接尾辞は、複合語の先頭にくることはない。
連濁は、複合語の先頭にくることはない。
以上の理由から、本実施の形態では
(1) 単語が感動詞、副詞、サ行変格活用以外の動詞、のいずれかであれば、正当性のない単語、
(2) 単語が接頭辞で、且つ、該単語の後ろにカタカナ文字列が連接していないと、正当性のない単語、
(3) 単語が接尾辞、連濁で、且つ、該単語の前にカタカナ文字列が連接していないと、正当性のない単語、
(4) 上記(1)(2)(3) のいずれにも該当しないと、正当性の有無を判定できない単語、であるとする。
▲３▼単語の性質によるルール
このルールでは、単語毎にその性質を、複合語を形成する可能性の多い単語、複合語を形成する可能性の少ない単語、どちらでもない単語（以下、有用な性質を持たない単語、と言う。）、のいずれかに設定しておき、
(1) 単語の性質が複合語を形成する可能性の多い単語であれば、正当性のある単語、
(2) 単語の性質が複合語を形成する可能性の少ない単語であれば、正当性のない単語、
(3) 単語の性質が有用な性質を持たない単語であれば、正当性の有無を判定できない単語、であるとする。
なお、この単語毎に性質を種類分けはする方法としては、複数の文献等から、単語毎に形成された複合語の数、一致する文字列を含む独立した単語（複合語でない単語）の数等の統計を取り、この統計に基づいて単語の性質を設定すればよい。また、人手による作業でこの統計を取ってもよいし、自動的に統計を取って単語の性質を設定するようにしてもよい。自動的にこの統計を取って単語の性質を設定する処理については後述する。
【００３４】
図５は、ｎ２５における登録単語の正当性検証処理のフローチャートである。この処理は、最初に文字列長によるルールから単語の正当性を検証する。正当性を検証する登録単語の文字列長が、４文字以上、２または３文字、１文字、のいずれであるかを判定する（ｎ４１、ｎ４２）。ここで、文字列長が４文字以上であればｎ４８において正当性のある単語と判定する。文字列長が１文字であればｎ４９において正当性のない単語と判定する。文字列長が２または３文字であれば、単語の文字列長によるルールからは、該単語の正当性を検証できないとして、単語の品詞による正当性の検証を行う。
【００３５】
ここでは、
▲１▼単語の品詞が感動詞、副詞、サ行変格活用以外の動詞、であるか、
▲２▼単語の品詞が接頭辞で且つ後ろにカタカナ文字列が続いていないか、
▲３▼単語の品詞が接尾辞または連濁で且つ前にカタカナ文字列が続いていないか、
を判定し（ｎ４３〜ｎ４５）、この▲１▼〜▲３▼のいずれかに該当する単語であれば、ｎ４９で正当性のない単語と判定する。また、この▲１▼〜▲３▼のいずれにも該当しない単語であれば、この単語の品詞によるルールからは該単語の正当性が検証できないとして、以下の単語の性質による正当性の検証を行う。
【００３６】
上記したように、単語毎に、複合語を形成する可能性の多い単語、複合語を形成する可能性の少ない単語、有用な性質を持たない単語、のいずれかの性質が設定されている。検証する単語の性質が上記したいずれに設定されているかを判定し（ｎ４６、ｎ４７）、複合語を形成する可能性の多い単語であればｎ４８で正当性のある単語と判定する。また、複合語を形成する可能性の少ない単語であればｎ４９で正当性のない単語と判定する。また、有用な性質を持たない単語であれば正当性を検証できない単語と判定する（ｎ５０）。以上のように、この処理では登録単語が正当性のある単語、正当性のない単語、または、正当性の検証できない単語のいずれかに判定される。なお、上記した実施の形態では、単語の文字列長によるルール、単語の品詞によるルール、単語の性質によるルール、の３つで単語の正当性を検証しているが、上記した任意のルール１つまたは２つを組み合わせて単語の正当性を検証するようにしてもよい。
【００３７】
単語候補検出部５は，登録単語の正当性検証処理で、正当性があると判定された単語を単語候補の構成要素としては検出しない（ｎ２６→ｎ３０）。また、正当性がないと判定された単語であれば、前にカタカナ文字列の単語が連接していると、この単語とをつないだ文字列からなる単語を単語候補の構成要素として検出する（ｎ２９）。また、後ろにカタカナ文字列の単語が連接しているとこの単語とつないだ文字列からなる単語を単語候補の構成要素として検出する（ｎ２９）。正当性が検証されなかった単語であれば、その単語を単語候補の構成要素として検出する（ｎ２８）。
【００３８】
例えば、図６（Ａ）に示すように、「ファイナンシャルシステム」と言う文字列に対して、形態素解析によって「ファイ」「システム」が登録語、「ナンシャル」が未登録語とする結果であれば、未登録語である「ナンシャル」の文字列長は１文字ではないので、単語候補の構成要素として検出される。登録単語である「ファイ」は文字列長、単語の品詞、および、その性質からも正当性が検証されない単語であるので、単語候補の構成要素として検出される（「ファイ」は有用な性質を持たない単語であるとする。）。また、登録単語である「システム」は文字列長が４文字であるので、文字列長によるルールによって正当性がある単語と判定され、単語候補の構成要素として検出されない。したがって、この例では、「ファイ」と「ナンシャル」の２つが単語候補の構成要素として検出される。また、図６（Ｂ）に示すように、「インフレーター」と言う文字列に対して、形態素解析の結果が「イン」「フレー」を登録語、「ター」を未登録語とするものであれば、未登録語である「ター」の文字列長は１文字ではないので単語候補の構成要素として検出される。「イン」は文字列長、単語の品詞、および、その性質からも正当性が検証されない単語であるので、単語候補の構成要素として検出される（「イン」は有用な性質を持たない単語であるとする。）。また、感動詞「フレー」は単語の品詞によるルールによって正当性のない単語と判定されるので、前に隣合う単語「イン」とつなげた「インフレー」と後ろに隣合う単語「ター」とつなげた「フレーター」が単語候補の構成要素として検出される。したがって、この例では、「イン」「インフレー」「フレーター」「ター」の４つが単語候補の構成要素として検出される。
また、図６（Ｃ）に示すように、「イリオモテ」と言う文字列に対して、形態素解析の結果が「イ」が未登録語、「リオ」「モテ」が登録語とするものであれば、未登録語である「イ」の文字列長は１文字であるので、その後ろに隣合う単語「リオ」とつながる。また、下一段動詞である「モテ」は単語の品詞によるルールによって正当性のない単語と判定され、前に隣合う単語「リオ」とつながる。ここで、「リオ」にはすでに「イ」が接続されているので、「イリオモテ」が単語候補の構成要素として検出される。
さらに、図６（Ｄ）に示すように、「インタラプタ」言う文字列に対して、形態素解析の結果が「イン」「タラ」が登録語「プタ」が未登録語とするものであれば、未登録語である「プタ」の文字列長は１文字ではないの単語候補の構成要素として検出される。「イン」「タラ」は文字列長、単語の品詞、および、その性質からも正当性が検証されない単語であるので、その単語が単語候補の構成要素として検出される（「イン」「タラ」は有用な性質を持たない単語であるとする。）。したがって、この例では、「イン」「タラ」「プタ」の３つが単語候補の構成要素として検出される。
【００３９】
このようにして検出された単語候補の構成要素および単語候補の構成要素で連接するものの組み合わせを、単語候補として作成する（ｎ３１）。例えば、図６（Ａ）に示す例では、「ファイ」「ナンシャル」「ファイナンシャル」の３つが単語候補として作成される。また、図６（Ｂ）に示す例では、「イン」「インフレー」「フレーター」「ター」「インフレータ」が単語候補として作成される。図６（Ｃ）に示す例では、「イリオモテ」が単語候補として作成される。図６（Ｄ）に示す例では「イン」「タラ」「プタ」「インタラ」「タラプタ」「インタラプタ」が単語候補として作成される。なお、連接していない単語「イン」と「プタ」をつないだ「インプタ」という単語候補は作成されない。そして、ｎ３１で作成された単語候補で且つ辞書ファイル４に登録されていない文字列の単語候補を、辞書ファイル４に仮登録する（ｎ３２）。仮登録された単語候補の品詞は「候補」に設定される。また、単語候補の仮登録においては、この単語候補が切り出された元の文字列の単語（ｎ２１で登録された単語）を登録した辞書ファイル４内の位置を示すデータ（ポインタ）も同時に登録する。図７に単語候補が登録された辞書ファイル４の例を示す。図６（Ａ）に示す例では、「ファイ」はすでに辞書に登録されているので「ナンシャル」「ファイナンシャル」の２つが単語候補として登録され、品詞は候補に設定されている。また、これらの単語候補は切り出された元の文字列の単語「ファイナンシャルシステム」が登録されている辞書ファイル４内の位置を示すデータ（ポインタ８）が付加されて辞書ファイル４に登録される。
【００４０】
以下、ｎ２１で登録した単語の品詞を名詞とした理由について簡単に説明する。カタカナの未登録語の発生源は大きく分けて以下に示す▲１▼〜▲３▼の３つであると考えられる。
▲１▼外来語の動詞、形容詞、名詞がカタカナ表記された日本語となる場合（図８（Ａ）参照）
外来語の動詞は日本語のサ行変格活用の動詞の語幹となり、サ行変格活用の動詞の語幹は名詞として使われている。また、外来語の形容詞は日本語の形容動詞になる。さらに、外来語としても形容詞と名詞の両方の性質をもつものがカタカナ表記されることが多い。これらの理由から、この発生源から発生するカタカナ未登録語が名詞である確率が非常に高いといえる。
▲２▼日本語で難しい漢字や強調したい単語などがカタカナ表記された場合（図８（Ｂ）参照）
この発生源から発生するカタカナ未登録語は上記したようにサ行変格活用の動詞、形容動詞、名詞に加えて文法的に「名詞」と同様に扱われる固有名詞がほとんどであるといえる。したがって、この発生源から発生するカタカナ未登録語も名詞である確率が非常に高いといえる。
▲３▼外来語の擬音語や擬態語を転用、外来語の短縮、または、和声カタカナ語から発生する場合（図８（Ｃ）参照）
この場合には、その品詞がいろいろあって、どの品詞が多いということは一概に言うことはできないが、統計的に言って、このような発生源から発生するカタカナ未登録語の出現の頻度は非常に少ない。
以上の▲１▼〜▲３▼の理由から、カタカナ未登録語の品詞を名詞とすることが最適である考えられるからである。
【００４１】
ｎ７では、形態素解析の結果から複数のカタカナ文字列の登録単語が連接している箇所があるかどうかを判定する。ここで、複数のカタカナ文字列の登録単語が連接している箇所があれば、ｎ８で第２の単語候補検出、登録処理が実行される。図９は、第２の単語候補検出、登録処理の流れを示すフローチャートである。形態素解析結果において、複数のカタカナ文字列の登録単語が連接する例としては「カリマンタン」「カードシステム」等の文字列がある。「カリマンタン」という文字列の形態素解析結果を図１０（Ａ）に示し、「カードシステム」という文字列に対する形態素解析結果を図１０（Ｂ）に示す。「カリマンタン」と言う文字列は、形態素解析で「カリ」「マン」「タン」という３つの登録単語が連接する文字列であると判定される。「カードシステム」と言う文字列は形態素解析で「カード」「システム」という２つの登録単語が連接する文字列であると判定される。
【００４２】
登録単語検証部９が各登録単語に対して、単語の正当性を検証する（ｎ５１、ｎ５２）。この単語の正当性は上記した図５に示した処理で検証される。そして、正当性のない単語が検出されているか（ｎ５３）、または、正当性の検証できない単語が連接して検出されているかを判定する（ｎ５４）。ここで、正当性のない単語が検出されておらず、且つ、正当性の検証できない単語が連接していなければ、未登録単語が含まれている可能性が無いとして処理を完了する。正当性のない単語が検出されている場合、または、正当性を検証できない単語が連接して検出されている場合には、以下の処理が行われる。
【００４３】
このカタカナ文字列全体を１つの単語とし、品詞を名詞として辞書ファイル４に登録する（ｎ５５）。正当性の検証できない単語を、単語候補の構成要素として検出する（ｎ５６）。また、正当性がないと判定された単語は、前にカタカナ文字列の登録単語が連接しているとこの登録単語とつないだ文字列からなる単語を単語候補の構成要素として検出し、また、後ろにカタカナ文字列の登録単語が連接しているとこの登録単語をつないだ文字列からなる単語を単語候補の構成要素として検出する（ｎ５７）。そして、検出された単語候補の構成要素を組み合わせて単語候補を作成し（ｎ５８）、作成された単語候補で且つ辞書ファイル４に登録されていない文字列の単語候補を、辞書ファイル４に仮登録する（ｎ５９）。仮登録された単語候補の品詞は候補に設定される。また、この単語候補が切り出された元の文字列の単語（ｎ５５で登録された単語）が登録されている辞書ファイル４内の位置も記憶される。
【００４４】
例えば、「カリマンタン」という文字列を形態素解析した結果の「カリ」「マン」「タン」の３つの登録単語が全て正当性の検証できない単語であったとする。この場合、ｎ５５で「カリマンタン」の品詞を名詞として辞書ファイル４に登録する。また、「カリ」「マン」「タン」が単語候補の構成要素として検出され、「カリマン」「マンタン」が単語候補として仮登録される。なお、連接していない単語「カリ」「タン」をつないだ「カリタン」という単語は単語候補として作成されない。
また、「カードシステム」という文字列の形態素解析の結果である「システム」は上記した文字列によるルールから正当性のある単語と判定される。したがって、正当性のない単語が検出されておらず、且つ、正当性の検証できない単語も連接しないので、未登録単語が含んでいる可能性が無いと判定され、ｎ５５以降処理が行われない。
【００４５】
すなわち、この実施の形態では、形態素解析の結果に正当性のない単語が含まれている場合、または、正当性が検証できない単語が連接している場合に、カタカナ文字列中に未登録語含まれている可能性があると判断し、その他の場合であればカタカナ文字列中に未登録語含まれている可能性がないと判断している。そして、カタカナ文字列中に未登録語含まれている可能性があると判断した場合には、単語候補を作成し、これを辞書ファイル４に仮登録している。
【００４６】
なお、この第２の単語候補検出、登録処理における単語の正当性の検証において、上記したルールでは厳しすぎて、正当性のある単語を正当性のない単語であると判定してしまうケースも想定される。このような場合には、辞書ファイル４に登録されている複数の単語からなる複合語が、未登録単語として登録されてしまうという問題が生じる恐れもある。このため、この第２の単語候補検出、登録処理における、上記した単語の正当性を検証する単語の文字列長によるルールを以下のように変更してもよい。
【００４７】
(1) 文字列長が３文字以上の単語であれば正当性のある単語、
(2) 文字列長が２文字の単語であれば正当性の有無を判定できない単語、
(3) １文字であれば正当性がない単語、であるとする。
このように、変更することで辞書ファイル４に複数の登録単語からなる複合語が登録される可能性を減少させることができる。
【００４８】
ｎ９では、形態素解析された結果に辞書ファイル４に仮登録されている単語候補が含まれているか（単語候補が再出現したか）どうかを判定している。ここで、単語候補が再出現したと判定すると、ｎ１０の単語候補の正当性検証処理が実行される。図１１は、単語候補の正当性検証処理を示すフローチャートである。最初に、再出現した単語候補に連接するがカタカナ文字列全体が、該単語候補を辞書ファイル４に仮登録したときに切り出した文字列と一致しているかどうかを判定する（ｎ６１）。すなわち、「ファイナンシャルシステム」という文字列から切り出された「ファイナンシャル」という単語が辞書ファイル４に仮登録されている場合、再度同じ文字列から「ファイナンシャル」という単語候補が切り出されたのかどうかを判定する。ｎ６１で、単語候補が切り出された文字列と同一であると判定すると、単語候補の正当性を正確に検証ができないとして処理を完了する。
【００４９】
ｎ６１で文字列が同一でないと判定すると、この文字列の形態素解析された結果に単語候補が２つ以上含まれているかどうかを判定する（ｎ６２）。ｎ６２で単語候補が２つ以上含まれている場合には、単語候補の正当性の検証ができないと判定して処理を完了する。一方、このカタカナ文字列中に単語候補が１つしか含まれていない場合には、各登録単語に対して上記した図５に示す正当性の検証処理を行う（ｎ６３、ｎ６４）。そして、全ての登録単語が正当性のある単語として判定されなければ（ｎ６５）、単語候補の正当性が検証できないとして処理を完了する。全ての登録単語の正当性が検証されれば、該単語候補は正当性があると判定して、辞書ファイル４に該単語候補を正式に登録する（ｎ６６）。単語候補を辞書ファイル４に正式に登録する処理は、その品詞を候補から名詞に変更する処理である。単語候補正式登録部１０がこの仮登録されている単語候補を正式に登録する処理を行う。
【００５０】
例えば、「ファイナンシャルシステム」という文字列が検出されて、辞書ファイル４に「ファイナンシャル」「ナンシャル」が単語候補として仮登録されている。ここで、「ファイナンシャルアドバイザ」という文字列の形態素解析の結果は図１２（Ａ）に示すようになる。なお、「ファイナンシャルアドバイザ」という文字列の形態素解析の結果が、図１２（Ｂ）に示すようになると考えることもできるが、形態素解析の一般的な手法である最長一致法（最も長い単語を優先する。）や、文節数最小法（分割する単語数を最小にする。）を用いることでこのような結果となることはない。そして、「アドバイザ」は文字列長から正当性のある単語と判定される。これにより、「ファイナンシャル」という文字列も正当性がある単語候補と判定され、辞書ファイル４における「ファイナンシャル」の品詞が候補から名詞に変更される。これによって、「ファイナンシャル」が辞書ファイル４に正式に登録されたことになる。
【００５１】
ｎ１で記憶した一連のテキストデータ全体に対して上記した処理が完了すると、辞書ファイル４に仮登録されている不要な単語を削除する処理を実行する。図１４は、不要な単語を削除する不要単語削除処理の流れを示すフローチャートである。辞書ファイル４に登録されている単語で、その品詞が候補である単語を全て検出して削除する（ｎ７１〜ｎ７３）。これによって、単語候補として仮登録されたがその後に同じ文字列が出現しなかったものや、正当性が検証されなかった単語候補は全て削除される。例えば、図１３に示した辞書ファイル４であれば「ナンシャル」「インフレー」「フレーター」・・・等が削除される（図１５（Ａ）参照）。そして、もとの文字列の位置を示すポインタを記憶している単語があれば、このポインタで指定される位置に登録されている単語を削除するとともに、このポインタも同時に削除する（ｎ７４〜ｎ７７）。これによって、上記した処理で正当性が検証され、正式な単語として辞書ファイル４に登録された単語を切り出したカタカナ文字列の単語が削除される。なお、このカタカナ文字列は複合語であり、辞書ファイル４に登録されていなくても問題はない。例えば、図１５（Ａ）に示した辞書ファイル４では「ファイナンシャルシステム」が削除される（図１５（Ｂ）参照）が、「ファイナンシャル」と「システム」は単語として登録されているので、「ファイナンシャルシステム」が削除されたことで問題が生じることはない。
【００５２】
以上、説明したように、本願発明では未登録単語と登録単語とが連接して形成されたカタカナ文字列の複合語から、未登録単語を正確に検出して辞書ファイル４に登録することができる。
また、未登録単語の文字列と、複数の登録単語が連接して形成されたカタカナ文字列とが一致する場合であっても、未登録単語を正確に検出して辞書ファイル４に登録することができる。
さらに、誤って登録された単語は、最終的に削除されるので、辞書ファイル４に不要な単語が登録されることもない。
【００５３】
次に、自動的に統計を取って、単語毎にその性質を、複合語を形成することが多い単語、複合語を形成することが少ない単語、有用な性質を持たない単語、のいずれかに設定する処理を説明する。図１６は、この単語の性質判定処理を示すフローチャートである。ここでは、図１７に示すように辞書ファイル４は、単語毎にその性質を記憶するエリアを有している。図中において、複合語を形成することが多い単語の性質は１であり、複合語を形成することが少ない単語の性質は２であり、有用な性質を持たない単語の性質は３である。また、統計を取るデータとして複合語および単語（辞書ファイル４に登録されていない未登録単語を含む）を登録した統計データを用意する（図１８参照）。なお、複合語には単語間に・を単語の区切りを示す記号として入れられている。
【００５４】
ｎ８１で、統計を取る単語（以下、対象単語と言う。）が選択入力されると、その単語が部分文字列として含まれている全ての単語を検出する（ｎ８２）。例えば、対象単語が「イズム」であれば、図１７に示す辞書ファイル４からは「イズム」「エゴイズム」「ダダイズム」「ヒロイズム」「ヘブライズム」が検出され、対象単語が「マネー」であれば「マネー」「マネージ」「マネージメント」「マネージャ」「マネージャー」が検出される。そして、統計データから１つずつ単語を抽出して（ｎ８３）、以下に示す判定を行う。なお、複合語からは・で区切られた単語毎に抽出する。例えば、統計データに複合語である「イズム・グループ」が入っていれば、「イズム」「グループ」の２つの単語として抽出する。
【００５５】
ｎ８３で抽出した単語に対象単語が部分文字列として含まれているかどうかを判定し（ｎ８４）、含まれていなければｎ８３に戻って次の単語を抽出する。一方、対象単語が部分文字列として含まれていれば、ｎ８３で抽出した単語と対象単語が完全に一致するか（文字列長がおなじかどうか）を判定し（ｎ８５）、文字列長が同じであれば、図示していないカウンタａを１カウントアップする（ｎ８６）。また、文字列長が同じでなければ、（ｎ８３で抽出した単語の文字列長が対象単語の文字列長よりも長ければ）、ｎ８３で抽出された単語と同じ単語がｎ８２で検出されているかどうか（辞書ファイル４に完全に一致する単語が登録されているかどうか）を判定する（ｎ８７）。ここで、辞書ファイル４に完全に一致する単語が登録されていると判定すれば、ｎ８３に戻って次の単語を抽出する。例えば、辞書ファイル４に「エゴイズム」が登録されており、ｎ８３で抽出された単語も「エゴイズム」である場合である。辞書ファイル４に完全に一致する単語が登録されていないと判定すれば、図示していないカウンタｂを１カウントアップする（ｎ８８）。ｎ８６、またはｎ８８の処理が完了すると、ｎ８３に戻って次の単語を抽出する。なお、カウンタａおよびカウンタｂは、ｎ８１で対象単語が選択されたときにカウント値が０に設定される。統計データの全ての単語を抽出して上記したｎ８３以降の処理を完了すると（ｎ８９）、以下に示す単語の性質を判定する処理を行い（ｎ９０）、この性質を対象単語の性質として辞書ファイル４に登録する（ｎ９１）。
【００５６】
図１７に示す辞書ファイル４と図１８に示す統計データを用い、「イズム」と「マネー」を対象単語としたときには、上記した処理でカウンタａ、および、カウンタｂの計数値は、以下のようになる。
「イズム」  ａ＝１、ｂ＝６
「マネー」  ａ＝５、ｂ＝０
単語の性質は、上記したように複合語を形成することが多い単語、複合語を形成することが少ない単語、有用な性質を持たない単語、の３つのいずれかに判定される。この実施の形態では、
ａ／（ａ＋ｂ）＞０．８  が成立すればその性質を複合語のなかで独立した単語となりやすいとし、
ｂ／（ａ＋ｂ）＞０．８  が成立すればその性質を複合語のなかで独立した単語となりにくいとし、
それ以外は、有用な性質をもたない単語であると判定する。
【００５７】
ｎ９０では、上記した処理で得られたカウンタａ、および、カウンタｂの計数値を用いて、上記の演算を行い、単語の性質を判定する。そして、ｎ９１でこの性質を対象単語の性質として辞書ファイル４に登録し、処理を完了する。
【００５８】
以上のように、本実施の形態では単語の性質を統計に基づいて設定するようにしているので、客観的に単語の性質を設定することができる。
【００５９】
【発明の効果】
以上のように、この発明によれば、連接するカタカナ文字列に未登録単語含まれるときに、正確に未登録単語を形成する文字列の範囲を特定して、未登録単語を検出し、この検出した未登録単語を登録することができる。また、誤って検出され、辞書ファイルに登録された単語は最終的に削除されるので、辞書ファイルの容量が不要に大きくなることもない。
【図面の簡単な説明】
【図１】この発明の実施の形態である日本語文解析装置の機能を示すブロック図である。
【図２】この実施の形態の日本語文解析装置の処理を示すフローチャートである。
【図３】形態素解析の概念を示す図である。
【図４】第１の単語候補検出、登録処理の流れを示すフローチャートである。
【図５】登録単語の正当性検証処理のフローチャートである。
【図６】検出される単語候補の構成要素および作成される単語候補の例を示す図である。
【図７】単語候補が登録された辞書ファイルを示す図である。
【図８】カタカナ未登録語の発生源を説明する図である。
【図９】第２の単語候補検出、登録処理の流れを示すフローチャートである。
【図１０】検出される単語候補の構成要素および作成される単語候補の例を示す図である。
【図１１】単語候補の正当性検証処理を示すフローチャートである。
【図１２】単語候補が含まれる文字列の形態素解析結果を示す図である。
【図１３】仮登録されていた単語候補が正式に登録されたときの辞書ファイルを示す図である。
【図１４】不要な単語を削除する不要単語削除処理の流れを示すフローチャートである。
【図１５】不要な単語が削除されたときの辞書ファイルを示す図である。
【図１６】単語性質判定処理を示すフローチャートである
【図１７】単語の性質を記憶する辞書ファイルを示す図である。
【図１８】統計データを示す図である。
【符号の説明】
１−日本語文解析装置
２−テキストデータ記憶部
３−形態素解析部
４−辞書ファイル
５−単語候補検出部
６−単語候補登録部
７−単語候補検証部
８−単語候補削除部
９−登録単語検証部
１０−単語候補正式登録部
【図１】
0003728789.tif 000002
【図２】
0003728789.tif 000003
【図３】
0003728789.tif 000004
【図４】
0003728789.tif 000005
【図５】
0003728789.tif 000006
【図６】
0003728789.tif 000007
【図７】
0003728789.tif 000008
【図８】
0003728789.tif 000009
【図９】
0003728789.tif 000010
【図１０】
0003728789.tif 000011
【図１１】
0003728789.tif 000012
【図１２】
0003728789.tif 000013
【図１３】
0003728789.tif 000014
【図１４】
0003728789.tif 000015
【図１５】
0003728789.tif 000016
【図１６】
0003728789.tif 000017
【図１７】
0003728789.tif 000018
【図１８】
0003728789.tif 000019