(57)【特許請求の範囲】
【請求項１】
文書データに含まれる文字列に対して形態素解析を実行することで、複合名詞を検出し、検出した複合名詞ごとに、当該複合名詞に含まれる単語及び単語間の区切りを特定する複合名詞検出部と、
前記検出した複合名詞から選択した二つの複合名詞を同義語候補とする同義語候補選択部と、
前記同義語候補に含まれる前記二つの複合名詞の一方に含まれる単語の順序を並び替えて得られる文字列が、前記同義語候補に含まれる前記二つの複合名詞の他方と一致する場合、前記二つの複合名詞を互いに対する同義語と判定する同義語判定部と、
を有し、
前記同義語判定部は、前記同義語候補に含まれる前記二つの複合名詞のそれぞれについて、当該複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値を算出し、前記評価値が所定の閾値以上となる複合名詞について単語の順序を並び替えて前記二つの複合名詞の他方と一致するか否か判定し、一方、前記評価値が前記所定の閾値未満となる複合名詞について単語の順序を並び替えない
同義語検出装置。
【請求項２】
前記同義語候補選択部は、前記検出した複合名詞から選択した二つの前記複合名詞間の編集距離に基づく距離評価値を算出し、当該距離評価値が第２の閾値以下となる場合、当該二つの前記複合名詞を前記同義語候補とする、請求項１に記載の同義語検出装置。
【請求項３】
単語ごとに、当該単語と同一の意味を持ち、かつ、異なる綴りを持つ同義単語を表す同義単語辞書を記憶する記憶部をさらに有し、
前記同義語候補選択部は、前記検出した複合名詞から選択した前記二つの複合名詞の一方について、前記同義単語辞書を参照して、当該複合名詞に含まれる単語を前記同義単語で置換して得られる複合名詞を作成し、前記選択した複合名詞の一方及び作成した複合名詞のそれぞれについて、前記選択した複合名詞の他方との前記距離評価値を算出し、前記選択した複合名詞の一方及び作成した複合名詞のうち、前記距離評価値が最小となる複合名詞と前記選択した複合名詞の他方との組を前記同義語候補とする、請求項２に記載の同義語検出装置。
【請求項４】
前記文書データにおいて、前記同義語と判定された前記二つの複合名詞の一方を、前記二つの複合名詞の他方で置換する書き換え部をさらに有する、請求項１〜３の何れか一項に記載の同義語検出装置。
【請求項５】
コンピュータが、文書データに含まれる複合名詞を検出し、検出した複合名詞ごとに、当該複合名詞に含まれる単語及び単語間の区切りを特定し、
前記コンピュータが、前記検出した複合名詞のペアを同義語候補とし、
前記コンピュータが、前記同義語候補に含まれる複合名詞の一方について、当該複合名詞に含まれる単語の順序を並び替えて得られる文字列が、前記同義語候補に含まれる複合名詞の他方と一致する場合、前記同義語候補に含まれる複合名詞のペアを同義語と判定する、
ことを含み、
前記同義語と判定することは、前記同義語候補に含まれる前記複合名詞のそれぞれについて、当該複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値を算出し、前記評価値が所定の閾値以上となる複合名詞について単語の順序を並び替えて前記同義語候補に含まれる複合名詞の他方と一致するか否か判定し、一方、前記評価値が前記所定の閾値未満となる複合名詞について単語の順序を並び替えないことを含む
同義語検出方法。
【請求項６】
文書データに含まれる複合名詞を検出し、検出した複合名詞ごとに、当該複合名詞に含まれる単語及び単語間の区切りを特定し、
前記検出した複合名詞のペアを同義語候補とし、
前記同義語候補に含まれる複合名詞の一方について、当該複合名詞に含まれる単語の順序を並び替えて得られる文字列が、前記同義語候補に含まれる複合名詞の他方と一致する場合、前記同義語候補に含まれる複合名詞のペアを同義語と判定する、
ことをコンピュータに実行させ、
前記同義語と判定することは、前記同義語候補に含まれる前記複合名詞のそれぞれについて、当該複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値を算出し、前記評価値が所定の閾値以上となる複合名詞について単語の順序を並び替えて前記同義語候補に含まれる複合名詞の他方と一致するか否か判定し、一方、前記評価値が前記所定の閾値未満となる複合名詞について単語の順序を並び替えないことを含む
同義語検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、文書中に含まれる同義語を検出する同義語検出装置、同義語検出方法及び同義語検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
ソフトウェアの開発工程にて作成される文書のような技術文書では、正確に内容を表現するために、機能あるいは項目を表現する技術用語は正確に用いられることが好ましい。一方、技術用語として、複数の単語が組み合わされた複合名詞が用いられることがある。技術文書を作成する執筆者が、このような複合名詞を正確に覚えていないと、その複合名詞に含まれる単語の順序を入れ替えてしまうことがある。その結果として、技術文書中で、同じ意味を表すものの、単語順列が互いに異なる複数の複合名詞が使用されることになる。同様に、複合名詞で表現される各種の専門用語を含む文書においても、同じ意味を表すものの、単語順列が互いに異なる複数の複合名詞が使用されることがある。このような複数の複合名詞は、互いに対する同義語となる。そこで、文書中に含まれる、このような同義語を検出する技術が提案されている（例えば、特許文献１を参照）。
【０００３】
例えば、特許文献１に開示された同義語抽出システムは、分析対象である文書を受け付け、その文書中の各文及び複合語に形態素解析及び構文解析を適用し、各単語の品詞及び係り受け関係を抽出する。そしてこの同義語抽出システムは、同義関係を持つ単語ペア候補を同義語候補として推定し、推定した同義語候補から定型文と判定された定型文中の非定形語を除外することで同義語候補を補正する。またこの同義語抽出システムは、定型文を抽出する際、例えば、対象となる二つの文の形態素を利用した編集距離を評価し、その編集距離が閾値以下で、かつ、形態素数が等しいものを定型文と判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１３２４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術では、形態素解析が正確に行われることが前提となっている。そのため、形態素解析の結果が誤っていた場合、定型文が正確に抽出されず、その結果として同義語の抽出も不正確なることがある。
【０００６】
一つの側面として、本発明は、文書中に含まれる複合名詞の同義語を検出可能な同義語検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施形態によれば、同義語検出装置が提供される。この同義語検出装置は、文書データに含まれる文字列に対して形態素解析を実行することで、複合名詞を検出し、検出した複合名詞ごとに、その複合名詞に含まれる単語及び単語間の区切りを特定する複合名詞検出部と、検出した複合名詞から選択した二つの複合名詞を同義語候補とする同義語候補選択部と、同義語候補に含まれる二つの複合名詞の一方に含まれる単語の順序を並び替えて得られる文字列が、同義語候補に含まれる二つの複合名詞の他方と一致する場合、二つの複合名詞を互いに対する同義語と判定する同義語判定部とを有する。
【発明の効果】
【０００８】
文書中に含まれる複合名詞の同義語を検出できる。
【図面の簡単な説明】
【０００９】
【図１】同義語検出装置の概略構成図である。
【図２】同義語検出装置が有する処理部の機能ブロック図である。
【図３】複合名詞のペアと距離評価値の関係の一例を示す図である。
【図４】複合名詞について、単語の順序を入れ替えることで得られる文字列を示す図である。
【図５】同義語検出処理の動作フローチャートである。
【図６】変形例による、複合名詞ごとの評価値の一例を示す図である。
【図７】単語の並び替えを行わない条件が規定されたテーブルの一例を示す図である。
【図８】複合名詞に含まれる単語の一部を同義単語に入れ替える場合の処理の一例を示す図である。
【図９】変形例による、表示部の表示画面の一例を示す図である。
【図１０】変形例による処理部の機能ブロック図である。
【発明を実施するための形態】
【００１０】
以下、図を参照しつつ、同義語検出装置について説明する。
この同義語検出装置は、文書データに対して形態素解析及び構文解析を行って、複合名詞を検出するとともに、複合名詞に含まれる単語及び連続する単語間の区切りを特定し、検出された複合名詞のペアを同義語の候補とする。そしてこの同義語検出装置は、そのペアに含まれる複合名詞のうちの一方について、その複合名詞に含まれる単語の順序を並び替えることで、その組の他方の複合名詞を作成できる場合に、そのペアに含まれる二つの複合名詞を互いに対する同義語と判定する。
【００１１】
図１は、一つの実施形態による同義語検出装置の概略構成図である。本実施形態では、同義語検出装置１は、操作部２と、表示部３と、通信インターフェース部４と、記憶部５と、処理部６とを有する。
【００１２】
操作部２は、例えば、キーボードと、マウスといったポインティングデバイスとを有する。そして操作部２は、例えば、ユーザによる操作に従って、記憶部５に保存されている文書データの中から、同義語検出の対象となる文書データを指定し、その指定された文書データを指定する信号を処理部６へ渡す。なお、同義語検出の対象となる文書データは、ユーザが作成中の文書データであってもよい。
【００１３】
表示部３は、液晶ディスプレイといった表示装置を有する。そして表示部３は、検出された同義語などを表示する。なお、操作部２と表示部３とは、タッチパネルディスプレイとして一体的に形成されてもよい。
【００１４】
通信インターフェース部４は、同義語検出装置１を通信ネットワークに接続するためのインターフェース回路を有し、通信ネットワークを介して様々な情報を取得する。例えば、通信インターフェース部４は、同義語検出対象となる文書データ、あるいはコーパスを、通信ネットワークを介して同義語検出装置１と接続された他の機器から取得する。
また、通信インターフェース部４は、処理部６から受け取った同義語を表す情報を、通信ネットワークを介して同義語検出装置１と接続された他の装置へ出力してもよい。
【００１５】
記憶部５は、例えば、半導体メモリ回路、磁気記憶装置または光記憶装置のうちの少なくとも一つを有する。そして記憶部５は、処理部６で用いられる各種コンピュータプログラム、同義語検出処理に用いられる各種のデータを記憶する。
記憶部５は、同義語検出処理に用いられるデータとして、例えば、形態素ごとの表現及び品詞情報を表す形態素辞書、及び、検出された同義語が登録される同義表現辞書を記憶する。
【００１６】
処理部６は、一つまたは複数のプロセッサと、メモリ回路と、周辺回路とを有する。そして処理部６は、操作部２を介して指定された文書データに対して同義語検出処理を実行する。
【００１７】
図２は、処理部６の機能ブロック図である。処理部６は、複合名詞検出部１１と、同義語候補選択部１２と、同義語判定部１３とを有する。
処理部６が有するこれらの各部は、例えば、処理部６が有するプロセッサ上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、処理部６が有するこれらの各部は、その各部の機能を実現する一つまたは複数の集積回路として同義語検出装置１に実装されてもよい。
【００１８】
複合名詞検出部１１は、操作部２を介して指定された、同義語検出対象となる文書データに含まれる文字列を抽出し、その文字列に含まれる複合名詞を検出する。指定された文書データは、例えば、テキストデータ、あるいは、文字列を記述することが可能な様々なフォーマットの何れかに従ったデータとすることができる。
【００１９】
複合名詞検出部１１は、抽出された文字列に対して、例えば、形態素辞書を参照して形態素解析を実行することにより、その文字列を形態素ごとに分割するとともに、各形態素の品詞を特定する。なお、複合名詞検出部１１は、形態素解析として、例えば、動的計画法を用いる方法を利用できる。そして複合名詞検出部１１は、形態素ごとに分割された文字列に対して、構文解析を実行することで、形態素間の係り受け関係を特定する。なお、複合名詞検出部１１は、構文解析として、例えば、先読みＬＲパーザまたはＬＬ法といった手法を利用できる。これにより、複合名詞検出部１１は、その係り受け関係及び各形態素の品詞を参照して、連続する名詞の集合といった、複数の連続する単語が組み合わさって一つの名詞となる単語の集合のそれぞれを、複合名詞として検出する。また複合名詞検出部１１は、同一の綴りを持つ複合名詞ごとに、出現頻度を算出する。
複合名詞検出部１１は、検出した各複合名詞、及び、その複合名詞に含まれる各単語及び連続する単語間の区切りを表す情報を、同義語候補選択部１２へ通知する。
【００２０】
同義語候補選択部１２は、検出された複合名詞の中から選択した複合名詞のペアを、同義語候補に設定する。
【００２１】
上述したように、ある複合名詞に含まれる単語の順序が誤って記載されることでその複合名詞の同義語が記載されているとする。この場合、互いに対して同義語となる二つの複合名詞のうちの一方について、その複合名詞に含まれる単語の順序を入れ替えることで、他方の複合名詞と一致する文字列が得られると想定される。したがって、互いに対して同義語となる二つの複合名詞間の編集距離は相対的に短いと想定される。ただし、互いに対して同義語となる二つの複合名詞のうちの一方について形態素解析が誤っていると、その一方の複合名詞に含まれる単語の組は、他方の複合名詞に含まれる単語の組と必ずしも一致しない。
【００２２】
そこで本実施形態では、同義語候補選択部１２は、検出された複合名詞のなかから、編集距離に基づく距離評価値が所定の閾値以下となる複合名詞のペアを同義語候補として選択する。例えば、同義語候補選択部１２は、次式に従って、距離評価値を算出する。
【数１】
0006623840.tif 000002
ここで、LevenshteinDis(s1,s2)は、複合名詞s1と複合名詞s2間の編集距離であり、複合名詞s1に対して文字の挿入・削除・置換といった編集操作を行って複合名詞s2が得られる最小回数を表す。またlen(x)は、複合名詞xの長さ、すなわち、文字数を表す。そしてEditDisScore(s1,s2)は、複合名詞s1と複合名詞s2間の距離評価値を表す。一般に、編集距離の算出対象となる二つの複合名詞のそれぞれが長くなるほど、編集距離は長くなる。そこで（１）式に示されるように、各複合名詞の長さにより編集距離を補正することで、各複合名詞の長さによる距離評価値への影響が軽減される。すなわち、（１）式に示されるように、距離評価値は、複合名詞s1と複合名詞s2間の編集距離が長くなるほど大きくなり、かつ、複合名詞s1と複合名詞s2のそれぞれに含まれる単語の数が少ないほど大きくなる。
【００２３】
同義語候補選択部１２は、距離評価値が所定の閾値以下となる複合名詞のペアを同義語候補として選択する。所定の閾値は、例えば、0.3に設定される。
【００２４】
図３は、検出された複合名詞のペアと、そのペアについての距離評価値の関係の一例を示す図である。図３に示される例では、４個の複合名詞（１）会社／金額／値引／合計、（２）会社／値／引金／額／合計、（３）会社／マスタ、（４）集計／ＵＩが検出されている。なお、各複合名詞において、記号'／'は、形態素間の区切り、すなわち、複合名詞に含まれる単語間の区切りを表す。そしてテーブル３００は、これら４個の複合名詞のうちの二つの組み合わせごとに算出された、距離評価値を表す。テーブル３００に示されるように、複合名詞（１）会社／金額／値引／合計と複合名詞（２）会社／値／引金／額／合計間の距離評価値が0.3以下となり、それ以外の複合名詞のペアでは、距離評価値は0.3より大きい。そこで同義語候補選択部１２は、複合名詞（１）会社／金額／値引／合計と複合名詞（２）会社／値／引金／額／合計のペアを、同義語候補として選択する。
同義語候補選択部１２は、同義語候補となる複合名詞のペアを同義語判定部１３へ通知する。
【００２５】
同義語判定部１３は、同義語候補である複合名詞のペアに含まれる二つの複合名詞のうちの少なくとも一方について、その複合名詞に含まれる単語の順序を並び替える。そして同義語判定部１３は、単語の順序を並び替えて得られた文字列が、同義語候補の他方の複合名詞と一致する場合、その二つの複合名詞を互いに対する同義語と判定する。一方、同義語判定部１３は、その二つの複合名詞の何れについても、単語の順序を並び替えて得られた文字列が、他方の複合名詞と一致しない場合、その二つの複合名詞を互いに対する同義語でないと判定する。
【００２６】
図４は、複合名詞（１）会社／金額／値引／合計と複合名詞（２）会社／値／引金／額／合計のそれぞれについて、単語の順序を入れ替えることで得られる文字列を示す図である。テーブル４００は、複合名詞（１）会社／金額／値引／合計について単語の順序を並び替えて得られる文字列の一覧を表し、一方、テーブル４１０は、複合名詞（２）会社／値／引金／額／合計について単語の順序を並び替えて得られる文字列の一覧を表す。この例では、テーブル４００に示された文字列４０１（会社／値引／金額／合計）が、他方の複合名詞（２）会社／値／引金／額／合計と一致する。したがって、同義語判定部１３は、複合名詞（１）会社／金額／値引／合計と複合名詞（２）会社／値／引金／額／合計とは、互いに対する同義語であると判定する。
【００２７】
なお、この例では、テーブル４１０に示されるように、複合名詞（２）会社／値／引金／額／合計について単語の順序を並び替えて得られる何れの文字列も、複合名詞（１）会社／金額／値引／合計と一致しない。そのため、同義語判定部１３は、複合名詞（２）会社／値／引金／額／合計に対する形態素解析が誤りであると判定する。そして同義語判定部１３は、複合名詞（２）会社／値／引金／額／合計を、その同義語である複合名詞（１）会社／金額／値引／合計に含まれる単語ごとに再度分割し直す。すなわち、同義語判定部１３は、複合名詞（２）の形態素ごとの分割結果を、（２）会社／値引／金額／合計に補正する。
【００２８】
同義語判定部１３は、同義語と判定された複合名詞のペアを、同義表現辞書に登録する。図４に示される例では、同義語判定部１３は、複合名詞（１）会社／金額／値引／合計と（２）会社／値引／金額／合計とを、互いに対する同義語として、同義表現辞書に登録する。
【００２９】
また、同義語判定部１３は、同義語と判定された複合名詞のペアを、表示部３に表示させてもよい。
【００３０】
図５は、同義語検出処理の動作フローチャートである。
複合名詞検出部１１は、操作部２を介して指定された文書データに含まれる文字列を抽出する（ステップＳ１０１）。そして複合名詞検出部１１は、その文字列に対して形態素解析を行って形態素単位で分割するとともに、構文解析を行って形態素間の係り受けを求める。これにより、複合名詞検出部１１は、その文字列中に含まれる複合名詞を検出し、かつ、検出した複合名詞ごとに、複合名詞に含まれる単語及び連続する単語間の区切りを特定する（ステップＳ１０２）。
【００３１】
同義語候補選択部１２は、検出された複合名詞の中から、組み合わせの異なる複合名詞のペアを一つ以上作成し、各ペアについて距離評価値を算出する（ステップＳ１０３）。そして同義語候補選択部１２は、距離評価値が所定の閾値未満となるペアを、同義語候補として選択する（ステップＳ１０４）。
【００３２】
同義語判定部１３は、同義語候補のそれぞれについて、その候補に含まれる複合名詞のうちの少なくとも一方について、その複合名詞に含まれる単語の順序を並び替えた文字列を作成する（ステップＳ１０５）。そして同義語判定部１３は、作成した文字列の何れかが、同義語候補に含まれる他方の複合名詞と一致する場合、その同義語候補である複合名詞のペアを互いに対する同義語と判定する（ステップＳ１０６）。そして同義語判定部１３は、同義語と判定された複合名詞のペアを、同義表現辞書に登録する（ステップＳ１０７）。そして処理部６は、同義語検出処理を終了する。
【００３３】
以上に説明したように、この同義語検出装置は、同義語候補となる複合名詞のペアに含まれる少なくとも一方の複合名詞について、その複合名詞に含まれる単語の順序を並び替えた文字列を作成する。そしてこの同義語検出装置は、作成した文字列の何れかが他方の複合名詞と一致する場合に、その複合名詞のペアを、互いに対する同義語と判定する。これにより、この同義語検出装置は、文書データ中で使用されている、複合名詞の同義語を検出できる。またこの同義語検出装置は、同義語候補となる複合名詞のペアに含まれる一方の複合名詞に対する形態素解析が誤っていたとしても、その複合名詞のペアが同義語か否かを正確に判定できる。
【００３４】
変形例によれば、同義語候補選択部１２は、検索対象となる文書から検出された複合名詞から選択した複合名詞のペアのそれぞれを、距離評価値を参照せずに、同義語候補としてもよい。
【００３５】
なお、検出された複合名詞についての形態素解析の結果が不正確である場合、一つの形態素が複数の形態素と判定されたり、形態素間の区切りの位置が本来の区切りの位置と異なっていることがある。このような場合、互いに対して同義語でない二つの複合名詞のうちの形態素解析の結果が不正確な複合名詞に含まれる単語の順序が並び替えられることで、他方の複合名詞と一致し、同義語であると誤判定される可能性がある。例えば、複合名詞（ａ）上／海／保険／会社と、複合名詞（ｂ）海上／保険／会社のペアが同義語候補として検出されていると仮定する。この場合、複合名詞（ａ）における名詞「上海」は、それ自体、一つの固有名詞と考えられる。しかし、上記のように、形態素解析の誤りにより、固有名詞「上海」が単語「上」と単語「海」とに分割された結果、複合名詞（ａ）に含まれる単語の順序を並び替えることで、複合名詞（ｂ）と一致する文字列が得られてしまう。その結果、複合名詞（ａ）上／海／保険／会社と、複合名詞（ｂ）海上／保険／会社とが、同義語であると誤判定されることになる。
【００３６】
そこで変形例によれば、同義語判定部１３は、同義語候補となる複合名詞のペアのそれぞれについて、そのペアに含まれる複合名詞ごとに、その複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値を算出する。そして同義語判定部１３は、その評価値が所定の閾値以下である複合名詞については、単語の並び替えを行わない。含まれる形態素列の出現確率を言語モデルに基づいて算出する。
【００３７】
同義語判定部１３は、例えば、複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値を、その複合名詞に含まれる、連続する単語の組の出現確率に基づいて算出する。例えば、同義語判定部１３は、次式に従って、評価値Scoreを算出できる。
【数２】
0006623840.tif 000003
ここで、mjは、評価値Scoreの計算対象となる複合名詞に含まれる、形態素解析の結果得られた、先頭からj番目の単語を表し、Mは、その複合名詞に含まれる単語の総数を表す。そしてp(mj+1|mj)は、単語mjの次に、単語mj+1が出現する条件付き確率である。この条件付き確率は、例えば、予め用意された、形態素解析結果が正確なコーパスにおいて、単語mjの出現頻度h1と、単語mjの次に単語mj+1が出現する頻度h2とを求め、その比(h2/h1)を求めることで得られる。なお、条件付き確率算出用のコーパスは、分野ごとに用意されてもよい。そして同義語検出対象となる文書データが属する分野と同じ分野のコーパスが条件付き確率p(mj+1|mj)の算出に利用されてもよい。この場合、予め、文書データごと、及び、コーパスごとに、その文書データまたはコーパスが属する分野を表すフラグが、その文書データ及びコーパスに付されていればよい。処理部６は、そのフラグを参照することで、同義語検出対象となる文書データが属する分野と同じ分野のコーパスを選択できる。
【００３８】
同義語判定部１３は、評価値Scoreが所定の閾値以上となる場合、並び替えを実行し、一方、評価値Scoreが所定の閾値未満となる場合には、並び替えを実行しない。また、同義語候補に含まれる、二つの複合名詞の何れについても、評価値Scoreが所定の閾値未満となる場合、同義語判定部１３は、その同義語候補を削除してもよい。なお、所定の閾値は、例えば、形態素解析結果が正確なコーパスにおいて、形態素数Mごとに、そのコーパスに含まれる複合名詞について算出された評価値Scoreの平均値またはその平均値から所定のオフセットを減じた値とすることができる。
【００３９】
図６は、この変形例による、複合名詞ごとの評価値の一例を示す図である。図６に示される例では、複合名詞（ａ）上／海／保険／会社と複合名詞（ｂ）海上／保険／会社について評価値が算出される。複合名詞（ａ）上／海／保険／会社については、含まれる形態素の数Mが4であるので、式６０１に示されるように、p(海／｜上／)*p(保険／|海／)*p(会社／|保険／)*4を計算することで評価値が算出される。一方、複合名詞（ｂ）海上／保険／会社については、含まれる形態素の数Mが3であるので、式６０２に示されるように、p(保険／|海上／)*p(会社／|保険／)*3を計算することで評価値が算出される。そして例えば、閾値が0.01であるとすると、複合名詞（ａ）上／海／保険／会社については、評価値が閾値未満となるので、同義語判定部１３は、複合名詞（ａ）について、単語の並び替えを行わない。一方、複合名詞（ｂ）海上／保険／会社については、評価値が閾値以上となるので、同義語判定部１３は、複合名詞（ｂ）について、単語の並び替えを実行する。
【００４０】
図６に示される例では、複合名詞（ａ）上／海／保険／会社と複合名詞（ｂ）海上／保険／会社とが同義語候補であったとしても、複合名詞（ａ）について単語の並び替えが行われない。一方、複合名詞（ｂ）について単語を並び替えることによって得られる文字列の何れも、複合名詞（ａ）とは一致しない。したがって、同義語判定部１３は、複合名詞（ａ）上／海／保険／会社と複合名詞（ｂ）海上／保険／会社とを、誤って同義語と判定することを防止できる。
【００４１】
また、同義語判定部１３は、単語の並び替えを行うか否かの判定に用いる、複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値として、複合名詞検出の際の複合名詞のラティスにおける、形態素解析結果によるスコアを利用してもよい。この場合、ラティスは、評価値算出対象となる複合名詞に対して、形態素辞書を参照して、その複合名詞に対応する形態素の可能な組み合わせを全て求めることで生成される。そして複合名詞検出部１１は、各組み合わせについて、その組み合わせに含まれる、連続する二つの形態素が連結して出現する確率の積に相当するスコアを算出する。例えば、複合名詞検出部１１は、このスコアを、隠れマルコフモデルを利用して算出できる。複合名詞検出部１１は、スコアの最大値、すなわち、最適パスのスコアに相当する単語及び単語間の区切りに基づいて複合名詞を検出する。そこで、同義語判定部１３は、スコアの最大値を、最適パスに含まれる形態素の数で除して得られる値を評価値として算出する。
【００４２】
この場合、評価値と比較される閾値は、例えば、形態素解析結果が正確なコーパスにおいて、そのコーパスに含まれる複合名詞について算出された評価値の平均値または平均値から所定のオフセットを減じた値とすることができる。またこの例でも、同義語候補に含まれる、二つの複合名詞の何れについても、評価値が所定の閾値未満となる場合、同義語判定部１３は、その同義語候補を削除してもよい。
【００４３】
さらに、予め、単語の並び替えを行うことが不適切と考えられる複合名詞についての少なくとも一つの条件が、記憶部５に記憶されてもよい。そして同義語判定部１３は、同義語候補に含まれる複合名詞の少なくとも一方がその条件の何れかに該当する場合、単語の並び替えを行わなくてもよい。
【００４４】
図７は、単語の並び替えを行わない条件が規定されたテーブルの一例を示す図である。この例では、テーブル７００には、二つの条件７０１及び条件７０２が規定されている。条件７０１では、１文字の形態素の次に、名詞「保険」が後続する場合には、単語の並び替えを行わないことが規定されている。これにより、例えば、上記の複合名詞（ａ）上／海／保険／会社は、条件７０１を満たすので、同義語判定部１３は、複合名詞（ａ）については単語の並び替えを行わない。そのため、同義語判定部１３は、複合名詞（ａ）上／海／保険／会社と複合名詞（ｂ）海上／保険／会社とが同義語候補であっても、複合名詞（ａ）と複合名詞（ｂ）とを、誤って同義語と判定することを防止できる。
【００４５】
また、条件７０２では、同義語候補である複合名詞ペアにおいて、最後の単語が一致しない場合、その同義語候補に含まれる各複合名詞について、単語の並び替えを行わない、すなわち、その同義語候補を削除することが規定されている。例えば、同義語候補に含まれる二つの複合名詞が、それぞれ、（ｃ）会社／金額／値引／合計と、（ｄ）会社／値引／合計／金額であるとする。この場合、複合名詞（ｃ）の最後の単語「合計」と、複合名詞（ｄ）の最後の単語「金額」とは一致しない。したがって、同義語判定部１３は、複合名詞（ｃ）と複合名詞（ｄ）とを含む同義語候補を削除する。
【００４６】
さらにまた、複合名詞に含まれる二つ以上の連続する単語の組について、個別に並び替えることを禁止する条件が予め規定されてもよい。そのような条件の一例として、単語「株式」と単語「会社」とが、個別に並び替えることが禁止されてもよい。そして同義語判定部１３は、同義語候補に含まれる複合名詞に、そのような条件を満たす単語の組が含まれる場合、その単語の組を一体として単語を並び替えればよい。
【００４７】
以上に説明してきたように、この変形例によれば、同義語検出装置は、形態素解析の結果が不正確と想定される複合名詞についての単語の並び替えを行わないので、同義語でない複合名詞のペアを、互いに対する同義語と誤判定することを抑制できる。
【００４８】
また、同義語検出対象となる文書のなかで、複合名詞に含まれる単語の何れかが、その単語の同義語（以下、複合単語の同義語と区別するために、便宜上、単語の同義語を同義単語と呼ぶ）で置換されている場合もある。このような場合、同義語検出装置は、複合名詞だけでなく、その複合名詞に含まれる単語の何れかが同義単語で置換された複合名詞も、同義語候補に含めることが好ましい。
【００４９】
そこで他の変形例によれば、同義語候補選択部１２は、検出された複合名詞のペアのそれぞれについて、その複合名詞に含まれる単語をその単語の同義単語で置換して得られる複合名詞のそれぞれについても距離評価値を算出する。そして同義語候補選択部１２は、距離評価値の最小値が所定の閾値以下である場合に、その最小値に対応するペアを同義語候補とする。
【００５０】
なお、単語ごとに規定される同義単語は、例えば、同義単語辞書に予め登録され、同義単語辞書は、予め記憶部５に記憶される。そして同義語候補選択部１２は、その同義単語辞書を参照することで、着目する複合名詞に含まれる単語の同義単語を特定すればよい。
【００５１】
図８は、複合名詞に含まれる単語の一部を同義単語に入れ替える場合の処理の一例を示す図である。図８において、テーブル８００は、文書から検出された複合名詞の一覧を示す。この例では、複合名詞（１）会社／金額／値引／合計、複合名詞（２）会社／割／引金／額／合計、複合名詞（３）会社／マスタ、複合名詞（４）集計／ＵＩが検出されている。そして同義単語辞書８１０には、同義単語として、（ａ）合計と集計、（ｂ）値引と割引が登録されている。この場合、複合名詞（１）には、同義単語辞書に登録されている単語「合計」と「値引」が含まれている。したがって、同義語候補選択部１２は、複合名詞（１）において、これらの単語を同義単語で置換した複合名詞を生成する。同様に、複合名詞（４）には、同義単語辞書に登録されている単語「集計」が含まれている。したがって、同義語候補選択部１２は、複合名詞（４）において、単語「集計」をその同義単語「合計」で置換した複合名詞を生成する。
【００５２】
テーブル８２０は、検出された複合名詞に含まれる単語を同義単語で置換して得られる複合名詞も含む、複合名詞の一覧を示す。この例では、複合名詞（１）から、３個の複合名詞（１−１）会社／金額／値引／集計、（１−２）会社／金額／割引／合計、（１−３）会社／金額／割引／集計、が生成される。また、複合名詞（４）から、複合名詞（４−１）合計／ＵＩが生成される。
【００５３】
そして複合名詞（１）、（１−１）、（１−２）、（１−３）のうち、複合名詞（１−２）について、複合名詞（２）に対する距離評価値が最小となる。そのため、複合名詞（１−２）と複合名詞（２）間の距離評価値が所定の閾値以下であれば、同義語候補選択部１２は、複合名詞（１−２）と複合名詞（２）とのペアを、同義語候補８３０とする。そしてこの場合、複合名詞（１−２）に含まれる単語の順序を並び替えることで、複合名詞(２)と一致する文字列が得られる。したがって、同義語判定部１３は、複合名詞（１−２）に対応する、検出対象文書に含まれる複合名詞（１）と複合名詞（２）とを、互いに対する同義語と判定し、同義表現辞書に登録する。さらに追加として、同義語判定部１３は、複合名詞（１−２）と複合名詞（２）とを、互いに対する同義語として、同義表現辞書に登録してもよい。
【００５４】
この変形例によれば、同義語検出装置は、単語の何れかが同義単語に置換された複合名詞が文書中で使用されている場合でも、互いに対して同義語となる複合名詞のペアを検出できる。
【００５５】
また、他の変形例によれば、同義語判定部１３は、同義語の検出対象となった文書中で、同義語と判定された複合名詞を検索することで、その複合名詞が使用されている部分（例えば、その複合名詞が含まれる文節、文、あるいは段落）を特定してもよい。そして同義語判定部１３は、その特定された部分を、表示部３に表示させてもよい。この場合、同義語判定部１３は、同義語と判定された複合名詞の出現頻度順に、その特定された部分を表示させてもよい。あるいは、同義語判定部１３は、検出された同義語の一覧を表示部３に表示させ、ユーザが操作部２を介して何れかの同義語を選択する操作を行うと、その選択された同義語に対応する特定された部分を表示部３に表示させてもよい。さらにまた、ユーザが操作部２を介して入力した複合名詞が、同義語と判定された複合名詞と一致する場合に、その複合名詞の同義語、及び、その同義語に対応する特定された部分を表示部３に表示させてもよい。
【００５６】
図９は、この変形例による、表示部３の表示画面の一例を示す図である。表示画面９００では、入力ウインドウ９０１において、ユーザにより入力された文字列「会社値引金額合計を登録」が表示されている。この文字列中に、同義語が存在する複合名詞「会社値引金額合計」が含まれていたとする。そのため、例えば、ポップアップウインドウ９０２により、複合名詞「会社値引金額合計」と、その同義語である複合名詞「会社金額値引合計」とが、それぞれの出現頻度とともに表示される。そして例えば、ユーザが操作部２を介して複合名詞「会社金額値引合計」を選択することで、ポップアップウインドウ９０３により、その複合名詞が含まれる文節が表示される。
これにより、同義語検出装置１は、ユーザに、文書中で同義語がどのように使用されているのかを容易に理解させることができる。
【００５７】
さらに他の変形例によれば、同義語検出装置１は、操作部２を介してユーザにより入力された複合名詞の同義語を、文書中で検索してもよい。この場合には、複合名詞検出部１１は、入力された複合名詞に対しても形態素解析及び構文解析を行って、入力された複合名詞を単語単位に分割する。そして同義語候補選択部１２は、検索対象となる文書から検出された複合名詞のうち、入力された複合名詞との距離評価値が所定の閾値以下となる複合名詞を特定する。そして同義語候補選択部１２は、特定された複合名詞と入力された複合名詞のペアを同義語候補とすればよい。これにより、同義語検出装置１は、ユーザが入力した複合名詞についてのみ同義語を検出するので、演算量を削減できる。なお、この変形例でも、上記の変形例と同様に、同義語判定部１３は、文書中で検出した同義語が使用されている部分を特定し、その特定された部分を表示部３に表示させてもよい。
【００５８】
さらに他の変形例によれば、同義語検出装置は、同義語の検出対象となった文書データにおいて使用されている、同義語と判定された複合名詞のペアに含まれる複合名詞の一方を、他方の複合名詞で置換してもよい。
【００５９】
図１０は、この変形例による処理部６１の機能ブロック図である。処理部６１は、複合名詞検出部１１と、同義語候補選択部１２と、同義語判定部１３と、書き換え部１４とを有する。処理部６１は、上記の実施形態による処理部６と比較して、書き換え部１４を有する点で相違する。そこで以下では、書き換え部１４及びその関連部分について説明する。
【００６０】
書き換え部１４は、同義語の検出対象となった文書データにおいて、同義語と判定された複合名詞のペアに含まれる複合名詞の一方を、他方の複合名詞で置換する。例えば、書き換え部１４は、同義語と判定された複合名詞のペアに含まれる複合名詞ごとに優先度を設定し、その優先度が低い方の複合名詞を、優先度が高い方の複合名詞で置換する。
【００６１】
書き換え部１４は、優先度を、例えば、同義語の検出対象となった文書データにおける、複合名詞ごとの出現頻度に基づいて設定する。例えば、書き換え部１４は、出現頻度が高い複合名詞ほど、優先度を高くする。あるいは、書き換え部１４は、同義語の検出対象となった文書データ以外の文書データにおいて、複合名詞ごとに出現頻度を算出し、その出現頻度を優先度としてもよい。書き換え部１４は、そのような文書として、例えば、予め用意されたコーパス、あるいは、通信インターフェース部４を介して同義語検出装置１と接続される他の機器から取得した文書を利用できる。
【００６２】
あるいはまた、検出された同義語となる複合名詞のペアが、既に同義表現辞書に登録されていることがある。このような場合、過去において、ユーザが、例えば、文書作成の際に同義表現辞書を用いてその同義語となる複合名詞のペアのうちの何れかを選択した場合に、その選択回数に基づいて優先度が設定されてもよい。例えば、ユーザが何れかの複合名詞を選択する度に、その複合名詞に対する優先度に所定値が加算されてもよい。この場合、所定値は、例えば、複合名詞が選択された時点で設定されている優先度の値に、1未満の正の係数を乗じて得られる値とすることができる。また優先度の初期値は、その複合名詞についての同義語が検出された文書における、その複合名詞の出現頻度とすることができる。
【００６３】
なお、同義表現辞書は、通信ネットワークを介して同義語検出装置１と接続される複数の端末において共有されてもよい。この場合には、例えば、何れかの端末においてユーザが文字列を入力すると、その端末が入力された文字列に対して形態素解析及び構文解析を行ってその文字列に含まれる複合名詞を検出する。そして端末は、検出した複合名詞及びその端末の識別情報を通信ネットワークを介して同義語検出装置１へ送信する。同義語検出装置１は、同義表現辞書を参照して、受信した複合名詞の同義語が存在するか否か判定する。同義語が存在する場合、同義語検出装置１は、受信した識別情報で特定される端末へ、通信ネットワークを介してその同義語を返信する。そして同義語を受信した端末は、入力された文字列中に含まれる複合名詞とその同義語とを、その端末の表示部に表示させ、ユーザに何れかを選択させる。そして端末は、複合名詞及びその同義語のうち、選択された方を表す情報を、通信ネットワークを介して同義語検出装置１へ送信する。同義語検出装置１は、選択された方を表す情報を参照して、選択された方の優先度を更新する。
【００６４】
これにより、同義語検出装置１は、複数のユーザによる同義語の選択状況を優先度に反映させることができる。そのため、同義語検出装置１は、同義語検出対象となった文書中で使用されている、同義語と判定された複合名詞の中から、置換する複合名詞を適切に選択できる。
【００６５】
上記の各実施形態または変形例による同義語検出装置の処理部が有する各機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読み取り可能な記録媒体に記録された形で提供されてもよい。そのような記録媒体は、例えば、磁気記録媒体、光記録媒体または半導体メモリとすることができる。
【００６６】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００６７】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
文書データに含まれる文字列に対して形態素解析を実行することで、複合名詞を検出し、検出した複合名詞ごとに、当該複合名詞に含まれる単語及び単語間の区切りを特定する複合名詞検出部と、
前記検出した複合名詞から選択した二つの複合名詞を同義語候補とする同義語候補選択部と、
前記同義語候補に含まれる前記二つの複合名詞の一方に含まれる単語の順序を並び替えて得られる文字列が、前記同義語候補に含まれる前記二つの複合名詞の他方と一致する場合、前記二つの複合名詞を互いに対する同義語と判定する同義語判定部と、
を有する同義語検出装置。
（付記２）
前記同義語判定部は、前記同義語候補に含まれる前記二つの複合名詞のそれぞれについて、当該複合名詞に含まれる単語及び単語間の区切りの確からしさを表す評価値を算出し、前記評価値が所定の閾値以上となる複合名詞について単語の順序を並び替えて前記二つの複合名詞の他方と一致するか否か判定し、一方、前記評価値が前記所定の閾値未満となる複合名詞について単語の順序を並び替えない、付記１に記載の同義語検出装置。
（付記３）
前記同義語判定部は、前記同義語候補に含まれる前記二つの複合名詞のそれぞれについて、当該複合名詞に含まれる単語の並び順に応じた出現確率に応じて前記評価値を算出する、付記２に記載の同義語検出装置。
（付記４）
前記同義語判定部は、前記同義語候補に含まれる前記二つの複合名詞のそれぞれについて、当該複合名詞に含まれる単語の並び順に応じた前記出現確率が高いほど、前記評価値を高くする、付記３に記載の同義語検出装置。
（付記５）
前記同義語候補選択部は、前記検出した複合名詞から選択した二つの前記複合名詞間の編集距離に基づく距離評価値を算出し、当該距離評価値が第２の閾値以下となる場合、当該二つの前記複合名詞を前記同義語候補とする、付記１〜４の何れかに記載の同義語検出装置。
（付記６）
前記同義語候補選択部は、前記検出した複合名詞から選択した前記二つの前記複合名詞間の編集距離が長いほど前記距離評価値を大きくする、付記５に記載の同義語検出装置。
（付記７）
前記同義語候補選択部は、前記検出した複合名詞から選択した前記二つの前記複合名詞のそれぞれに含まれる単語の数が少ないほど前記距離評価値を大きくする、付記５に記載の同義語検出装置。
（付記８）
単語ごとに、当該単語と同一の意味を持ち、かつ、異なる綴りを持つ同義単語を表す同義単語辞書を記憶する記憶部をさらに有し、
前記同義語候補選択部は、前記検出した複合名詞から選択した前記二つの複合名詞の一方について、前記同義単語辞書を参照して、当該複合名詞に含まれる単語を前記同義単語で置換して得られる複合名詞を作成し、前記選択した複合名詞の一方及び作成した複合名詞のそれぞれについて、前記選択した複合名詞の他方との前記距離評価値を算出し、前記選択した複合名詞の一方及び作成した複合名詞のうち、前記距離評価値が最小となる複合名詞と前記選択した複合名詞の他方との組を前記同義語候補とする、付記５〜７の何れかに記載の同義語検出装置。
（付記９）
前記文書データにおいて、前記同義語と判定された前記二つの複合名詞の一方を、前記二つの複合名詞の他方で置換する書き換え部をさらに有する、付記１〜８の何れかに記載の同義語検出装置。
（付記１０）
前記書き換え部は、前記同義語と判定された前記二つの複合名詞のうち、前記文書データ中での出現頻度が低い方の複合名詞を、前記文書データ中での出現頻度が高い方の複合名詞で置換する、付記９に記載の同義語検出装置。
（付記１１）
文書データに含まれる複合名詞を検出し、検出した複合名詞ごとに、当該複合名詞に含まれる単語及び単語間の区切りを特定し、
前記検出した複合名詞のペアを同義語候補とし、
前記同義語候補に含まれる複合名詞の一方について、当該複合名詞に含まれる単語の順序を並び替えて得られる文字列が、前記同義語候補に含まれる複合名詞の他方と一致する場合、前記同義語候補に含まれる複合名詞のペアを同義語と判定する、
ことを含む同義語検出方法。
（付記１２）
文書データに含まれる複合名詞を検出し、検出した複合名詞ごとに、当該複合名詞に含まれる単語及び単語間の区切りを特定し、
前記検出した複合名詞のペアを同義語候補とし、
前記同義語候補に含まれる複合名詞の一方について、当該複合名詞に含まれる単語の順序を並び替えて得られる文字列が、前記同義語候補に含まれる複合名詞の他方と一致する場合、前記同義語候補に含まれる複合名詞のペアを同義語と判定する、
ことをコンピュータに実行させるための同義語検出用コンピュータプログラム。
【符号の説明】
【００６８】
１    同義語検出装置
２    操作部
３    表示部
４    通信インターフェース部
５    記憶部
６、６１    処理部
１１    複合名詞検出部
１２    同義語候補選択部
１３    同義語判定部
１４    書き換え部
【図１】
0006623840.tif 000004
【図２】
0006623840.tif 000005
【図３】
0006623840.tif 000006
【図４】
0006623840.tif 000007
【図５】
0006623840.tif 000008
【図６】
0006623840.tif 000009
【図７】
0006623840.tif 000010
【図８】
0006623840.tif 000011
【図９】
0006623840.tif 000012
【図１０】
0006623840.tif 000013