(57)【特許請求の範囲】
【請求項１】
自然言語からなるテキストデータを分析する装置であって、
自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書と、単語と前記単語の意味を表現する概念とを対応付ける辞書とから成る辞書データを読み込む外部定義辞書取得手段と、
前記外部定義辞書取得手段によって取得した辞書データを元に、前記テキストデータの概念に内包される単語の生起コストの平均値又は最頻値を概念の生起コストとして推定する概念特性推定手段と、
ユーザが追加で作成した単語と前記単語の意味を表現する概念とを対応付ける辞書を読み込み、前記概念特性推定手段によって得られた概念の生起コストを当該概念に内包される単語と対応付けることにより、単語の生起コストを推定する単語特性推定手段と、
前記外部定義辞書取得手段によって得られる辞書データと前記単語特性推定手段によって得られる単語の生起コストとを含む分析辞書を構築する分析辞書構築手段と、
ユーザが入力した自然言語からなるテキスト情報を入力文として受け付ける文字情報受付手段と、
前記分析辞書構築手段により生成した分析辞書を用いて前記文字情報受付手段によって得られた入力文に内包される単語を同定して抽出する単語抽出手段と、
前記単語抽出手段によって得られた抽出結果をユーザの指示に基づき、選択して出力する分析結果出力手段と
を有することを特徴とする情報分析装置。
【請求項２】
前記外部定義辞書取得手段が、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて、前記概念間の関係性を定義した概念関係辞書を読み込む手段をさらに有し、前記概念特性推定手段が、概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成する概念特性修正手段をさらに有することを特徴とする請求項１に記載の情報分析装置。
【請求項３】
前記分析結果出力手段が出力した結果が未知語を含む場合、前記未知語を記憶装置に保持する改善候補保持手段と、
前記各辞書をメンテナンスするユーザの指示に従い、前記未知語を提示する改善候補データ提示手段とをさらに備えることを特徴とする請求項１または請求項２に記載の情報分析装置。
【請求項４】
自然言語からなるテキストデータを計算機によって分析する方法であって、
前記計算機が、
自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書と、単語と前記単語の意味を表現する概念とを対応付ける辞書とから成る辞書データを読み込む第１のステップと、
前記第１のステップにおいて読み込んだ辞書データを元に、前記テキストデータの概念に内包される単語の生起コストの平均値又は最頻値を概念の生起コストとして推定する第２のステップと、
ユーザが追加で作成した単語と前記単語の意味を表現する概念とを対応付ける辞書を読み込み、前記第２のステップで得られた概念の生起コストを当該概念に内包される単語と対応付けることにより、単語の生起コストを推定する第３のステップと、
前記第１のステップにおいて読み込んだ辞書データと前記第２のステップにおいて得られた単語の生起コストとを含む分析辞書を構築する第３のステップと、
ユーザが入力した自然言語からなるテキスト情報を入力文として受け付ける第４のステップと、
前記第３のステップにおいて構築した分析辞書を用いて前記第４のステップにおいて受け付けた入力文に内包される単語を同定して抽出する第５のステップと、
前記第５のステップにおいて抽出した抽出結果をユーザの指示に基づき、選択して出力する第６のステップと
を備えることを特徴とする情報分析方法。
【請求項５】
前記第１のステップが、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて、前記概念間の関係性を定義した概念関係辞書を読み込むステップをさらに有し、前記第２のステップが、概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成するステップをさらに有することを特徴とする請求項４に記載の情報分析方法。
【請求項６】
前記第６のステップにおいて出力した結果が未知語を含む場合、前記未知語を記憶装置に保持するステップと、
前記各辞書をメンテナンスするユーザの指示に従い、前記未知語を提示するステップをさらに備えることを特徴とする請求項４または請求項５に記載の情報分析方法。
【請求項７】
前記第１のステップにおいて、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて前記概念間の関係性を定義した概念関係辞書を読み込み、記憶装置に格納するステップと、
概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成するステップとをさらに含むことを特徴とする請求項５に記載の情報分析方法。
【請求項８】
自然言語からなるテキストデータを計算機によって分析するためのプログラムであって、
前記計算機を、
自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書と、単語と前記単語の意味を表現する概念とを対応付ける辞書とから成る辞書データを読み込む外部定義辞書取得手段と、
前記外部定義辞書取得手段によって取得した辞書データを元に、前記テキストデータの概念に内包される単語の生起コストの平均値又は最頻値を概念の生起コストとして推定する概念特性推定手段と、
ユーザが追加で作成した単語と前記単語の意味を表現する概念とを対応付ける辞書を読み込み、前記概念特性推定手段によって得られた概念の生起コストを当該概念に内包される単語と対応付けることにより、単語の生起コストを推定する単語特性推定手段と、
前記外部定義辞書取得手段によって得られる辞書データと前記単語特性推定手段によって得られる単語の生起コストとを含む分析辞書を構築する分析辞書構築手段と、
ユーザが入力した自然言語からなるテキスト情報を入力文として受け付ける文字情報受付手段と、
前記分析辞書構築手段により構築した分析辞書を用いて前記文字情報受付手段によって得られた入力文に内包される単語を同定して抽出する単語抽出手段と、
前記単語抽出手段によって得られた抽出結果をユーザの指示に基づき、選択して出力する分析結果出力手段として機能させることを特徴とするプログラム。
【請求項９】
前記外部定義辞書取得手段を、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて、前記概念間の関係性を定義した概念関係辞書を読み込む手段として機能させ、さらに前記概念特性推定手段を、概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成する概念特性修正手段として機能させることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記分析結果出力手段が出力した結果が未知語を含む場合、前記未知語を記憶装置に保持する改善候補保持手段として機能させ、
前記各辞書をメンテナンスするユーザの指示に従い、前記未知語を提示する改善候補データ提示手段として機能させることを特徴とする請求項８または請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いた情報分析方法および情報分析装置並びにプログラムに係り、特に、Ｗｅｂ、企業内、あるいは、ローカルに存在するコンテンツなど電子化文書に内包される自然言語からなるテキストデータを対象とした、テキストデータの単語構成を分析する情報分析方法および装置並びにそれに用いるプログラムに関するものである。
【背景技術】
【０００２】
近年、インターネットの発達や計算機の普及などに伴い、自然言語によって記載された電子化文書が大量に流通するようになっており、今後も加速度的に増大するものと予想される。
このような状況において、これらの電子化文書を計算機上で分析し、情報検索や自動分類、自動要約など電子化文書を利活用するための仕掛けに対する需要が高まっている。
【０００３】
こういった電子化文書に対する利活用の仕組みを現実的な性能で実現するためには、電子化文書内に存在するテキストデータを何らかの形で文字列に分解する必要がある。特に、日本語や中国語、韓国語などでは単語の区切り文字（英語におけるスペースなど）が存在しないため、文字列分解方法について検討する必要がある。
【０００４】
一般的には、文字列分解を実現する技術として、形態素解析技術（例えば、特許文献１、および非特許文献１、２、５、６）もしくはＮ−ｇｒａｍ技術（例えば、特許文献２および非特許文献３、４）を用いることが多い。なお、Ｎ−ｇｒａｍ技術は、統計的に連続した文字列の出現傾向を元に特定の文字列に分解する手法であるため、形態素解析技術において必須となる辞書が必要ないという利点があるが、結果として得られた分割文字列が言語的に意味のある塊になっているという保証はない。そのため、単語の意味などを踏まえた文字列分割を行ないたい場合は、形態素解析技術を用いることが主流となっている。
形態素解析技術を用いることによる文字列分割（以下、分かち書きと呼ぶ）後の各文字列は、形態素と呼ばれる言語的に意味のある塊となっており、さらに、各形態素における詳細な特性情報（品詞、名詞、動詞など）を利用することが可能になるため、より詳細なデータによる様々な再利用が可能になるという利点がある。ただし、形態素解析技術を実現したプログラム（以下、形態素解析エンジンと呼ぶ）では、一般的に、形態素解析を実行するための本体となるプログラムの他に、形態素解析を実行するための辞書、具体的には、その言語に対応した単語情報を定義した単語辞書と、その言語における語彙の連接関係に関する情報を格納した連接辞書などが必要となっている。すなわち、形態素解析を実行するためには、その言語に対応した言語知識を格納した複数の形態素解析用の辞書（以下、形態素解析辞書と呼ぶ）が別途必要となる。
このことから、形態素解析エンジンには、その形態素解析エンジンに対応した自然言語毎の形態素解析辞書を別途提供している形態が多い。この形態素解析辞書を用いることにより、９５〜９８％程度の形態素解析精度を得ることができるとされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−３３５２２２号公報．
【特許文献２】特開平１１−３３８８８３号公報．
【特許文献３】特開２００９−１８１４０８号公報．
【非特許文献】
【０００６】
【非特許文献１】長尾真、「計算機による日本語文章の解析に関する研究」、      昭和５３年度文部省科学研究費特定研究（１）研究報告書．
【非特許文献２】安田明夫、「形態素解析と分かち書き処理」、              http://wordminer.comquest.co.jp/wmtips/pdf/H15_01-4.pdf．
【非特許文献３】徳永健伸：「情報検索と言語処理」、東京大学出版会、1999．
【非特許文献４】北研二：「確率的言語モデル」、東京大学出版会、1999．
【非特許文献５】奥村学：「自然言語処理の基礎」、コロナ社、2010．
【非特許文献６】工藤拓：「Conditional Random Fieldsを用いた日本語形                    態素解析」、情報処理学会、2004-NL-161、2004．
【非特許文献７】柳原正，池田一史，松本和則，滝嶋康弘：                    「情報量基準に基づく形態素解析用辞書の自動獲得方式」、                    FIT2009、第8回情報科学技術フォーラム、E-027、2009．
【非特許文献８】Pronceton WordNet：http://wordnet.princeton.edu/．
【非特許文献９】日本語WordNet：http://nlpwww.nict.go.jp/wn-ja/．
【非特許文献１０】日本電子化辞書研究所：EDR電子化                    辞書利用マニュアル、1995．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、現状用いられている形態素解析辞書は過去の新聞記事データを元に構築されたものである。したがって、新聞のような文体の一般的なテキストデータを解析する場合には適しているが、過去の新聞記事データから構築されたものであることから、新語、造語、顔文字、あるいは、専門用語といった語彙については未対応とならざるを得ない。それゆえ、新語、造語、顔文字、あるいは、専門用語といった語彙を含むテキストデータを形態素解析すると解析精度が低下するという問題がある。
【０００８】
例えば、「ＷＳＤＬ」や「部門名」などといった、ある特定の業界内あるいは企業内でのみ使われる独自の用語があるが、そのような用語について全て定義することはそもそも困難である。
また、もしその分野における用語を全て定義したとしても、その形態素解析辞書を別の業界や企業に適用すれば、その業界や企業では使われていない用語であるため、解析精度がかえって低下することになる。このことから、専門用語などについては、状況に応じて辞書を複数用意し、容易に辞書を切り替えられるような仕組みが求められる。
【０００９】
また、言葉というのは、例えば、「スマートフォン」や「ガラケー」など、以前は存在しなかった新しい語彙（新語）や造語を時代とともに定義したり、その語彙が示す意味内容が変化したりするものである。これらについても、容易に追加や変更ができるような仕組みが求められる。
上述した問題を解決するためには、状況に応じて形態素解析辞書をメンテナンスすることが必要となる。しかし、現状の形態素解析エンジンでは、このメンテナンスを人手で行なう必要があり、過大な負担となっていることが問題となっている。
【００１０】
この課題について、図面を用いて説明する。
まず，形態素解析辞書には、少なくとも単語自体の情報を格納するための「単語辞書」と単語間の連接情報を格納するための「連接辞書」が存在する。
図３は、形態素解析辞書の一部である単語辞書の一例を示す図である。
【００１１】
ここで例示する単語辞書は、自然言語における単語の情報を格納するものであり、図３で示すように「表層形」、「左文脈ID」、「右文脈ID」、「生起コスト」といったデータによって構成されている。
「表層形」というのは、単語が表記される形である。
「左文脈ID」はその単語を左（前）から見たときの内部状態における識別子、
「右文脈ID」はその単語を右（後）から見たときの内部状態における識別子である。
また、「生起コスト」とは、その単語の出現しやすさを示す指標である。この数値が小さいほど出現しやすいという意味となる。
また、上述したデータ項目の他、品詞、基本形、活用形、単語の原形、読み等を付与している辞書も存在する。
【００１２】
次に、図４は、形態素解析辞書の一部である連接辞書の一例を示す図である。ここで例示する連接辞書は、自然言語における各単語間の連接コスト（つながりやすさ）を格納するものであり、図４で示すように「右文脈ID」と「左文脈ID」とをペアにした場合における「連接コスト」をマトリックス状に構成するものである。「連接コスト」が小さいほど、その文脈IDを保持する単語間（右文脈ＩＤを保持する単語と左文脈ＩＤを保持する単語）はつながり易いという意味となる。なお、ここで示す「右文脈ID」と「左文脈ID」は、図３と同じものを指す。
【００１３】
形態素解析エンジンでは、上記単語辞書と連接辞書を用いて図３６に示すようなラティス構造と呼ばれる内部状態を生成し、これを元に分かち書きを実行することになる。なお、ラティス構造の生成方法および形態素解析技術における詳細な処理方式については、公知であるため省略する。
【００１４】
図３６は、「東京都に住む」という文字列をラティス構造にした場合の例を示す図である。ここで、例えば、この図における「東京」という言葉の下に記載している数値が「生起コスト」と呼ばれるものであり、この場合は「15」という値になっている。また、例えば、「東京」と「都」の間に存在する数値が「連接コスト」と呼ばれるものであり、ここでは「10」という値となっている。形態素解析技術では、ラティス構造中のパス上に存在する「生起コスト」と「連接コスト」を加算していき、その総和が最も低い値を持つパス（この場合、「東京／都／に／住む」）が最もふさわしい分割であると判断し、分かち書き実行結果として提示することになる。
【００１５】
この仕組み上、辞書内部に設定されている「生起コスト」、「連接コスト」に相当する数値の精度が低ければ、形態素解析精度の低下に直結するということになる。すなわち、辞書に存在しない単語を新たに登録したい場合には、その単語に対応する「生起コスト」、「連接コスト」の妥当な数値を算出した上で、該当単語を形態素解析用辞書に登録するという作業が必須となる。ただし、新規に登録する単語であるため、必要な数値を設定するための指標となる値がそもそも存在しないことが問題である。そのため、実際には、辞書メンテナンス作業者が試行錯誤を行ないながら妥当と考えられる数値を経験的に算出し、単語登録を行なうという形態になっていることが多い。
【００１６】
従来における形態素解析辞書のメンテナンス作業では、上述したような問題を人手によって試行錯誤で解決しているため、過大な負担となっていた。言い換えれば、そもそも形態素解析辞書のメンテナンスにおける作業コストが相当高いため、形態素解析辞書に単語を容易に追加したり、用途に応じて形態素解析辞書を切り替えたりするような仕組みが存在しなかった。
【００１７】
この作業コストを低減するための方式としては、例えば、前述の非特許文献7にて提示されている方法がある。この方法は、未知語として検出された語彙に対して、情報量基準に基づくモデル検定によって未知語内の単語境界およびその品詞を推定する手法である。しかし、この手法はあくまでも未知語内の単語境界を統計的に推定する手法、つまり、未知語内に単語区切り位置が存在するか否かを推定する手法であるため、そもそも、本来分割してはいけない語彙を形態素解析エンジンによって分割してしまった場合に対応することができないという問題がある。
【００１８】
例えば、形態素解析辞書に「日立ソリューションズ」という単語が登録されていない状態で「日立ソリューションズ」を含むテキストデータに対して形態素解析を実行した場合を考える。その場合、形態素解析エンジンによる解析結果として、「日立」、「ソリューションズ」等の単語を抽出することになる。しかし、「日立ソリューションズ」は社名であり、本来は、一語として抽出すべきものである。非特許文献7の方式では、例えば、「ソリューションズ」の内部に単語区切り位置が存在するか否かを推定することは可能であるが、そもそも形態素解析エンジンによって、「日立」と「ソリューションズ」で分割されてしまっているため、この手法で対応することは困難である。
【００１９】
そこで、本発明は、言葉（語彙）が持つ意味に着目することにより、形態素解析辞書の人手によるメンテナンス作業を低減しながら、高精度な形態素解析を実現する方法及びシステム並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解消するために、本発明に係る情報分析方法は、言葉（語彙）が持つ意味に着目し、単語自体の「生起コスト」と「連接コスト」が存在しない場合でも、言葉（語彙）が持つ意味から上記コストを同定する手段を備えることを特徴とする。
本発明は、日本語に限らず、言語の特性として、同じ種別（概念）に属するものを直接入れ替えても文章として成立することが多いことから着想を得ている。例えば、「私は、日立のテレビを買いました。」という文章の場合、「日立」を「東芝」や「ＧＥ」などに置き換えても文章として成立する。また、「テレビ」を「パソコン」、「携帯電話」、あるいは、「スマートフォン」などに入れ替えても文章は成立する。ここで、「日立」「東芝」「ＧＥ」といった単語については、例えば「企業名」という概念で集約することができる。また、「テレビ」、「パソコン」、「携帯電話」、あるいは、「スマートフォン」という単語については、例えば「商品」という概念で集約することができる。こういったことは、特に名詞と類される単語に有効であると考えられる。業界内あるいは企業内で独自に用いられる単語など新規に登録したい単語のほとんどは名詞に属するものであるため、この概念による集約という考え方は特に有効であると考えられる。
【００２１】
具体的には、前処理として、概念の定義を行なうための「概念定義辞書」および概念と単語を結び付けるための「概念辞書」、そして、概念間の関係性を定義する「概念関係定義辞書」を用意する。これら概念に関する各種辞書と市場に存在する汎用的な形態素解析辞書を用いて、この概念における生起コストおよび連接コストを算出し、それぞれ概念生起コスト辞書と概念連接コスト辞書として生成する。次に、生起コストおよび連接コストが設定されていない単語に対して、概念生起コスト辞書および概念連接コスト辞書を用いることにより生起コストおよび連接コストを同定する。この同定結果を元に、形態素解析用辞書を再構築する。
その後、本処理として形態素解析を実行する際には、前処理として再構築済の形態素解析辞書を用いて行なう。
これにより、事前に単語の生起コストおよび連接コストが設定されていない場合でも、その単語が属する概念から該当単語の生起コストおよび連接コストが自動的に設定されることになり、高精度な解析精度を実現することが可能となる。
【００２２】
具体的には、本発明に係る情報分析装置は、自然言語からなるテキストデータを分析する装置であって、
自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書と、単語と前記単語の意味を表現する概念とを対応付ける辞書とから成る辞書データを読み込む外部定義辞書取得手段と、
前記外部定義辞書取得手段によって取得した辞書データを元に、前記テキストデータの概念に内包される単語の生起コストの平均値又は最頻値を概念の生起コストとして推定する概念特性推定手段と、
ユーザが追加で作成した単語と前記単語の意味を表現する概念とを対応付ける辞書を読み込み、前記概念特性推定手段によって得られた概念の生起コストを当該概念に内包される単語と対応付けることにより、単語の生起コストを推定する単語特性推定手段と、
前記外部定義辞書取得手段によって得られる辞書データと前記単語特性推定手段によって得られる単語の生起コストとを含む分析辞書を構築する分析辞書構築手段と、
ユーザが入力した自然言語からなるテキスト情報を入力文として受け付ける文字情報受付手段と、
前記分析辞書構築手段により生成した分析辞書を用いて前記文字情報受付手段によって得られた入力文に内包される単語を同定して抽出する単語抽出手段と、
前記単語抽出手段によって得られた抽出結果をユーザの指示に基づき、選択して出力する分析結果出力手段と
を有することを特徴とする。
【００２３】
また、前記外部定義辞書取得手段が、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて、前記概念間の関係性を定義した概念関係辞書を読み込む手段をさらに有し、前記概念特性推定手段が、概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成する概念特性修正手段をさらに有することを特徴とする。
【００２４】
また、前記分析結果出力手段が出力した結果が未知語を含む場合、前記未知語を記憶装置に保持する改善候補保持手段と、
前記各辞書をメンテナンスするユーザの指示に従い、前記未知語を提示する改善候補データ提示手段とをさらに備えることを特徴とする。
【００２５】
本発明に係る分析方法は、自然言語からなるテキストデータを計算機によって分析する方法であって、
前記計算機が、
自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書と、単語と前記単語の意味を表現する概念とを対応付ける辞書とから成る辞書データを読み込む第１のステップと、
前記第１のステップにおいて読み込んだ辞書データを元に、前記テキストデータの概念に内包される単語の生起コストの平均値又は最頻値を概念の生起コストとして推定する第２のステップと、
ユーザが追加で作成した単語と前記単語の意味を表現する概念とを対応付ける辞書を読み込み、前記第２のステップで得られた概念の生起コストを当該概念に内包される単語と対応付けることにより、単語の生起コストを推定する第３のステップと、
前記第１のステップにおいて読み込んだ辞書データと前記第２のステップにおいて得られた単語の生起コストとを含む分析辞書を構築する第３のステップと、
ユーザが入力した自然言語からなるテキスト情報を入力文として受け付ける第４のステップと、
前記第３のステップにおいて構築した分析辞書を用いて前記第４のステップにおいて受け付けた入力文に内包される単語を同定して抽出する第５のステップと、
前記第５のステップにおいて抽出した抽出結果をユーザの指示に基づき、選択して出力する第６のステップと
を備えることを特徴とする。
【００２６】
また、前記第１のステップが、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて、前記概念間の関係性を定義した概念関係辞書を読み込むステップをさらに有し、前記第２のステップが、概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成するステップをさらに有することを特徴とする。
【００２７】
また、前記第６のステップにおいて出力した結果が未知語を含む場合、前記未知語を記憶装置に保持するステップと、
前記各辞書をメンテナンスするユーザの指示に従い、前記未知語を提示するステップをさらに備えることを特徴とする。
【００２８】
さらに、前記第１のステップにおいて、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて前記概念間の関係性を定義した概念関係辞書を読み込み、記憶装置に格納するステップと、
概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成するステップとをさらに含むことを特徴とする。
【００２９】
また、本発明に係るプログラムは、自然言語からなるテキストデータを計算機によって分析するためのプログラムであって、
前記計算機を、
自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書と、単語と前記単語の意味を表現する概念とを対応付ける辞書とから成る辞書データを読み込む外部定義辞書取得手段と、
前記外部定義辞書取得手段によって取得した辞書データを元に、前記テキストデータの概念に内包される単語の生起コストの平均値又は最頻値を概念の生起コストとして推定する概念特性推定手段と、
ユーザが追加で作成した単語と前記単語の意味を表現する概念とを対応付ける辞書を読み込み、前記概念特性推定手段によって得られた概念の生起コストを当該概念に内包される単語と対応付けることにより、単語の生起コストを推定する単語特性推定手段と、
前記外部定義辞書取得手段によって得られる辞書データと前記単語特性推定手段によって得られる単語の生起コストとを含む分析辞書を構築する分析辞書構築手段と、
ユーザが入力した自然言語からなるテキスト情報を入力文として受け付ける文字情報受付手段と、
前記分析辞書構築手段により構築した分析辞書を用いて前記文字情報受付手段によって得られた入力文に内包される単語を同定して抽出する単語抽出手段と、
前記単語抽出手段によって得られた抽出結果をユーザの指示に基づき、選択して出力する分析結果出力手段として機能させることを特徴とする。
【００３０】
また、前記外部定義辞書取得手段を、外部定義辞書として、自然言語に用いられる単語とその生起コストを対応付けて登録した単語辞書および単語と前記単語の意味を表現する概念とを対応付ける辞書に加えて、前記概念間の関係性を定義した概念関係辞書を読み込む手段として機能させ、さらに前記概念特性推定手段を、概念の生起コストを、当該概念と関係のある概念の生起コストに所定の重み係数を乗算することによって生成する概念特性修正手段として機能させることを特徴とする。
【００３１】
また、前記分析結果出力手段が出力した結果が未知語を含む場合、前記未知語を記憶装置に保持する改善候補保持手段として機能させ、
【００３２】
前記各辞書をメンテナンスするユーザの指示に従い、前記未知語を提示する改善候補データ提示手段として機能させることを特徴とする。
【発明の効果】
【００３３】
本発明によれば、言葉（語彙）が持つ意味概念を考慮する仕組みを提供することにより、辞書メンテナンス作業者が新たな単語を登録する場合には、概念と単語を紐付けるだけでよい。そもそも、人が単語に関わる生起コストや連接コストを算出することは難しいが、その単語がどの概念（意味グループ）に属するかを想像することは相当容易である。
このことから、形態素解析辞書における辞書メンテナンスコストを削減することができるようになる。さらに、新規単語の辞書登録自体が容易になるため、頻繁にメンテナンスを行なうことができるようになり、結果として形態素解析精度の向上につなげることができるなどの効果が得られる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１の実施形態における情報分析システムの全体構成を示すブロック図である。
【図２】本発明の第１の実施の形態における情報分析辞書構築サブシステム１０１の構成を示すブロック図である。
【図３】本発明の第１の実施形態における単語辞書Ｄ１１０の例の説明図である。
【図４】本発明の第１の実施形態における連接辞書Ｄ１２０の例の説明図である。
【図５】本発明の第１の実施形態における概念定義辞書Ｄ１３０の例の説明図である。
【図６】本発明の第１の実施形態における概念辞書Ｄ１４０の例の説明図である。
【図７】本発明の第１の実施形態における概念生起コスト辞書Ｄ１５０の例の説明図である。
【図８】本発明の第１の実施形態における概念連結コスト辞書Ｄ１６０の例の説明図である。
【図９】本発明の第１の実施形態における情報分析辞書構築制御プログラムＰ１１によって実行される処理のフローチャートである。
【図１０】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される処理の概要を示すフローチャートである。
【図１１】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される内部処理（ステップＳ１０７０４）のフローチャートである。
【図１２】本発明の第１の実施形態における概念生起コストモデルの例の説明図である。
【図１３】本発明の第１の実施形態における概念連接コストモデルの例の説明図である。
【図１４】本発明の第１の実施形態における未処理単語モデルの例の説明図である。
【図１５】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される内部処理（ステップＳ１０７０７）のフローチャートである。
【図１６】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される内部処理（ステップＳ１０７０７１）のフローチャートである。
【図１７】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される内部処理（ステップＳ１０７０７２）のフローチャートである。
【図１８】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される内部処理（ステップＳ１０７０７３）のフローチャートである。
【図１９】本発明の第１の実施形態における概念コスト分析プログラムＰ１１１によって実行される内部処理（ステップＳ１０７０７４）のフローチャートである。
【図２０】本発明の第１の実施形態における概念定義辞書および概念辞書のイメージ例の説明図である。
【図２１】本発明の第１の実施形態における単語を新規追加した概念定義辞書および概念辞書のイメージ例の説明図である。
【図２２】本発明の第１の実施形態における単語登録画面の例の説明図である。
【図２３】本発明の第１の実施の形態における情報分析サーバ１０２の構成を示すブロック図である。
【図２４】本発明の第１の実施形態における情報分析プログラムＰ１２によって実行される処理のフローチャートである。
【図２５】本発明の第１の実施形態における未知語リストＤ２０0の例の説明図である。
【図２６】本発明の第１の実施形態における情報分析クライアント１０３あるいは１０４の構成を示すブロック図である。
【図２７】本発明の第１の実施形態における分析クライアント制御プログラムＰ１３によって実行される処理を示すフローチャートである。
【図２８】本発明の第２の実施形態における情報分析辞書構築サブシステム１０１の構成を示すブロック図である。
【図２９】本発明の第２の実施形態における情報分析辞書構築制御プログラムＰ１１によって実行される処理のフローチャートである。
【図３０】本発明の第２の実施の形態における概念関係定義辞書Ｄ１７０の例の説明図である。
【図３１】本発明の第２の実施形態における概念関係調整プログラムＰ１１２によって実行される処理（ステップＳ１１１）のフローチャートである。
【図３２】本発明の第２の実施形態における概念定義辞書Ｄ１３０の具体例の説明図である。
【図３３】本発明の第２の実施形態における概念辞書Ｄ１４０の具体例の説明図である。
【図３４】本発明の第２の実施形態における概念関係定義辞書Ｄ１７０の具体例の説明図である。
【図３５】本発明の第２の実施形態における概念定義辞書および概念辞書のイメージ例の説明図である。
【図３６】一般的な形態素解析エンジンにおけるラティス構造の一例である。
【発明を実施するための形態】
【００３５】
以下、本発明を図示する実施形態に基づいて詳細に説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態を示すシステムの全体構成図である。
図１に示す通り、本実施形態の情報分析システムは情報分析辞書構築サブシステム１０１、情報分析サーバ１０２、情報分析クライアント１０３および１０４を備える。これらの各装置はネットワーク１０５によって接続されている。
情報分析辞書構築サブシステム１０１は、形態素解析に用いる単語辞書や連結辞書を再構築するための計算機であり、その詳細な構成は図２を用いて後述する。すなわち、情報分析辞書構築サブシステム１０１は、形態素解析に用いる単語辞書や連結辞書の他、言葉の意味概念を定義するための概念定義辞書と概念と単語を紐付けるための概念辞書を保持する。情報分析辞書構築サブシステム１０１は、これらの各種辞書を用いて、概念レベルでの生起コストと連接コストを算出し、それぞれ概念生起コスト辞書および概念連接コスト辞書として生成する。
その後、この概念生起コスト辞書および概念連接コスト辞書を元に単語辞書および連接辞書を再構築する。
【００３６】
再構築した単語辞書および連接辞書は、ネットワーク１０５を介して情報分析サーバ１０２に転送され、後に情報分析サーバ１０２が分析処理を行なう際に用いられる。
【００３７】
情報分析サーバ１０２は、情報を分析するための計算機であり、その詳細な構成は図２３を用いて後述する。すなわち、情報分析サーバ１０２は、情報分析クライアント１０３および１０４から分析コマンドを受け取り、情報分析辞書構築サブシステム１０１から得られた各種辞書データを用いて分析コマンドの指定する条件に基づいてデータを分析し、結果データを要求元の情報分析クライアントに送り返す。
【００３８】
情報分析クライアント１０３および１０４は、情報分析を行うユーザが操作するための計算機であり、その詳細な構成は図２６を用いて後述する。すなわち、情報分析クライアント１０３および１０４は、ユーザが対話的に分析条件を指定するための画面をディスプレイ上に表示し、この画面上でユーザが指定した分析条件を情報分析サーバ１０２にとって解釈可能な分析コマンドの形に変換し、この分析コマンドをネットワーク１０５によって情報分析サーバ１０２に送信する。
【００３９】
前記の通り、情報分析サーバ１０２が分析コマンドに対する処理を行い、結果データを送り返してくると、情報分析クライアントは受け取った結果データを画面に表示してユーザに提示する。なお、ユーザが分析条件を入力する形態としては、ユーザ自らキーボードから自然文を指定する場合、情報分析クライアントに蓄積されているテキストデータを用いる場合、フロッピーディスクや光ディスクなどの可搬型媒体からテキストデータを読み込む場合、あるいは、ネットワーク１０５を介して転送されてくるテキストデータを入力とする場合などが想定されるが、いずれの形態を利用しても構わない。
【００４０】
また、図１では、２台のコンピュータ１０３および１０４を情報分析クライアントとして使用する例を示したが、情報分析クライアントは1台のみとする構成を取ることも、３台以上とする構成を取ることもできる。
【００４１】
ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）および（または）広域エリアネットワーク（ＷＡＮ）であって、情報分析辞書サブシステム１０１、情報分析サーバ１０２、情報分析クライアント１０３および１０４が各種データやコマンドを送受信するために用いられる。
【００４２】
ここで、図１では、情報分析辞書構築サブシステム１０１から情報分析サーバ１０２に各種辞書データを転送するためにネットワーク１０５を使用するものとしたが、代わりにフロッピーディスクや光ディスクなどの可搬型媒体を使用する構成を取ることもできる。あるいは、情報分析辞書構築サブシステム１０１と情報分析サーバ１０２を１台のコンピュータ上に実装し、データ転送を行なわない構成を取ることもできる。
【００４３】
さらに、図１では、情報分析クライアント１０３および１０４と情報分析サーバ１０２は別個のコンピュータを使用するものとしたが、１個以上の情報分析クライアントを情報分析サーバと同一のコンピュータ上で実行する構成を取ることもできる。
【００４４】
＜情報分析辞書構築サブシステム１０１＞
次に、本実施形態における情報分析辞書構築サブシステム１０１について説明する。
図２は、本実施形態における情報分析辞書構築サブシステム１０１の構成を示すブロック図である。
情報分析辞書構築サブシステム１０１は、メモリ１１０、記憶装置１２０、ＣＰＵ（中央演算装置）１３０、出力装置１４０、入力装置１５０および通信インタフェース１６０を備え、これらの各構成がバス１７０によって接続される一般的な構成のコンピュータである。
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０および情報分析辞書構築制御プログラムＰ１１がメモリ１１０に格納される。また、メモリ１１０には、ＣＰＵ１３０によるプログラムの実行時にデータを一時的に格納するワークエリアが設けられる。
【００４５】
システム制御プログラムＰ１０はいわゆるオペレーティングシステムであり、情報分析辞書構築サブシステム１０１の全体を制御する。
情報分析辞書構築制御プログラムＰ１１は、情報分析のために必要となる辞書を構築するプログラムであり、概念コスト分析プログラムＰ１１１を含む。
概念コスト分析プログラムＰ１１１は、記憶装置１２０に存在する各種辞書を読み出し、単語の生起コストや連接コストを同定するために必要となる概念レベルでのコスト値を算出し、記憶装置１２０に格納する（図９のステップＳ１０７）プログラムである。
【００４６】
記憶装置１２０は、電源遮断時にも記憶内容を保持可能な不揮発性の記憶素子であり、例えば、磁気ディスクドライブ（ＨＤＤ）やフラッシュメモリ（ＳＳＤ）によって構成される。記憶装置１２０には、各種プログラムＤ１００が格納される。この各種プログラムＤ１００には、前述したシステム制御プログラムＰ１０および情報分析辞書構築制御プログラムＰ１１が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
また、記憶装置１２０には、単語辞書Ｄ１１０、連接辞書Ｄ１２0、概念提示辞書Ｄ１３０、概念辞書Ｄ１４０、概念生起コスト辞書Ｄ１５０および概念連接コスト辞書Ｄ１６０が格納される。
単語辞書Ｄ１１０は、一般的な形態素解析処理に用いられる単語辞書であり、図３に示すように単語の情報を保持する。なお、前述したように、図３に示したデータの他に、単語ＩＤ、品詞、活用形、単語の原形、読みなどを付加した形としても構わない。
【００４７】
連接辞書Ｄ１２０は、一般的な形態素解析処理に用いられる連接辞書であり、図４に示すように、単語に関する各文脈ＩＤ間の連接情報を保持する。
概念定義辞書Ｄ１３０は、図５に示すように概念を識別するためのＩＤ（識別子）と具体的な概念名とを紐付ける情報を保持する。なお、図５に示したデータの他に、概念そのものの定義や概念が属する品詞などその他の項目を付加した形としても構わない。
【００４８】
概念辞書Ｄ１４０は、図６に示すように、概念ＩＤと単語とを紐付ける情報を保持する。なお、概念ＩＤと単語という項目だけでなく、単語ＩＤ、品詞、活用形、単語の原形、読みなどといった単語の情報の他、概念と単語を紐付ける際の重み値などその他の項目を追加しても構わない。
概念生起コスト辞書Ｄ１５０は、図７に示すように、概念に関する情報、特に、生起コスト情報を保持する。基本的なデータ構造としては、単語辞書Ｄ１１０と同様の形態となるが、独自の項目を追加しても構わない。
【００４９】
概念連接コスト辞書Ｄ１６０は、図８に示すように、概念に関する各文脈ＩＤ間の情報を保持する。基本的なデータ構造としては、連接辞書Ｄ１２０と同様の形態となるが、独自の項目を追加しても構わない。
【００５０】
ＣＰＵ１３０は、メモリ１１０に格納されたプログラムを実行する。
出力装置１４０は、処理の結果を画面に表示するディスプレイや、紙に出力するプリンタなどである。
入力装置１５０は、ユーザが情報分析辞書構築サブシステム１０１に指示を与えるためのキーボード、マウスなどである。
【００５１】
情報分析辞書構築サブシステム１０１は、情報分析辞書構築制御プログラムＰ１１を実行することによって得られた各種辞書を、記憶装置１２０に格納する。その後、情報分析サーバ１０２からの要求に従い、ネットワーク１０５を介して、情報分析サーバ１０２に転送する。次に、この処理手順の詳細について説明する。
【００５２】
図９は、本発明の第一の実施形態における情報分析辞書構築サブシステム１０１によって実行される処理のフローチャートである。
まず、ユーザあるいは情報分析サーバ１０２からのリクエストを受信すると（ステップＳ１０１）、受信したリクエストを解析する（ステップＳ２０２）。
受信したリクエストが辞書構築コマンドである場合、要求された登録内容に応じて情報を記憶装置１２０に格納する。
具体的には、単語辞書の登録要求であれば、受信した単語辞書情報を単語辞書格納領域Ｄ１１０に格納する（ステップＳ１０３）。連接辞書の登録要求であれば、受信した連接辞書情報を連接辞書格納領域Ｄ１２０に格納する（ステップＳ１０４）。概念定義辞書の登録要求であれば、受信した概念定義辞書情報を概念定義辞書格納領域Ｄ１３０に格納する（ステップＳ１０５）。概念辞書の登録要求であれば、受信した概念辞書情報を概念辞書格納領域Ｄ１４０に格納する（ステップＳ１０６）。概念コストの算出要求であれば、概念コスト生成プログラムＰ１１１を実行することにより、記憶装置１２０内に存在する単語辞書Ｄ１１０、連接辞書Ｄ１２０、概念定義辞書Ｄ１３０、概念辞書Ｄ１４０を元に、概念における生起コストと連接コストを算出し、概念生起コスト辞書格納領域Ｄ１５０および概念連接コスト辞書格納領域Ｄ１６０に格納する（ステップＳ１０７）。
【００５３】
なお、ステップＳ１０７、すなわち、概念コスト分析プログラムＰ１１１の詳細については、図１０を用いて後述する。ステップＳ１０３乃至ステップＳ１０７の処理の終了後、ステップＳ１０1に戻り、他のリクエストの受信を待つ。
一方、受信したリクエストが情報転送コマンドである場合、要求された問合せ内容に応じた情報を記憶装置１２０から読み出して（ステップＳ１０８）、読み出した情報を要求元に送信する（ステップＳ１０９）。その後、ステップＳ１０1に戻り、他のリクエストの受信を待つ。
【００５４】
一方、受信したリクエストがサブシステム停止コマンドである場合、情報分析辞書構築サブシステム１０１の動作を終了する。
ここで、概念コスト分析プログラムＰ１１１、すなわち、図９におけるステップＳ１０７の詳細について、図面を用いて説明する。
【００５５】
図１０は、本発明の第一の実施形態における概念コスト分析プログラムＰ１１１によって実行される処理のフローチャートである。
まず、概念コスト分析プログラムＰ１１１は、記憶装置１２０から概念辞書D１４０を取得し、ワークエリアに格納する（ステップＳ１０７０１）。その後、ループを制御するパラメータｎを１に初期設定する（ステップＳ１０７０２）。
そして、ワークエリアに格納した概念辞書D１４０から、ｎ番目の概念情報を読み出す（ステップＳ１０７０３）。なお、概念情報とは、概念ＩＤと単語が紐付いた情報のことを指す。
【００５６】
読み出した概念情報を元に、概念生起コストモデル、概念連接コストモデル、未処理単語モデルといった辞書構築に用いるモデルを更新する（ステップＳ１０７０４）。なお、ステップＳ１０７０４の処理および概念生起コストモデル、概念連接コストモデル、未処理単語モデルの詳細については、図１１乃至図１４を用いて後述する。
【００５７】
その後、ｎ＋１番目の概念情報が存在するかどうかを判定する（ステップＳ１０７０５）。その結果、次（ｎ＋１番目）の概念情報が存在すれば、パラメータに１を加算し（ステップＳ１０７０６）、ステップＳ１０７０３に戻り、次の概念情報についての分析を実行する。
【００５８】
一方、次（ｎ＋１番目）の概念情報が存在しない場合、ステップＳ１０７０１にて得られた全ての概念情報についての分析が終了しているため、更新された各種モデルを用いて各種辞書を生成し（ステップＳ１０７０７）、概念コスト分析プログラムＰ１１１を終了する。なお、ステップＳ１０７０７の詳細については、図１５乃至図１９を用いて後述する。
【００５９】
以上が、概念コスト分析プログラムＰ１１１の処理概要である。ここでは、上記ステップＳ１０７０４の処理およびステップＳ１０７０７の処理の詳細について記載する。
まず、ステップＳ１０７０４、すなわち、辞書構築に用いるモデルの更新処理について図面を用いて説明する。
図１１は、ステップＳ１０７０４において実行される処理のフローチャートである。
概念ＩＤと単語が紐付いた情報を入力として、ステップＳ１０７０４が実行されると、まず、記憶装置１２０から単語辞書D１１０を取得し、ワークエリアに格納する（ステップＳ１０７０４０１）。さらに、記憶装置１２０から連接辞書D１２０を取得し、ワークエリアに格納する（ステップＳ１０７０４０２）。その後、ループを制御するパラメータｓを１に初期設定する（ステップＳ１０７０４０３）。
【００６０】
そして、ワークエリアに格納した単語辞書D１１０から、ｓ番目の単語情報を読み出す（ステップＳ１０７０４０４）。
読み出したｓ番目の単語情報が、入力値である単語と合致するか否かを判定し（ステップＳ１０７０４０５）、合致すれば、ステップＳ１０７０４０６およびステップＳ１０７０４０７の処理を実行する。合致しなければ、ステップＳ１０７０４０８乃至ステップＳ１０７０４１０の処理を実行する。
ステップＳ１０７０４０５において、入力値である単語と合致すると判定した場合、入力値として得られた概念ＩＤとｓ番目の単語情報内に存在する左文脈ＩＤ、右文脈ＩＤ、生起コストを元に、概念生起コストモデルを更新（追記）する（ステップＳ１０７０４０６）。
【００６１】
図１２は、概念生起コストモデルのデータ構造の一例を示す図である。
概念生起コストモデルはワークエリア内で存在し、図１２で示す通り、概念を識別するＩＤと左文脈ＩＤ、右文脈ＩＤ、生起コストが格納できるようになっている。このモデルに対して、得られたデータをそのまま追記するという形になる。なお、ここでは、概念生起コストモデルはワークエリア内に存在することとしたが、記憶装置１２０内に概念生起コストモデルを格納するための専用領域を確保し、そこで更新処理を実行するようにしても構わない。
【００６２】
その後、ワークエリアに格納した連接辞書D１２０を走査し、ｓ番目の単語情報内に存在する左文脈ＩＤおよび右文脈ＩＤと合致する連接情報を取得する。取得した連接情報に基づき、概念連接コストモデルを更新（追記）する（ステップＳ１０７０４０７）。
図１３は、概念連接コストモデルのデータ構造の一例を示す図である。
概念連接コストモデルはワークエリア内で存在し、図１３で示す通り、左文脈ＩＤ、右文脈ＩＤ、連接コストが格納できるようになっている。また、左文脈ＩＤと右文脈ＩＤをキーにした場合に、複数の連接コストが格納できるような形となっている。このモデルに対して、得られたデータをそのまま追記するという形になる。なお、ここでは、概念連接コストモデルはワークエリア内に存在することとしたが、記憶装置１２０内に概念連接コストモデルを格納するための専用領域を確保し、そこで更新処理を実行するようにしても構わない。
ステップＳ１０７０４０７の処理が終わると、ステップＳ１０７０４の処理を終了する。
【００６３】
一方、ステップＳ１０７０４０５において、入力値である単語と合致しないと判定した場合、ワークエリアに格納した単語辞書D１１０に次の単語情報が存在するか否かを確認する（ステップＳ１０７０４０８）。
その結果、次（ｓ＋１番目）の単語情報が存在すれば、パラメータに“１”を加算し（ステップＳ１０７０４０９）、ステップＳ１０７０４０４に戻り、次の単語情報についての処理を実行する。
【００６４】
一方、次（ｓ＋１番目）の単語情報が存在しない場合、ステップＳ１０７０４０１にて得られた全ての単語情報についての処理が終了しており、該当する単語情報が存在しなかったと考えられるため、入力値である概念情報を元に、未処理単語モデルを更新（追記）する（ステップＳ１０７０４１０）。
【００６５】
図１４は、未処理単語モデルのデータ構造の一例を示す図である。
未処理単語モデルはワークエリア内で存在し、図１４で示す通り、単語そのものと概念を識別するＩＤが紐付いて格納できるようになっている。このモデルに対して、得られたデータをそのまま追記するという形になる。基本的なデータ構造としては、図６に示した概念辞書と同様の形態であるため、概念辞書のデータ構造に合わせて、図１４で示した項目以外の項目を追加しても構わない。なお、ここでは、未処理単語モデルはワークエリア内に存在することとしたが、記憶装置１２０内に未処理単語モデルを格納するための専用領域を確保し、そこで更新処理を実行するようにしても構わない。
ステップＳ１０７０４１０の処理が終わった後、ステップＳ１０７０４の処理を終了する。
以上がステップＳ１０７０４の処理の詳細である。
【００６６】
次に、ステップＳ１０７０７、すなわち、モデルを用いて各種辞書を生成する処理について図面を用いて説明する。
図１５は、ステップＳ１０７０７において実行される処理の概要を示すフローチャートである。
ステップＳ１０７０７では、まず、概念生起コスト辞書を生成し（ステップＳ１０７０７１）、概念連接コスト辞書を生成する（ステップＳ１０７０７２）。その後、形態素解析に用いる単語辞書を生成し（ステップＳ１０７０７３）、同じく形態素解析に用いる連接辞書を生成する（ステップＳ１０７０７４）という流れになる。なお、ステップＳ１０７０７１乃至ステップＳ１０７０７４の詳細については、図面を用いて後述する。
まず、ステップＳ１０７０７１、すなわち、概念生起コスト辞書の生成処理について図面を用いて説明する。
【００６７】
図１６は、ステップＳ１０７０７１において実行される処理のフローチャートである。
ステップＳ１０７０７１では、まず、ワークエリア内に存在する概念生起コストモデルを取得する（ステップＳ１０７０７１０１）。さらに、記憶装置１２０に存在する概念定義辞書Ｄ１３０を取得し、ワークエリアに格納する（ステップＳ１０７０７１０２）。
概念生起コストモデルに存在する概念ＩＤおよび概念定義辞書Ｄ１３０に存在する概念ＩＤを元に、構築対象となる概念ＩＤの全リストを作成する（ステップＳ１０７０７１０３）。その後、ループを制御するパラメータｉを“１”に初期設定する（ステップＳ１０７０７１０４）。
【００６８】
そして、構築対象となる概念ＩＤの全リストから、ｉ番目の概念ＩＤを読み出す（ステップＳ１０７０７１０５）。読み出した概念ＩＤを元に、概念生起コストモデルを走査し、該概念における左文脈ＩＤを決定する（ステップＳ１０７０７１０６）。この左文脈ＩＤの決定には、該概念ＩＤに該当する概念生起コストモデルにおいて、最頻となる左文脈ＩＤを設定すればよい。同様にして、該概念における右文脈ＩＤを決定する（ステップＳ１０７０７１０７）。
【００６９】
次に、読み出した概念ＩＤを元に、概念生起コストモデルを走査し、該概念における生起コストを算出する（ステップＳ１０７０７１０８）。この生起コストの算出には、該概念ＩＤに該当する概念生起コストモデルにおける生起コストの平均値を設定してもよいし、該概念ＩＤに該当する概念生起コストモデルにおける生起コストの最頻値を設定してもよい。
【００７０】
ステップＳ１０７０７１０６乃至ステップＳ１０７０７１０９による生起コスト計算が終了すると、概念ＩＤをキーとして、記憶装置１２０に存在する概念生起コスト辞書Ｄ１５０のデータを更新する（ステップＳ１０７０７１０９）。
その後、構築対象となる概念ＩＤの全リストに次の概念ＩＤが存在するか否かを確認する（Ｓ１０７０７１１０）。
その結果、次（ｉ＋１番目）の情報が存在すれば、パラメータに“１”を加算し（ステップＳ１０７０７１１１）、ステップＳ１０７０７１０５に戻り、次の単語情報についての処理を実行する。
【００７１】
一方、次（ｉ＋１番目）の情報が存在しない場合、ステップＳ１０７０７１０３にて構築した全ての概念情報についての処理が終了していると考えられるため、ステップＳ１０７０７１の処理を終了する。
以上が、ステップＳ１０７０７１の詳細な説明である。
【００７２】
次に、ステップＳ１０７０７２、すなわち、概念連接コスト辞書の生成処理について図面を用いて説明する。
図１７は、ステップＳ１０７０７２において実行される処理のフローチャートである。
ステップＳ１０７０７２では、まず、ワークエリア内に存在する概念連接コストモデルを取得する（ステップＳ１０７０７２０１）。さらに、記憶装置１２０に存在する概念生起コスト辞書Ｄ１５０を取得し、ワークエリアに格納する（ステップＳ１０７０７２０２）。
概念連接コストモデルに存在する左文脈ＩＤ、右文脈ＩＤおよび概念生起コスト辞書Ｄ１５０に存在する左文脈ＩＤ、右文脈ＩＤを元に、構築対象となる左文脈ＩＤと右文脈ＩＤのペアの全リストを作成する（ステップＳ１０７０７２０３）。
その後、ループを制御するパラメータｉを“１”に初期設定する（ステップＳ１０７０７２０４）。
【００７３】
そして、構築対象となる左文脈ＩＤと右文脈ＩＤのペアの全リストから、ｉ番目の左文脈ＩＤと右文脈ＩＤのペアを読み出す（ステップＳ１０７０７２０５）。読み出した左文脈ＩＤと右文脈ＩＤのペアを元に、概念連接コストモデルを走査し、左文脈ＩＤと右文脈ＩＤのペアにおける連接コスト値を算出する（ステップＳ１０７０７１０６）。この左文脈ＩＤと右文脈ＩＤのペアにおける連接コスト値の算出には、概念連接コストモデルのうち、左文脈ＩＤと右文脈ＩＤのペアに該当する集合における連接コストの平均値を採用してもよいし、最頻値を採用してもよい。
【００７４】
連接コスト計算が終了すると、得られた左文脈ＩＤと右文脈ＩＤをキーとして、記憶装置１２０に存在する概念連接コスト辞書Ｄ１６０のデータを更新する（ステップＳ１０７０７２０７）。
その後、構築対象となる左文脈ＩＤと右文脈ＩＤのペアの全リストに次のペアが存在するか否かを確認する（Ｓ１０７０７１０８）。
その結果、次（ｉ＋１番目）の情報が存在すれば、パラメータに“１”を加算し（ステップＳ１０７０７１０９）、ステップＳ１０７０７２０５に戻り、次の単語情報についての処理を実行する。
【００７５】
一方、次（ｉ＋１番目）の情報が存在しない場合、ステップＳ１０７０７２０３にて構築した全てのリストについての処理が終了していると考えられるため、ステップＳ１０７０７２の処理を終了する。
以上が、ステップＳ１０７０７２の詳細な説明である。
次に、ステップＳ１０７０７３、すなわち、形態素解析に用いる単語辞書の生成処理について図面を用いて説明する。
【００７６】
図１８は、ステップＳ１０７０７３において実行される処理のフローチャートである。
ステップＳ１０７０７３では、まず、記憶装置１２０に存在する概念生起コスト辞書Ｄ１５０を取得し、ワークエリアに格納する（ステップＳ１０７０７３０１）。さらに、ワークエリアに存在する未処理単語モデルを取得する（ステップＳ１０７０７３０２）。
その後、ループを制御するパラメータｉを“１”に初期設定する（ステップＳ１０７０７３０３）。
そして、未処理単語モデルから、ｉ番目の単語情報を読み出す（ステップＳ１０７０７３０４）。
【００７７】
読み出した単語情報内に存在する概念ＩＤを元に、概念生起コスト辞書Ｄ１５０を走査し、該概念における左文脈ＩＤ、右文脈ＩＤ、生起コストを取得する（ステップＳ１０７０７３０５）。取得した概念生起コストを元に、該単語の生起コストを算出する（ステップＳ１０７０７３０６）。算出した生起コストは、単語と前述した該概念における左文脈ＩＤ、右文脈ＩＤを紐付けて、ワークエリアに格納する。この該単語の生起コストの算出には、取得した概念生起コストをそのまま設定する方法の他に、単語の文字列長を考慮する方法がある。
【００７８】
例えば、「日立」と「日立ソリューションズ」が共に同じ生起コスト値であった場合、形態素解析処理上、文字列長が短いものが優先される傾向にあり、かつ、文字列長が長いほど、その単語として確定する可能性は高いため、文字列長が長いほど生起コストは低くするという方法である。具体的には、図１４の下段に示した数式１を用いるとよい。
ステップＳ１０７０７３０５およびステップＳ１０７０７３０６による生起コスト計算が終了すると、構築対象となる未処理単語の全リストに次の未処理単語が存在するか否かを確認する（Ｓ１０７０７３０７）。
【００７９】
その結果、次（ｉ＋１番目）の未処理単語が存在すれば、パラメータに“１”を加算し（ステップＳ１０７０７３０８）、ステップＳ１０７０７３０４に戻り、次の単語情報についての処理を実行する。
一方、次（ｉ＋１番目）の未処理単語が存在しない場合、全ての未処理単語についての処理が終了していると考えられるため、ワークエリア内に存在する処理済みのデータを元に、記憶装置１２０に存在する単語辞書格納領域Ｄ１１０を更新する（ステップＳ１０７０７３０９）。
全ての更新処理が終了後、ステップＳ１０７０７３の処理を終了する。
以上が、ステップＳ１０７０７３の詳細な説明である。
【００８０】
次に、ステップＳ１０７０７４、すなわち、形態素解析に用いる連接辞書の生成処理について図面を用いて説明する。
図１９は、ステップＳ１０７０７４において実行される処理のフローチャートである。
ステップＳ１０７０７４では、まず、記憶装置１２０内に存在する概念連接コスト辞書Ｄ１６０を取得する（ステップＳ１０７０７４０１）。さらに、記憶装置１２０に存在する連接辞書Ｄ１２０を取得し、ワークエリアに格納する（ステップＳ１０７０７４０２）。
概念連接コスト辞書Ｄ１６０に存在する左文脈ＩＤ、右文脈ＩＤおよび連接辞書Ｄ１２０に存在する左文脈ＩＤ、右文脈ＩＤを元に、構築対象となる左文脈ＩＤと右文脈ＩＤのペアの全リストを作成する（ステップＳ１０７０７４０３）。
【００８１】
その後、ループを制御するパラメータｉを“１”に初期設定する（ステップＳ１０７０７４０４）。
そして、構築対象となる左文脈ＩＤと右文脈ＩＤのペアの全リストから、ｉ番目の左文脈ＩＤと右文脈ＩＤのペアを読み出す（ステップＳ１０７０７４０５）。読み出した左文脈ＩＤと右文脈ＩＤのペアを元に、概念連接コスト辞書Ｄ１６０と連接辞書Ｄ１２０を走査し（ステップＳ１０７０７４０６）、左文脈ＩＤと右文脈ＩＤのペアにおける連接コスト値を算出する（ステップＳ１０７０７１０７）。
【００８２】
この左文脈ＩＤと右文脈ＩＤのペアにおける連接コスト値の算出には、概念連接コスト辞書Ｄ１６０と連接辞書Ｄ１２０に存在する左文脈ＩＤと右文脈ＩＤのペアの連接コスト値の最大値を採用してもよいし、概念連接コスト辞書Ｄ１６０と連接辞書Ｄ１２０の両方に該ペアの値が存在する場合は、平均値を採用してもよい。算出した連接コストは、左文脈ＩＤおよび右文脈ＩＤのペアと紐付けて、ワークエリアに格納する。
【００８３】
ステップＳ１０７０７４０６およびステップＳ１０７０７４０７による連接コスト計算が終了すると、構築対象となる左文脈ＩＤと右文脈ＩＤのペアの全リストに次のペアが存在するか否かを確認する（Ｓ１０７０７４０８）。
その結果、次（ｉ＋１番目）のペアが存在すれば、パラメータに“１”を加算し（ステップＳ１０７０７４０９）、ステップＳ１０７０７４０５に戻り、次のペアについての処理を実行する。
【００８４】
一方、次（ｉ＋１番目）のペアが存在しない場合、全ての構築対象となる左文脈ＩＤと右文脈ＩＤのペアについての処理が終了していると考えられるため、ワークエリア内に存在する処理済みのデータを元に、記憶装置１２０に存在する連接辞書格納領域Ｄ１２０を更新する（ステップＳ１０７０７４１０）。
全ての更新処理が終了後、ステップＳ１０７０７４の処理を終了する。
以上が、ステップＳ１０７０７４の詳細な説明である。
【００８５】
以上、本発明の第１の実施形態における情報分析辞書構築サブシステム１０１のシステム構成および処理概要についての説明である。
以下では、第１の実施例における情報分析辞書構築処理について、具体的な例を用いて説明する。
【００８６】
＜情報分析辞書構築の具体例＞
形態素解析を実行するための辞書に単語を登録するためには、その単語が辞書内に存在するかを確認し、存在していなければ、新規に単語を登録するという手順となる。本実施形態では、その確認作業を軽減するための施策についても後述することになるが、ここでは、「京大」という単語が形態素解析を実行するための辞書に存在せず、新たに登録したい場合を例にして説明する。
前述したように、通常であれば、図３のような単語辞書に「京大」という単語を追加し、左文脈ＩＤ、右文脈ＩＤ、生起コストという値について試行錯誤を繰り返して設定しなくてはならなかった。また、左文脈ＩＤもしくは右文脈ＩＤとして記載するＩＤを新規に作成した場合には、図４のような連接辞書に対して、該当するＩＤの組み合わせおよびその連接コストを試行錯誤で設定しなくてはならなかった。そのため、メンテナンスにおけるコストが増大するという問題があった。
本実施形態では、その試行錯誤を繰り返すことによるコストが必要でなくなることを示す。
【００８７】
まず、図３のような単語辞書を用意し、登録する。具体的には、図９におけるステップＳ１０３の処理を実行する。この単語辞書は一般に形態素解析で用いられる辞書をそのまま活用して構わない。なお、ここでは、「京大」という単語が単語辞書に含まれていないものとする。
次に、図４のような連接辞書を用意し、登録する。具体的には、図９におけるステップＳ１０４の処理を実行する。この連接辞書についても、単語辞書と同様に一般に形態素解析で用いられる辞書をそのまま活用して構わない。
【００８８】
次に、図５のような概念定義辞書を用意し、登録する。具体的には、図９におけるステップＳ１０５の処理を実行する。概念定義辞書については後述する。
次に、図６のような概念辞書を用意し、登録する。具体的には、図９におけるステップＳ１０６の処理を実行する。概念辞書については後述する。
以下では、前述した概念定義辞書および概念辞書について記載する。
【００８９】
図２０は、概念定義辞書および概念辞書、すなわち、図５および図６の一例をイメージ化したものである。なお、図２０における丸で囲まれた文字が概念名を示し、図２０における四角で囲まれた文字が単語の表層形を示す。
図２０の例では、「東芝」という単語は、「企業」という概念に属し、「日立」という単語は、「企業」という概念と「地域」という概念に属していることを示している。また、同様に、「京都大学」という単語は、「教育機関」という概念と「施設」という概念に属し、「京都」という単語は、「地域」という概念に属していることを示している。
【００９０】
これらの概念定義辞書および概念辞書は、ユーザ自ら手作業にて構築してもよいし、非特許文献８および非特許文献９に提示されているＷｏｒｄＮｅｔ、あるいは非特許文献１０に提示されているＥＤＲといった一般に入手可能な辞書を用いても構わない。または、特許文献３にて提示されている方式を用いて構築しても構わない。
【００９１】
前述の通りに概念定義辞書および概念辞書が構築されているものとして、「京大」という単語を登録したい場合について説明する。
まず、図６のような概念辞書に「京大」という単語を追加する。その後、「京大」という単語がどのような意味を持つのかを考慮し、図５のような概念定義辞書データ構造を俯瞰し、該当するものを「京大」という単語と紐付ける。ここでは、「京大」という単語は、「教育機関」という概念と「施設」という概念に属しているものとする。また、図５より、「教育機関」という概念の概念ＩＤは「１２０」、「施設」という概念の概念ＩＤは「５２０」であることがわかる。そのため、概念辞書に「京大」という単語と「１２０」という概念ＩＤを紐付け、さらに、「京大」という単語と「５２０」という概念ＩＤを紐付ければよい。
なお、図２０で示した状態に、「京大」という単語を紐付けした結果をイメージ化したのが、図２１である。
【００９２】
図２１で示す通り、ある単語とその意味を表現する概念をマッピングすることは比較的容易であるといえる。
また、ここでは概念定義辞書に定義を追加する処理については記載していないが、ここで新たな概念を定義しても構わない。
なお、ユーザにとってこれらの辞書登録を利便化するために、専用の画面を用意することも容易に実現できる。なお、図２２に登録画面の一例を示す。
これらの定義を行ない、概念定義辞書および概念辞書の登録を行なった後、実際の辞書構築処理を行なう。具体的には、図９におけるステップＳ１０７の処理を行なう。
【００９３】
実際には、ステップＳ１０７の内部処理である図１０のステップＳ１０７０４にて辞書構築に必要となるモデルの更新が行なわれる。具体的には、「京大」という単語は元々の単語辞書に含まれていないため、図１０のステップＳ１０７０４の内部処理である図１１におけるステップＳ１０７０４１０にて未処理単語モデル内に格納されることになる。この未処理単語モデルの一例が図１４になる。図１４に示す通り、このモデル内で「京大」という単語と概念ＩＤが紐付けられた形で格納されている。
【００９４】
その後、ステップＳ１０７の内部処理である図１０のステップＳ１０７０７にて実際の辞書構築が行なわれる。ここで、「京大」という単語は、未処理単語モデル内に格納されているため、図１０のステップＳ１０７０７の内部処理である図１５のステップＳ１０７０７３にて処理が行なわれることになる。
ここで、図１４に示す通り、「京大」という単語は、「１２０」と「５２０」という概念ＩＤと紐付けられているとする。
【００９５】
この場合、まず、図１５のステップＳ１０７０７３の内部処理である図１８のステップＳ１０７０７３０５にて、概念生起コスト辞書Ｄ１５０を走査し、概念ＩＤが「１２０」であるデータを取得する。図７より、概念ＩＤが１２０であるデータは、左文脈ＩＤが「０１１」、右文脈ＩＤが「０１１」、生起コストが「１０００」であったとする。
【００９６】
その後、図１８のステップＳ１０７０７３０６にて、「京大」の生起コストを算出する。前述したように、同じ概念であれば、生起コストについてある程度同じ値になると考えることは妥当であると考えるため、その単語が所属する概念の生起コストに準じた値を設定すればよい。なお、ここでは、前述した「数式１」を用いるものとし、「数式１」内の重みα＝４とした場合で計算する。すると、数式１より、１０００−｛４×２＾（１．３）｝＝９９０．１５０・・・≒９９０ という数値が得られるので、この９９０という数値を、左文脈ＩＤが「０１１」、右文脈ＩＤが「０１１」である「京大」の生起コストとする。
同様にして、概念ＩＤが「５２０」であるデータを取得し、左文脈ＩＤが「１００」、右文脈ＩＤが「１００」である「京大」の生起コストを算出する。
これらにより、「京大」という生起コストが得られたため、そのデータを単語辞書格納領域Ｄ１１０に追加更新する。
【００９７】
その後、図１５のステップＳ１０７０７４の内部処理である図１９のステップＳ１０７０７４０６およびステップＳ１０７０７４０７にて、左文脈ＩＤが「１００」、右文脈ＩＤが「１００」である連接コストの計算が行なわれ、自動的に連接コスト値が更新される。
この手順により、ユーザによる試行錯誤による設定ではなく、ユーザは概念辞書に「京大」という単語とその意味する概念をマッピングするだけで、単語辞書に「京大」という単語を自動的に追加し、かつ、形態素解析実行に必要な生起コストおよび連接コストの妥当な値を自動的に算出して設定することができる。
【００９８】
なお、ここでは、概念辞書を新規登録することを前提に、辞書構築を実行するまでを例示したが、既にある概念辞書に新たな単語を追加設定したい場合でも、記憶装置１２０の概念辞書格納領域Ｄ１４０に現状のデータが存在するため、必要な情報をここで適宜更新し、該当処理を実行すればよい。
以上が、第一の実施例における情報分析辞書構築処理についての説明である。
【００９９】
＜情報分析サーバ１０２＞
次に、本実施形態における情報分析サーバ１０２について説明する。
図２３は、本実施形態における情報分析サーバ１０２の構成を示すブロック図である。
情報分析サーバ１０２は、前述した情報分析辞書構築サブシステム１０１と比べると格納されているプログラムが異なること以外は同じ構成を有する。このため、前述した情報分析辞書構築サブシステム１０１と同じ構成には同じ符号を付し、その説明は省略する。
すなわち、情報分析サーバ１０２は、メモリ１１０、記憶装置１２０、ＣＰＵ（中央演算装置）１３０、出力装置１４０、入力装置１５０および通信インタフェース１６０を備え、これらの各構成がバス１７０によって接続される一般的な構成のコンピュータである。
【０１００】
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０および情報分析プログラムＰ１２がメモリ１１０に格納される。
【０１０１】
情報分析プログラムＰ１２は、情報分析クライアント１０３あるいは１０４から送信された分析要求に基づいて、情報を分析するプログラムであり、サブプログラムとして、辞書ローディングプログラムＰ１２１、分析条件式解析プログラムＰ１２２、形態素解析プログラムＰ１２３、未知語リスト取得プログラムＰ１２4を含む。
【０１０２】
辞書ローディングプログラムＰ１２１は、情報分析辞書構築サブシステム１０１にて構築した各種辞書を取得し、記憶装置１２０に格納する（図２４のステップＳ２０３およびステップＳ２０４）。
分析条件式解析プログラムＰ１２２は、ユーザによって入力された分析条件式を解析する（図２４のステップＳ２０５）。
形態素解析プログラムＰ１２３は、形態素解析を実行するプログラムである（図２４のステップＳ２０６）。
未知語リスト取得プログラムＰ１２4は、記憶装置１２０内に存在する未知語リストＤ２００の内容を要求元に転送する（図２４のステップＳ２１０およびステップＳ２１1）。
【０１０３】
記憶装置１２０には、各種プログラムＤ１０0が格納される。この各種プログラムＤ１００には、システム制御プログラムＰ１０および情報分析プログラムＰ１２が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
また、記憶装置１２０には、単語辞書Ｄ１１０および連接辞書Ｄ１２０が含まれる。単語辞書Ｄ１１０および連接辞書Ｄ１２０は、情報分析辞書構築サブシステム１０１にて構築された辞書データであり、辞書ローディングプログラムＰ１２１によって情報分析辞書構築サブシステム１０１からロードされ、記憶装置１２０に格納される。
【０１０４】
さらに、記憶装置１２０には、未知語リストＤ２００が含まれる。未知語リストＤ２００は、形態素解析プログラムＰ１２３によって分析された結果、十分に解析できなかった単語（以下、未知語という）のリストであり、未知語リスト取得プログラムＰ１２4によって、要求元に転送される。
情報分析サーバ１０２は、情報分析プログラムＰ１２を実行することによって、情報分析クライアント１０３もしくは１０４から送信された分析要求に基づいて、データを分析し、分析結果を要求元の情報分析クライアントに返信する。次にこの処理の詳細を図面を用いて説明する。
【０１０５】
図２４は、本発明の第一の実施例における情報分析サーバ１０２によって実行される処理のフローチャートである。
まず、情報分析サーバ１０２は、要求元からリクエストを受信すると（ステップＳ２０１）、受信したリクエストを解析する（ステップＳ２０２）。
受信したリクエストが辞書ローディング要求であった場合、辞書ローディングプログラムＰ１２１を実行し、情報分析辞書構築サブシステム１０１にて格納されている単語辞書と連接辞書を取得するため、情報分析辞書構築サブシステム１０１に対して情報転送コマンドを発行し（ステップＳ２０３）、情報分析辞書構築サブシステム１０１から返送されてきた各種辞書データを記憶装置１２０の単語辞書格納領域Ｄ１１０および連接辞書格納領域Ｄ１２０に格納する。
【０１０６】
一方、受信したリクエストが未知語リスト転送要求であった場合、記憶装置１２０内に存在する未知語リストＤ２００を取得し（ステップＳ２１０）、本要求を行なった要求元に取得した未知語リスト情報を転送する（ステップＳ２１１）。
一方、受信したリクエストがサーバ停止要求であった場合、情報分析サーバ１０２の動作を停止する。
一方、受信したリクエストが分析要求であった場合、分析条件式解析プログラムＰ１２２を実行し、分析条件式を解析する（ステップＳ２０５）。具体的には、分析条件式からユーザが入力した解析対象テキストを取得する。
【０１０７】
次に、形態素解析プログラムＰ１２３を実行し、分析条件式に含まれる解析対象テキストを元に、記憶装置１２０に存在する単語辞書Ｄ１１０および連接辞書Ｄ１２０を使用して形態素解析処理を実行する（ステップＳ２０６）。なお、形態素解析処理の詳細については公知であるため、省略する。また、記憶装置１２０に存在する単語辞書Ｄ１１０および連接辞書Ｄ１２０は、形態素解析を実行するための辞書形態となっているため、形態素解析処理自体に特別な方式は必要ない。
【０１０８】
ステップＳ２０６による形態素解析処理の実行後、解析結果として存在する形態素集合に未知語が含まれているか否かを確認し（ステップＳ２０７）、未知語が存在していなければ、ステップＳ２０９に進む。
一方、解析結果の形態素集合に未知語が存在していれば、解析結果に含まれる未知語の集合を未知語リストＤ２００に登録する（ステップＳ２０８）。
その後、ステップＳ２０６にて得られた解析結果を要求元に返信する（ステップＳ２０９）。
【０１０９】
図２５は、未知語リストＤ２００の一例を示す図である。
図２５に示すように、形態素解析を行った結果、未知語と判断された単語、すなわち、単語辞書に登録されていない語彙のリストが格納されている。なお、図２５では、未知語の単語表記のみを格納することとしているが、辞書メンテナンスを行う際の参考情報のために、出現回数や、その未知語が出現した時における前後の文字列など、その他の項目を合わせて格納するようにしてもよい。
この未知語リストＤ２００が存在することにより、未知語リスト内の未知語は辞書に存在しない単語であることが明確にわかるため、辞書メンテナンスを行う際の指標を得ることができる。このことにより、その単語が辞書内に存在するかを確認し、存在していなければ、新規に単語を登録するという手順を、大幅に軽減することができる。
以上が、本発明の第１の実施例における情報分析サーバ１０２についての説明である。
【０１１０】
＜情報分析クライアント１０３および１０４＞
次に、本実施形態における情報分析クライアント１０３，１０４について説明する。
図２６は、本実施例における情報分析クライアント１０３あるいは１０４の構成を示すブロック図である。
情報分析クライアント１０３あるいは１０４は、前述した情報分析辞書構築サブシステム１０１（図２）と比べ、格納されているプログラムが異なること以外は同じ構成を有する。このため、前述した情報分析辞書構築サブシステム１０１と同じ構成には同じ符号を付し、その説明は省略する。
すなわち、情報分析クライアント１０３あるいは１０４は、メモリ１１０、記憶装置１２０、ＣＰＵ（中央演算装置）１３０、出力装置１４０、入力装置１５０および通信インタフェース１６０を備え、これらの各構成がバス１７０によって接続されるコンピュータである。
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０および分析クライアント制御プログラムＰ１３がメモリ１１０に格納される。
【０１１１】
分析クライアント制御プログラムＰ１３は、情報分析サーバ１０２へ送信する分析要求を生成するプログラムであり、サブプログラムとして、分析条件入力プログラムＰ１３1および分析結果表示プログラムＰ１３2を含む。
分析条件入力プログラムＰ１３1は、ユーザからの分析条件の入力を受け付け、分析リクエストを情報分析サーバ１０２に送信する。分析結果表示プログラムＰ１３2は、ユーザからの指示に従って分析結果を表示する。
記憶装置１２０には、各種プログラムＤ１００が格納される。この各種プログラムＤ１００には、システム制御プログラムＰ１０および分析クライアント制御プログラムＰ１３が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
【０１１２】
また、記憶装置１２０には、分析結果データＤ３００が格納される。分析結果データＤ３００は、情報分析サーバ１０２から転送された分析結果が一時的に格納されるキャッシュである。
情報分析クライアント１０３あるいは１０４は、分析クライアント制御プログラムＰ１３を実行することによって、情報分析サーバ１０２に送信する分析要求を生成し、情報分析サーバ１０２によって行われた分析の結果を表示する。次に、この処理の詳細について図面を用いて説明する。
【０１１３】
図２７は、本発明の第一の実施例における情報分析クライアント１０３あるいは１０４によって実行される処理のフローチャートである。
分析クライアント制御プログラムＰ１３が起動されると、まず、分析条件入力用画面を表示して、指示（コマンド）の入力を促す（ステップＳ３０１）。
その後、コマンドが入力されると（ステップＳ３０２）、入力されたコマンドを解析する（ステップＳ３０３）。
解析したコマンドがクライアント停止コマンドである場合、分析クライアント制御プログラムＰ１３を終了する。
【０１１４】
一方、解析したコマンドが分析コマンドである場合、分析条件入力プログラムＰ１３1を実行し、入力されたデータに基づいて分析リクエストを生成し（ステップＳ３０４）、生成された分析リクエストを情報分析サーバ１０２に送信する（ステップＳ３０５）。
その後、情報分析サーバ１０２から分析結果を受信すると、受信した分析結果を記憶装置１２０の分析結果データＤ３００に格納する（ステップＳ３０６）。なお、分析結果は、分析対象となるテキストから得られた単語情報のリストが含まれ、図２４におけるステップＳ２０９にて情報分析サーバ１０２から送信される。
【０１１５】
その後、分析結果表示プログラムＰ１３２を起動し、分析結果表示画面を表示する（ステップＳ３０７）。この際、次のコマンドを入力できる画面も合わせて表示する。その後、ステップＳ３０２に戻り、ユーザからのコマンド入力を受信する。
【０１１６】
以上説明したように、本実施形態では、形態素解析を行なうための辞書を構築する際に、その単語の意味定義を考慮する仕組みを提供している。このため、辞書に単語を追加したい場合でも、辞書をメンテナンスするユーザは、追加したい単語とその概念をマッピングするだけでよく、辞書構築においてコスト高となっているユーザによる試行錯誤による設定を行なう必要をなくすことができるため、辞書のメンテナンスコストを低減することができる。
さらに、本実施形態では、実際に解析を行った結果、十分に解析できなかった単語（未知語）を蓄積することができるため、ユーザはそれを用いて次に辞書登録すべき単語を判断することができるようになる。つまり、未知語を取得することと単語の新規登録が容易になることにより、辞書を積極的にメンテナンスすることが可能になり、結果的に解析精度を向上させることが可能になる。
【０１１７】
＜第２の実施形＞
次に本発明の第２の実施形態について図面を用いて説明する。この第２の実施形態は、システムの構成については前記第一の実施例と同一であるが、情報分析辞書構築サブシステム１０１の処理において、概念生起コスト辞書の生成方法が異なり、その結果、単語辞書における生起コスト値が異なってくる。
【０１１８】
第１の実施形態においては、概念生起コスト辞書を生成するため、ユーザが設定した単語と概念とを紐付ける情報のみを使って概念の生起コストを算出するという方式を取っている（図９のステップＳ１０７およびその内部処理である図１０のステップＳ１０７０４）。しかし、概念に紐付いた単語の数が少ない場合においては、その数少ない単語による傾向がそのまま概念の生起コストとして算出されてしまうことになる。また、そもそも単語と紐付いていない概念の生起コストや例え単語と紐付いていたとしても単語の生起コストが存在しないものしか紐付けられていない概念の生起コストは算出できない。こういったシステムにおいては、時間の経過と共に、元々は単語と紐付けていない概念であっても紐付けを行いたくなることが想定され、第１の実施形態だけでは十分な概念生起コストが推定できず、結果として単語の生起コストの推定に不十分な状態となることが考えられる。
【０１１９】
この第２の実施形態では、第１の実施形態における概念コスト分析プログラムＰ１１１に加え、概念間の関係性に着目し、その関係性を元に調整した概念の生起コストを算出することにより、単語の生起コスト推定精度を向上させるという点に特徴がある。
以下、本実施形態における情報分析辞書構築サブシステム１０１の詳細について説明する。
【０１２０】
＜情報分析辞書構築サブシステム１０１＞
なお、第１の実施形態における情報分析辞書構築サブシステム１０１（図２）と同じ構成には同じ符号を付し、その説明は省略する。
図２８は、本実施形態における情報分析辞書構築サブシステム１０１のシステム構成を示す図である。
図２８に示す情報分析辞書構築サブシステム１０１は、そのハードウェア構成に関しては、図２に示す第１の実施形態の場合と変わらない。ただし、メモリ１１０中には、第１の実施形態において保持するプログラム群に加えて、概念関係調整プログラムＰ１１２を保持する。また記憶装置１２０には、第１の実施形態において確保する領域群に加えて、概念関係定義辞書Ｄ１７０が確保される。
概念関係調整プログラムＰ１１２は、概念間の関係性を元に概念における生起コストを調整し、単語の生起コストを更新するプログラムである（図２９のステップＳ１１１）。
【０１２１】
概念関係定義辞書Ｄ１７０は、上下関係などといった概念と概念の関係性を定義するための情報である。概念というのは、種別という言葉にほぼ同意と考えると、例えば、その上位にあたる概念が存在したり、その部分となる概念が存在したり、あるいは、その反対の意味を持つ概念が存在したりすることが通常と考えられる。概念関係定義辞書Ｄ１７０は、そういった概念間の関係性を定義することに用いる。なお、概念関係定義辞書Ｄ１７０は、図３０に示すように、概念を識別するためのＩＤ（識別子）のペアとその関係性（役割）とを紐付ける情報を保持する。
【０１２２】
なお、図３０で示したデータ項目の他に、役割そのものの定義などその他の項目を付加した形としても構わない。また、概念の関係性の構造としては、木構造の他に、二部グラフなどといったネットワークグラフ構造など、どのような形態としても構わない。
さらに、概念関係定義辞書Ｄ１７０は、第１の実施形態における概念定義辞書Ｄ１３０および概念辞書Ｄ１４０と同様、ユーザ自ら手作業にて構築してもよいし、非特許文献８および非特許文献９に提示されているＷｏｒｄＮｅｔ、あるいは非特許文献１０に提示されているＥＤＲといった一般に入手可能な辞書を用いても構わない。または、特許文献３にて提示されている方式を用いて構築しても構わない。
【０１２３】
図２９は、本発明の第２の実施形態における情報分析辞書構築サブシステム１０１によって実行される処理のフローチャートである。
第１の実施形態における情報分析辞書構築サブシステム１０１によって実行される処理のフローチャート、すなわち、図９と比較した場合、ステップＳ１１０およびステップＳ１１1が追加されていること以外は同じ処理内容を有する。このため、前述した情報分析辞書構築サブシステム１０１と同じ処理内容には同じ符号を付し、その説明は省略する。
【０１２４】
まず、ユーザあるいは情報分析サーバ１０２からのリクエストを受信すると（ステップＳ１０１）、受信したリクエストを解析する（ステップＳ２０２）。
受信したリクエストが辞書構築コマンドである場合、要求された登録内容に応じて情報を記憶装置１２０に格納する。具体的には第１の実施形態において説明した内容と同等であるが、第１の実施形態と比較して、概念関係定義辞書登録コマンドに基づいて、記憶装置１２０に格納される（図２９のステップＳ１１０）処理が加わる。
【０１２５】
また、図９もしくは図２９におけるステップＳ１０７の終了後に、ステップＳ１１１の処理が実行されることになる。すなわち、ステップＳ１０７が終了した時点で、図２もしくは図２８における単語辞書Ｄ１１0、連接辞書Ｄ１２０、概念定義辞書Ｄ１３０、概念辞書Ｄ１４０、概念生起コスト辞書Ｄ１５０、概念連接コスト辞書Ｄ１６０は一旦構築されているものと考える。
ここで、図２９のステップＳ１１１の詳細について、図面を用いて説明する。
【０１２６】
図３１は、図２９のステップＳ１１１、すなわち、概念関係調整プログラムＰ１１２において実行される処理のフローチャートである。
まず、概念関係調整プログラムＰ１１２は、まず、記憶装置１２０に存在する概念関係定義辞書Ｄ１７０を読み出し、概念関係定義の全リストをワークエリアに格納する（ステップＳ１１１０１）。さらに、記憶装置１２０から概念生起コスト辞書Ｄ１５０上の全データを読み出し、概念生起コストモデルとしてワークエリアに格納する。また、同様に、記憶装置１２０から概念連接コスト辞書Ｄ１６０上の全データを読み出し、概念連接コストモデルとしてワークエリアに格納する。（ステップＳ１１１０２）。
【０１２７】
なお、概念生起コストモデルは、第１の実施形態で説明したモデルであり、第１の実施形態における図１２と同様である。また、概念連接コストモデルは、第１の実施形態で説明したモデルであり、第１の実施形態における図１３と同様である。その後、ループを制御するパラメータａとパラメータｂについて初期値“１”に設定する（ステップＳ１１１０３）。
そして、ワークエリアに格納した概念生起コストモデルからａ番目の概念生起コスト情報を取得する（ステップＳ１１１０４）。
【０１２８】
次に、ワークエリアに格納した概念関係定義の全リストから、ｂ番目の概念定義情報を取得する（ステップＳ１１１０５）。この概念関係定義は、図３０で示す通り、概念を識別するＩＤが２つ定義されており、さらに、これらの関係性（役割）を示す情報が格納されている。
ａ番目の概念生起コスト情報とｂ番目の概念定義情報を元に、ａ番目の概念生起コスト情報に存在する概念ＩＤとｂ番目の概念定義情報に存在するいずれかの概念ＩＤが合致するか否かを判定し（ステップＳ１１１０６）、合致する場合は、ステップＳ１１１０７およびステップＳ１１１０８からなる処理に進む。
【０１２９】
一方、ステップＳ１１１０６の判定において、合致しないとした場合は、次（ｂ＋１番目）の概念定義情報が存在するか否かを判定する（ステップＳ１１１０９）。もし、次の概念情報が存在する場合は、パラメータｂに“１”を加算し、ステップＳ１１１０５に戻る。もし、次の概念定義情報が存在しない場合は、全ての概念情報を走査したと判断し、パラメータｂを初期状態、つまり、“１”に設定し、ステップＳ１１１１２に進む。
ステップＳ１１１０７では、ｂ番目の概念定義情報に存在する概念ＩＤのうち、ａ番目の概念生起コスト情報に存在する概念ＩＤと合致しなかった概念ＩＤと共に、ａ番目の概念生起コスト情報に存在する左文脈ＩＤ、右文脈ＩＤ、および生起コストをセットにして、概念生起コストモデルに追記する。
【０１３０】
次に、ステップＳ１１１０８では、ａ番目の概念生起コスト情報に存在する左文脈ＩＤと右文脈ＩＤをキーとしてワークエリア上に存在する概念連接コストモデルを走査し、該当する連接コスト値を取得する。取得した連接コスト値とａ番目の概念生起コスト情報に存在する左文脈ＩＤと右文脈ＩＤをセットにして、概念連接コストモデルに追記する。
ステップＳ１１１０８の処理の後、ステップＳ１１１１１にてパラメータｂを初期状態、つまり、“１”に設定し、ステップＳ１１１１２に進む。
【０１３１】
ステップＳ１１１１２では、ワークエリアに格納した概念生起コストモデルに次（ａ＋１番目）の情報が存在するか否かを確認する。もし、ａ＋１番目の概念生起コスト情報が存在する場合は、パラメータａに“１”を加算し（ステップＳ１１１１３）、ステップＳ１１１０４に戻る。
【０１３２】
一方、ａ＋１番目の概念生起コスト情報が存在しない場合は、全ての概念生起コスト情報について走査したと考え、生成した概念生起コストモデルや概念連接コストモデルなどから、各種辞書を生成する（ステップＳ１１１１４）。なお、このステップＳ１１１１４は、第１の実施形態における図１０のステップＳ１０７０４と全く同じ処理となる。そのため、ステップＳ１１１１４の詳細については省略する。
ステップＳ１１１１４の処理を終えると、全ての処理が終了したと考え、概念関係調整プログラムＰ１１２、すなわち、ステップＳ１１１の処理を終了する。
【０１３３】
＜情報分析辞書構築の具体例＞
以下では、第２の実施形態における情報分析辞書構築処理について、具体的な例を用いて説明する。
ここで、企業内における部門名の略称を辞書に登録する場合を考える。部門名は企業独自に命名されるものであり、かつ、部門名の略称については、その企業の慣習に基づいて命名されることになるため、一般的な辞書に存在することはあり得ない。また、部門名の略称では、漢字とカタカナなどが混在していることも多い。
【０１３４】
一般的な形態素解析エンジンでは、同一の文字種については、できるだけまとめて認識するという機能が存在するものもある。しかし、部門名の略称表記は複数の文字種が混在することになるため、部門名略称をうまく解析できないという結果になる。
ここでは、ある企業における部門名およびその略称の例として、「生産技術センタ」の略称である「生技セ」と「第一営業本部」の略称である「１営本」を考える。どちらの略称も２種類以上の文字種が含まれている。そのため、これらの単語を登録せずに一般的な形態素解析エンジンで解析した場合、「生技／セ」、「１／営／本」というような形で分かち書きされることが多い。
そこで、「生技セ」と「１営本」という単語を辞書に登録することになる。基本的には、第１の実施形態の説明で行った手順にて行なうことになるのだが、ここでは、第２の実施形態における説明を行なうため、「部門」という概念を新設したと考える。
【０１３５】
図３２は、「部門」という概念を新設した場合における概念定義辞書Ｄ１３０の具体例である。なお、ここでは、図３２に示すように、「部門」という概念は、概念ＩＤを「１４０」で登録することとする。また、「生技セ」と「１営本」という単語は、概念辞書Ｄ１４０において、概念ＩＤと紐付けて定義することになる。ここでは、図３３に示すように、「生技セ」と「１営本」という単語は、それぞれ概念ＩＤ「１４０」と紐付けられていることとする。
【０１３６】
第１の実施形態では、以上の設定で概念の生起コストを算出していたが、この時点では、「部門」という概念に紐付けられている単語が「生技セ」と「１営本」という単語であり、これらは新規に登録した単語であるため、それらの単語における生起コストは設定されていない。したがって、第１の実施形態では、概念における妥当な生起コストを算出することは困難となってしまう。そこで、第２の実施形態では、新たに概念間の関係性、つまり、言葉の意味同士のつながりを利用することにする。
【０１３７】
図３４は、その概念間の関係性を定義した概念関係定義辞書Ｄ１７０の具体例、つまり、図３１の具体例となっている。図３４から、例えば、概念ＩＤが「１００」のものは、概念ＩＤが「１１０」のものと「上位」という役割でつながっていることがわかる。また、図３２より、概念ＩＤが１００というのは、「組織」という概念であり、概念ＩＤが「１１０」というのは、「企業」であることがわかる。
【０１３８】
すなわち、「組織」という概念は、「企業」という概念の上位概念であることがわかる。同様に、「組織」という概念は、「部門」という概念の上位概念であり、「部門」という概念は、「企業」という概念の部分概念であることがわかる。なお、上記をイメージ化した図が図３５である。図３５で示す通り、ある単語とその意味を表現する概念をマッピングすることや概念と概念とをマッピングすることは比較的容易であるといえる。
【０１３９】
なお、図３４あるいは図３５では、概念と概念の関係性は１つのみ定義しているが、概念間の関係性は複数個定義することも、なにも定義しないこともできる。例えば、「組織という概念は、企業という概念の上位概念である」と定義すると共に、「企業という概念は、組織という概念の下位概念である」と定義することもできる。
【０１４０】
さらに、第１の実施形態にて述べたように、これらの辞書情報の登録作業を効率化するために、専用の画面を用意することも容易に実現できる。
これらを元に、図２９におけるステップＳ１１１を実行した場合を考える。ここでは、図２９のステップＳ１０７の実行結果として、「企業」という概念の左文脈ＩＤが「０１１」、右文脈ＩＤが「０１１」、生起コストが「１００」であったとして記載を進める。以下、図３１を元に説明を進める。
【０１４１】
図３１におけるステップＳ１１１０４で抽出された概念生起コスト情報が、「企業」という概念のものであった場合、ステップＳ１１１０５乃至ステップＳ１１１１０において、「企業」という概念、すなわち、概念ＩＤが「１１０」を含む概念関係定義情報を走査することになる。
あるタイミングにおいて、概念ＩＤ−１が「１００」、概念ＩＤ−２が「１１０」という項目がヒットし、その役割が「上位」であった時、ステップＳ１１１０７にて概念生起コストモデルの更新を行う。具体的には、「企業」という概念における生起コスト「１００」に対してある一定の重み値を乗算した値をその概念の生起コストと位置付ける。なお、ある一定の重み値については、上位概念は「０．９５」、部分概念は「０．９」など、役割毎にあらかじめ設定しておけばよい。ここでは、１００×０．９５＝９５を設定するものとする。
【０１４２】
その後、概念ＩＤ「１００」と、「企業」という概念における左文脈ＩＤ「０１１」、右文脈ＩＤ「０１１」、算出した生起コスト「９５」をセットにして、概念生起コストモデルに追加する。
また、あるタイミングにおいて、概念ＩＤ−１が「１４０」、概念ＩＤ−２が「１１０」という項目がヒットし、その役割が「部分」であった時、ステップＳ１１１０７にて概念生起コストモデルの更新を行う。ここでは、部分概念関係は「０．９」という重みに設定することとすれば、概念ＩＤ「１４０」の生起コストは１００×０．９＝９０という値となる。
そこで、概念ＩＤ「１４０」と、「企業」という概念における左文脈ＩＤ「０１１」、右文脈ＩＤ「０１１」、算出した生起コスト「９０」をセットにして、概念生起コストモデルに追加する。
【０１４３】
上記の処理を繰り返すことにより、「組織」のように単語が紐付いていない概念の場合や、「部門」のような単語の生起コストが設定されていない単語のみと紐付いている場合においても、概念に適切な生起コストが算出されていくことになる。なお、この後の処理については、第１の実施形態と同様であるため、省略する。
【０１４４】
以上説明したように、本実施形態を適用することにより、言葉が持つ意味同士の関係性、つまり、概念間の関係性を考慮することができるようになるため、第１の実施例による効果に加えて、新規に概念を定義し、かつ、その新規概念に紐付く単語を新規登録する場合においても、適切なコスト値を算出することが可能になる。
【符号の説明】
【０１４５】
１０１・・・情報分析辞書構築サブシステム、
１０２・・・情報分析サーバ、
１０３および１０４・・・情報分析クライアント、
１０５・・・ネットワーク、
１１０・・・メモリ、
１２０・・・記憶装置、
１３０・・・ＣＰＵ（中央演算装置）、
１４０・・・出力装置、
１５０・・・入力装置、
１６０・・・通信インタフェース、
１７０・・・バス
【図１】
0005941345.tif 000002
【図２】
0005941345.tif 000003
【図３】
0005941345.tif 000004
【図４】
0005941345.tif 000005
【図５】
0005941345.tif 000006
【図６】
0005941345.tif 000007
【図７】
0005941345.tif 000008
【図８】
0005941345.tif 000009
【図９】
0005941345.tif 000010
【図１０】
0005941345.tif 000011
【図１１】
0005941345.tif 000012
【図１２】
0005941345.tif 000013
【図１３】
0005941345.tif 000014
【図１４】
0005941345.tif 000015
【図１５】
0005941345.tif 000016
【図１６】
0005941345.tif 000017
【図１７】
0005941345.tif 000018
【図１８】
0005941345.tif 000019
【図１９】
0005941345.tif 000020
【図２０】
0005941345.tif 000021
【図２１】
0005941345.tif 000022
【図２２】
0005941345.tif 000023
【図２３】
0005941345.tif 000024
【図２４】
0005941345.tif 000025
【図２５】
0005941345.tif 000026
【図２６】
0005941345.tif 000027
【図２７】
0005941345.tif 000028
【図２８】
0005941345.tif 000029
【図２９】
0005941345.tif 000030
【図３０】
0005941345.tif 000031
【図３１】
0005941345.tif 000032
【図３２】
0005941345.tif 000033
【図３３】
0005941345.tif 000034
【図３４】
0005941345.tif 000035
【図３５】
0005941345.tif 000036
【図３６】
0005941345.tif 000037