以下、図面により本発明の実施の形態について説明する。
図1は、本発明の実施形態に係る検索装置の電子回路の構成を示す機能ブロック図である。
本実施形態では、検索装置を例えば電子辞書10として構成した例について示す。なお、検索装置は、電子辞書10の他、パーソナルコンピュータ、スマートフォン、タブレットPCなどの各種の電子機器により実現することが可能である。
電子辞書10は、複数の見出し語とする単語にそれぞれ対応する少なくとも1つの語義に関する情報が辞書データとして記録されている。辞書データには、語義に対応する見出し語の単語を含む用例(例文)を含む。電子辞書10は、見出し語を指定する文字列(単語)を入力することで、見出し語に対応する語義などを含む情報を検索する検索機能を有する。電子辞書10が有する検索機能では、見出し語を指定する検索ワードとする文字列(単語)だけでなく、文字列(単語)を含む文章を入力することで検索を実行することができる。電子辞書10は、検索対象として入力された単語を含む文章に対する構文解析結果(第1構文解析情報)と、予め登録されている複数の語義のそれぞれに対応する用例に対する構文解析結果(第2構文解析情報)との類似度に基づいて、検索ワード(単語)に対応する語義を特定する。
電子辞書10は、各種の記録媒体に記録されたプログラム、又は、伝送されたプログラムを読み込んで、その読み込んだプログラムによって動作が制御されるコンピュータの構成を有し、その電子回路には、CPU(central processing unit)11が備えられる。
CPU11は、電子辞書10の全体を制御する制御部として機能する。CPU11は、メモリ12内に予め記憶された制御プログラム、あるいはROMカードなどの記録媒体13から記録媒体読取部14を介してメモリ12に読み込まれた制御プログラム、あるいはインターネット等を含むネットワークNを通じて、サーバ20から通信部15を介しダウンロードされてメモリ12に読み込まれた制御プログラムに応じて、回路各部の動作を制御する。
メモリ12に記憶された制御プログラムは、キー入力部16からのユーザ操作に応じた入力信号、タッチパネル式表示部17からのユーザ操作に応じた入力信号、あるいは外部接続されるネットワークN上のサーバ20との通信信号、あるいは記録媒体読取部14を介して接続されるEEPROM(登録商標),RAM,ROMなどの外部記録媒体13との接続通信信号に応じて起動される。
CPU11には、メモリ12、記録媒体読取部14、通信部15、キー入力部16、タッチパネル式表示部17などが接続される。
メモリ12に記憶される制御プログラムとしては、電子辞書10の全体の動作を司るシステムプログラム、外部接続されるネットワークN上のサーバ20、パーソナルコンピュータなどの他の電子機器とデータ通信するための通信プログラムが記憶される。さらに、メモリ12には、入力された文字列をもとに見出し語に対応する情報を検索して出力する検索機能を実行する辞書制御プログラム12aが記憶される。辞書制御プログラム12aは、文章データに対して構文解析を実行する構文解析プログラム12bが含まれる。
また、メモリ12には、辞書データ12c、係り受け関係タグ距離テーブル12dなどが記憶される。
辞書データ12cには、例えば、英和辞書、和英辞書、英英辞書、国語辞書などの複数の辞書を集録したデータベースが含まれる。辞書データ12cには、辞書毎に、各見出し語のそれぞれに対応する意味(語義)を説明する語義情報が含まれる。1つの見出し語に対して複数の語義情報が記憶される場合ある。また、語義情報には、見出し語(単語)の語義に応じた文章内での使用例を示す用例が設定される(図3参照)。なお、辞書データ12cは、電子辞書10の本体に内蔵せずに、ネットワークNを通じてアクセス可能な辞書データベース(例えば、サーバ20)から取得するようにしても良い。
係り受け関係タグ距離テーブル12dは、辞書データ12cに登録された各見出し語について、1つの見出し語に対する複数の語義それぞれに対応する用例に対する構文解析の結果を示す構文解析情報(第2構文解析情報)が記憶される。係り受け関係タグ距離テーブル12dの構文解析情報は、検索対象として検索ワードと共に入力された文章に対する構文解析結果(第1構文解析情報)との類似度の判別に用いられる。
構文解析の結果としては、例えば、語義に対応する用例で使用される見出し語の単語と用例中の他の単語との係り受け関係を示す係り受け種類(係り受け関係タグ)と、用例中の見出し語の単語と係り受け関係にある他の単語との距離を含む。係り受け関係を示す係り受け種類(係り受け関係タグ)と単語間の距離の詳細については後述する(図8~10参照)。
本実施形態における構文解析情報の類似度は、例えば文章に対する構文解析により抽出される係り受け種類(係り受け関係タグ)の一致数に基づくものとする。すなわち、同じ係り受け種類(係り受け関係タグ)を多く有するほど類似度が高いものとする。さらに、係り受け種類(係り受け関係タグ)の一致数が同じ複数の構文解析情報(用例)がある場合には、係り受け種類(係り受け関係タグ)が一致した係り受け関係にある見出し語と他の単語との距離が小さい方を類似度が高いものと判別する(なお、係り受け種類(係り受け関係タグ)が一致した係り受け関係にある他の単語が複数ある場合には、複数の他の単語のそれぞれに対応する距離の合計を元に判別する)。
係り受け関係タグ距離テーブル12dには、例えば全ての見出し語にそれぞれ対応する各語義の用例に対して、係り受け種類(係り受け関係タグ)、及び係り受け関係にある単語間の距離を示す係り受け関係データを、「係り受け関係タグ距離セット」として作成して登録しておく。「係り受け関係タグ距離セット」は、語義に対応する1つの用例に対して1セット作成される。さらに、辞書データ12cに登録された用例だけではなく、他の文章からも係り受け関係タグ距離セットを作成して、係り受け関係タグ距離テーブル12dに登録することもできる。
なお、係り受け関係タグ距離テーブル12dは、辞書データ12cとは別に生成するのではなく、辞書データ12cの一部として登録されていても良い。また、「係り受け関係タグ距離セット」は、辞書データ12cに予め登録される他に、辞書データ12cに登録された用例とは別の文章に対して構造解析処理を実行することで生成され、係り受け関係タグ距離テーブル12dに追加登録されても良い。この場合、辞書データ12cに登録された「係り受け関係タグ距離セット」と、係り受け関係タグ距離テーブル12dに登録された「係り受け関係タグ距離セット」とを合わせて用いて、後述する辞書制御処理を実行するようにしても良い。
さらに、係り受け関係タグ距離テーブル12dは、電子辞書10の本体に内蔵せずに、ネットワークNを通じてアクセス可能な辞書データベース(例えば、サーバ20)から取得するようにしても良い。
図2は、電子辞書10の外観構成を示す正面図である。
図2における電子辞書10の場合、開閉される装置本体の下段側にCPU11、メモリ12、記録媒体読取部14、通信部15が内蔵されると共に、キー入力部16が設けられ、上段側にタッチパネル式表示部17が設けられる。
キー入力部16には、文字入力キー16a、各種の辞書や各種機能を選択することができる辞書選択キー16b、[訳/決定]キー16c、[戻る]キー16d、カーソルキー(上下左右キー)16e、電源ボタン、その他の各種機能キーなどが備えられる。タッチパネル式表示部17には、各種機能の実行に応じて、各種メニューやボタン17aなどが表示される。
電子辞書10は、ユーザによるキー入力部16に対する操作、あるいは表示部17に表示されたメニューやボタンに対するタッチ操作(ペン先、あるいは指先による)に応じて、ユーザによる指示を入力することができる。
このように構成された電子辞書10は、CPU11が辞書制御プログラム12aに記述された命令に従い回路各部の動作を制御し、ソフトウエアとハードウエアとが協働して動作することにより、以下の動作説明で述べる機能を実現する。
図3は、辞書データ12cに登録される情報の一例を示す図である。
図3は、見出し語とする単語「catch」に対応する語義情報を示している。見出し語とする単語「catch」には、複数の語義1,2,…に対応する語義情報が登録されている。例えば、図3では、単語「catch」を動詞として使用した場合の語義1と、名詞として使用した場合の語義2がある場合の例を示している。さらに、図3では、語義1,2のそれぞれに対応づけて、見出し語とする単語「catch」を語義の意味で使用した用例1,2が、辞書データ12cに登録されていることを示している。
例えば、単語「catch」を動詞として使用した場合の語義1の用例としては、例えば「He caught it all on video tape」が登録され、単語「catch」を名詞として使用した場合の語義2の用例としては、例えば「There must be a catch somewhere」が登録されていることを示している。
次に、本実施形態における電子辞書10の動作について説明する。
図4及び図5は、本実施形態における電子辞書10による辞書制御処理を示すフローチャートである。
CPU11は、電源オンされると、辞書制御プログラム12aを起動して辞書制御処理を開始する。CPU11は、タッチパネル式表示部17に初期画面であるホーム画面を表示させる(ステップS1)。ホーム画面には、検索対象とする辞書を選択するためのメニューが含まれる。メニューでは、検索対象とする辞書を選択することができる。例えば、検索対象とする辞書として、全ての辞書を検索対象とする、特定の範囲の辞書(例えば、英語系辞書など)、あるいは特定の辞書(例えば、○○英和辞書など)を選択することができる。
CPU11は、メニューにおいて検索対象とする辞書が選択されると(ステップS2、YES)、検索ワード(単語)を入力するための入力エリアが設けられた検索ワード入力画面をタッチパネル式表示部17に表示させる(ステップS3)。
図6は、検索ワード入力画面D1の一例を示す図である。図6に示すように、検索ワード入力画面D1には、検索ワードとする文字列を入力するための入力エリアAR11、文章を入力するための文章入力エリアAR12、検索処理の実行を指示するための検索開始ボタンB1が設けられている。本実施形態における電子辞書10では、辞書に登録された見出し語(語義情報)を検索するために、検索ワード(単語)を入力するだけでなく、検索ワードが用いられた文章を入力することができる。
本実施形態の電子辞書10では、検索ワードだけでなく文章を入力することで、入力した文章と同じように検索ワード(単語)が用いられた用例に対応する語義を検索することができる。従って、1つの見出し語に多くの語義が設定されている場合であっても、用例をもとにユーザが必要とする語義の抽出し易くしている。なお、多くの語義を有しない検索ワードに対して辞書検索する場合には、一般的な辞書検索と同様にして、検索ワードのみを入力して検索を実行することもできる。
CPU11は、文字入力キー16aの操作により検索ワードとする文字列(単語)が入力され、[訳/決定]キー16cあるいは検索開始ボタンB1の操作により検索の実行が指示されると(ステップS4、YES)、文章入力エリアAR12への文章入力があるか判別する。ここで、検索ワードと共に文章が入力されていない場合(ステップS5、NO)、CPU11は、検索ワードをもとに、検索対象とする辞書の辞書データに対して検索処理を実行する(ステップS6)。すなわち、CPU11は、検索ワードに該当する見出し語を辞書データ12cから検索し、検索された見出し語に対応する語義情報を辞書データ12cから読み出して、タッチパネル式表示部17において表示させる。
一方、検索ワードと共に文章が入力されている場合(ステップS5、YES)、CPU11は、入力された文章が既に構文解析が実行済みであるかを判別する。例えば、電子辞書10では、文章入力エリアAR12に入力された文章について、後述する係り受け関係解析処理(構文解析)を実行した場合に、処理済みの文章と構文解析結果をメモリ12に記憶させておく。CPU11は、入力された文章が処理済みの文章に存在するかを判別し、存在しないと判別された場合には(ステップS16、NO)、入力された文章に対する係り受け関係解析処理(構文解析)を実行する(ステップS17)。一方、入力された文章について構文解析が実行済みである場合、CPU11は、実行済みの構文解析により記憶された構文解析結果を用いた辞書検索を実行する(ステップS18~)。
なお、前述した説明では、検索ワード入力画面D1において、検索ワードと文章を入力しているが、他の方法で辞書検索の対象とする検索ワードと文章を入力することができる。例えば、CPU11は、ホーム画面において文章表示が指示された場合(ステップS11、YES)、例えばメモリ12に記憶されたテキストデータに応じた文章を含む文章表示画面をタッチパネル式表示部17に表示させる。
図7は、文章表示画面D2の一例を示す図である。図7に示すように、文章表示画面D2には、文章が表示される文章表示エリアの他、検索処理の実行を指示するための検索開始ボタンB2が設けられている。
例えば、文章表示エリアの文章が表示された位置に対するタッチ操作(ペン先、あるいは指先による)を検出した場合、CPU11は、タッチ位置に表示された単語を特定し(ステップS13)、この単語を含む1文章のテキストデータを判別する(ステップS14)。例えば、図7において、単語「caught」W1に相当する位置がタッチされたものとする。CPU11は、タッチ位置に応じて単語「caught」を検出し、「caught」を含む1文章のテキストデータ「I caught the boy stealing fruit from our orchard.」を抽出する。CPU11は、タッチ操作により指定された単語「caught」を検索ワードとし、単語「caught」を含むテキストデータ「I caught the boy stealing fruit from our orchard.」を入力文章とする。これにより、表示された文章に対するタッチ操作のみにより、検索ワードと文章を簡単に入力して辞書検索を実行させることができる。
ここで、CPU11は、[訳/決定]キー16cあるいは検索開始ボタンB2の操作により検索の実行が指示されると(ステップS15、YES)、前述と同様にして、入力された文章が処理済みの文章に存在するかを判別し、存在しないと判別された場合には(ステップS16、NO)、入力された文章に対する係り受け関係解析処理(構文解析)を実行する(ステップS17)。一方、入力された文章について構文解析が実行済みである場合、CPU11は、実行済みの構文解析により記憶された構文解析結果を用いた辞書検索を実行する(ステップS18~)。
次に、図4に示すステップS17における係り受け関係解析処理(構文解析)について説明する。
図8(A)は、入力文章に対する構文解析により検出される係り受け関係(係り受け関係タグ)の一例を示す図である。図8(B)(C)は、用例(図3に示す)に対する構文解析により検出される係り受け関係(係り受け関係タグ)の一例を示す図である。なお、構文解析処理には、既存の方法が用いられるものとして詳細な説明を省略する。
構文解析処理では、文章中の検索ワードに対応する単語(入力単語)と、他の複数の単語の係り受け関係を検出する。係り受け関係は、文書中の入力単語より前にある他の単語(係り受け先単語)との関係と後にある他の単語(係り受け元単語)との関係があり、それぞれの関係を示す関係タグを求める。
例えば、図8(A)に示す文章では、入力単語「caught」に対して他の単語「I」が係り受け先単語となり関係タグ「nsubj」(主語名詞を示す)が求められる。また、入力単語「caught」に対して他の単語「stealing」が係り受け元単語となり関係タグ「xcomp」(補体を示す)が求められる。
また、係り受け関係解析処理では、入力単語から他の単語までの文章中における距離を特定する。1つの文章において、単語間の距離が短い場合には、単語間の関連度が高いと見なすことができる。例えば、図8(A)に示す入力単語「caught」から単語「I」までの距離は「-1」、単語「stealing」までの距離は「3」となる。
なお、前述したように、入力単語から他の単語までの単語数を単純にカウントして距離としても良いが、構文解析結果を利用して距離を特定することも可能である。例えば、構文解析処理を実行して、文章の句構造を表す構文木を作成し、構文木の枝の数を単語間の距離とする。これにより、単語間の係り受け関係に関係しない、例えば冠詞等の単語の有無により、単純な単語数のカウントでは距離の変動が生じるが、構文木の枝の数を距離とすることで、単語間の係り受け関係に対応する距離を特定することができる。
例えば、文章「I have a pen.」において、入力単語「have」と他の単語「pen」までの単語数は「2」となる。一方、テキスト「I have pens.」において、入力単語「have」から他の単語「pens」までの単語数は「1」となる。すなわち、単語の使われ方が同じ文章であるにもかかわらず、関連語候補が単数形「pen」か複数形「pens」かの違いにより冠詞の有無の違いが生じてしまう。従って、単純に単語までの単語数を距離とした場合、単語間の係り受け関係が同じであっても距離が変わってしまう。
図9は、構文解析処理により生成される構文木の一例を示す図である。図9(A)は、前述した文章「I have a pen.」に対応する構文木を示し、図9(B)は、前述した文章「I have pens.」の構文木を示す。
図9(A)に示すように、文章「I have a pen.」の入力単語「have」K2と他の単語「pen」T2の間の枝数は「5」となる。また、図9(B)に示すように、文章「I have pens.」の入力単語「have」K3と他の単語「pens」T3の間の枝数は「5」となる。すなわち、文章中の冠詞の有無に関係なく、同じ構造の文章では、入力単語と他の単語の係り受け関係が同じ入力単語と他の単語については同じ距離として特定できる。
こうして、入力単語を含む文章に対する構文解析を実行して、構文木の枝の数を単語間の距離とすることで、冠詞等の有無の違いによる文章の変動があったとしても単語間の位置関係(距離)を正しく特定することが可能となる。
次に、構文解析結果を用いた辞書検索について説明する。
CPU11は、検索ワードをもとに、検索対象とする辞書の辞書データに対して検索処理を実行する(ステップS18)。すなわち、CPU11は、検索ワードの単語の原形に該当する見出し語を辞書データ12cから検索し、検索された見出し語に対応する全ての語義情報の用例を抽出する(ステップS19)。
CPU11は、入力文章との類似度を判別する処理の対象とする、見出し語に対応する1用例を選択する(ステップS20)。ここで、処理対象とする用例がある場合(ステップS21、YES)、CPU11は、全ての用例についての処理が完了していないため、選択した用例についての処理に移行する。CPU11は、選択した用例に対して構文解析処理済みであるか判別する。すなわち、用例に対する「係り受け関係タグ距離セット」が係り受け関係タグ距離テーブル12dに登録されているかを判別する。
CPU11は、用例に対して構文解析処理済みでない場合(ステップS22、NO)、用例のテキストデータ(文章)を辞書データ12cから抽出して、係り受け関係解析処理(構文解析)を実行する(ステップS24)。
係り受け関係解析処理(構文解析)は、前述した入力された文章に対する係り受け関係解析処理(構文解析)(ステップS17)と同様にして実行される。例えば、図3に示す用例1「He caught it all on video tape」の場合には、図8(B)に示すように、見出し語「catch」に相当する単語と他の単語との係り受け関係と距離が判別される。同様にして、図3に示す用例2「There must be a catch somewhere」の場合には、図8(C)に示すように、係り受け関係と距離が判別される。
ここで、実行された構文解析の結果(「係り受け関係タグ距離セット」)については、見出し語の語義情報(用例)と対応づけて、係り受け関係タグ距離テーブル12dに追加記憶させておく。これにより、同じ用例が処理対象となった場合に、処理済みの「係り受け関係タグ距離セット」を利用して、構文解析処理を省くことができる。
このように、用例に対して構文解析処理済みでない場合には、その時点で係り受け関係解析処理を実行可能なので、例えば辞書データ12cに対して語義に対応する用例を追加可能な構成とした場合に、新たに追加された用例についても処理対象とすることができる。
一方、用例に対して構文解析処理済みである場合(ステップS22、YES)、CPU11は、用例に対応する構文解析結果(第2構文解析情報)を示す係り受け関係データ(「係り受け関係タグ距離セット」)を係り受け関係タグ距離テーブル12dから読み出し、入力された文章の構文解析結果(第1構文解析情報)との類似度の判別を行う。
図10は、係り受け関係タグ距離テーブル12dに登録される「係り受け関係タグ距離セット」の一例を示す図である。図10では、辞書データ12cに登録された1つの見出し語に対応する複数の語義,12,3…のそれぞれに対応する用例に「係り受け関係タグ距離セット」を示している。図10では、語義1,3については、1つの語義に対して複数の用例が設定され、語義2については、1つの用例が設定されている場合をそれぞれ示している。従って、語義1,3については、複数の用例のそれぞれに対する複数の「係り受け関係タグ距離セット」が登録される。
例えば、語義1には複数の用例1,2,3…があり、複数の用例1,2,3…と対応づけてそれぞれ「係り受け関係タグ距離セット」が記憶される。
語義1の用例1に対応する「係り受け関係タグ距離セット」には、用例1中の見出し語の単語と係り受け先単語との係り受け関係を示す関係タグ「advmod」「aux」「nsubj」「dobj」とそれぞれに対応する距離「-3」「-2」「-1」「1」、及び係り受け元単語との係り受け関係を示す関係タグ「root」と対応する距離「0」が含まれる。
このように、用例に対する構文解析結果(「係り受け関係タグ距離セット」)が予め係り受け関係タグ距離テーブル12dに登録されていれば、用例に対する係り受け関係解析処理を、検索ワードと文章データが入力される毎に実行する必要がないので、検索時間の短縮と精度向上を図ることができる。
CPU11は、処理対象とする用例についての「係り受け関係タグ距離セット」を取得すると、入力文章と用例の係り受け先関係タグと係り受け元関係タグのそれぞれについて、共通する関係タグ(共通関係タグ)を判別し、共通関係タグの合計を求める(ステップS25)。
図11には、共通関係タグの一例を示している。図11(A)は、入力文章に対応する係り受け先関係タグと係り受け元関係タグを示し、図11(B1)は図3に示す用例1、図11(C1)は図3に示す用例2のそれぞれに対応する係り受け先関係タグと係り受け元関係タグを示している。
図11(B2)に示すように、入力文章と用例1との係り受け先関係タグについては2個の関係タグ「nsubj」「dobj」が共通し、入力文章と用例1との係り受け元関係タグについては1個の「root」が共通し、それぞれ共通関係タグとして判別される。従って、用例1については、図12に示すように、共通関係タグの合計が「3」として求められる。
一方、図11(C2)に示すように、入力文章と用例2との係り受け先関係タグと係り受け元関係タグには共通関係タグが存在しない。すなわち、見出し語の単語が動詞として用いられた入力文章に対して、動詞の語義に対応する用例1では共通関係タグが存在するが、名詞の語義に対応する用例2では共通関係タグが存在しない。こうして、見出し語の語義に応じて用例の構文構造が異なることを利用し、共通関係タグに基づいて、類似度が高い用例1の優先度を高くし、用例2の優先度を低く(あるいは検索対象から除外)することができる。
次に、CPU11は、係り受け先関係タグの共通関係タグに対応する距離と、係り受け元関係タグの共通関係タグに対応する距離の差の合計をそれぞれ求め、係り受け先関係タグと係り受け元関係タグにそれぞれ対応する合計値を合計する(ステップS26)。
図13には、入力文章に対応する係り受け先関係タグと係り受け元関係タグのそれぞれに対応する距離を示し、図14は、図3に示す用例1に対応する係り受け先関係タグと係り受け元関係タグのそれぞれに対応する距離を示している。入力文章と用例1との共通関係タグは、前述したように、係り受け先関係タグについては関係タグ「nsubj」「dobj」が共通し、係り受け元関係タグについては「root」が共通する。
入力文章の共通関係タグ「nsubj」に対応する距離が「-1」、用例1の共通関係タグ「nsubj」に対応する距離が「-1」であるので、共通関係タグ「nsubj」についての距離の差は、「-1-(-1)=0」となる。同じく、共通関係タグ「dobj」ついての距離の差は、「2-1=1」となる。同じく、共通関係タグ「root」に対応する距離が「2-2=0」である。従って、図15に示すように、用例1についての係り受け先関係タグと係り受け元関係タグにそれぞれ対応する合計値は「1」となる。
CPU11は、共通関係タグの個数の合計と距離の合計とを、処理対象とする用例と対応づけてメモリ12に記憶させる(ステップS27)。
以下、同様にして、CPU11は、見出し語に対応する次に処理対象とする1用例を選択し(ステップS20)、前述した処理を実行して、共通関係タグの個数の合計と距離の合計を求め、用例と対応づけてメモリ12に記憶させる(ステップS21~S27)。
CPU11は、全ての用例についての処理が完了すると(ステップS21、NO)、入力文章に対する構文解析の結果(第1構文解析情報)と、各用例に対する構文解析により記憶された共通関係タグの個数の合計と距離の合計とを含む構文解析の結果(第2構文解析情報)との類似度を判別する処理を実行する(ステップS40)。
まず、CPU11は、共通関係タグの個数の合計が最も多い用例(語義)を選択する(ステップS28)。すなわち、構文解析情報の類似度が最も高い、入力文章と最も構文構造が一致する用例を特定する。
なお、共通関係タグの個数の合計が同じ用例が複数ある場合(ステップS29、YES)、CPU11は、共通関係タグの距離の合計が最も小さい用例を、類似が高いものと判別して選択する(ステップS30)。共通関係タグの距離の合計は、共通関係タグに該当する係り受け関係にある他の単語と見出し語に対応する単語との関連度がより高いほど小さくなる。よって、共通関係タグの距離の合計が最も小さい用例を選択することで、係り受け関係にある見出し語の単語と他の単語の使用形態が、入力文章とより近い用例を特定し易くなる。
入力文章と各用例との類似度が判別されると、CPU11は、類似の判別結果に基づいて、各用例または各用例に対応する語義に対して優先順位を決定して出力を制御する。すなわち、CPU11は、類似度が最も高い用例を最優先(上位)とし、その他の用例について、共通関係タグの個数の合計をもとに用例(語義)を降順にソートする(ステップS31)。すなわち、入力文章との類似度が高い順番に複数の用例を並べ替えて、優先順位を決定する。
また、共通関係タグの個数の合計が同じ用例が複数ある場合には、CPU11は、前述と同様にして、各用例の共通関係タグに対応する距離の合計をそれぞれ求め、距離の合計をもとに昇順にソートする(ステップS32)。これにより、用例中の見出し語の単語と他の単語との関連度(距離)に基づいて、優先順位を決定することができる。
CPU11は、共通関係タグに基づいて優先順位を決定した複数の用例に対応する語義情報(用例、または用例に対応する語義)を、優先順位に応じて配列し、タッチパネル式表示部17に表示させる(ステップS33)。なお、共通関係タグがない用例に対応する語義については、表示対象から外すようにしても良い。
このようにして、本実施形態における電子辞書10では、見出し語を指定する検索ワードとする文字列(単語)だけでなく、文字列(単語)を含む文章を入力することで、入力文章に近い用例が設定された語義情報を優先して検索結果として表示させることができる。すなわち、1つの見出し語に対して多数の語義が存在したとしても、入力文章と語義に対応する用例との構文解析結果の類似度をもとに優先順位が決定されているため、簡単にユーザが知りたい語義に効率的にたどり着くことが可能になる。
なお、前述した説明では、ユーザにより入力された文章及び用例について、電子辞書10において構文解析(係り受け関係解析処理)を実行するとしているが、ネットワークNを介して接続されたサーバ20(クラウド)に対して処理対象とするデータを送信して実行させるようにしても良い。
(変形例)
次に、入力文章に対する構文解析の結果(第1構文解析情報)と、各用例に対する構文解析の結果(第2構文解析情報)との類似度を判別する処理の変形例について説明する。前述した説明では、共通関係タグの個数の合計と距離の合計とをもとに類似度を判別しているが、変形例では、共通関係タグ(係り受け関係タグ)毎に重み値を求め、共通関係タグの重み値の合計をもとに類似度を判別する。
前述した、共通関係タグの個数の合計を用いる方法では、全ての種類の係り受け関係タグを等価に扱い、単純に1つの係り受け関係タグの個数を1にして合計している。しかし、見出し語、見出し語に含まれる語義によって、用例で使用される係り受け関係タグの出現頻度の傾向が異なる。すなわち、見出し語を用いた文章には、見出し語に応じて、発生しやすい係り受け関係タグと発生しにくい係り受け関係タグが存在する。そこで、見出し語毎に係り受け関係タグの出現頻度をもとにして、発生しやすい係り受け関係タグほど値が大きくなる重み値を用いることで、入力文章で発生しやすい係り受け関係タグと発生しにくい係り受け関係タグが同数であっても、発生しやすい係り受け関係タグの方を使用している語義を優先して表示できるようにして精度向上を図る。
以下、重み値の合計をもとに類似度を判別する処理を用いた辞書制御処理について説明する。なお、この辞書制御処理では、図4に示すステップS1~S19の処理と、図5に示すステップS20~S33に対応する図16に示すフローチャートの処理を実行するものとする。図16に示すフローチャートにおいて、図5に示すフローチャート同様の処理を実行する部分には同一の符号を付している。図4及び図5を用いた説明と共通する部分については説明を省略する。
共通関係タグの重み値の合計をもとに類似度を判別する場合には、係り受け関係タグ距離テーブル12dの全ての見出し語のそれぞれについて、見出し語に対応する各語義の用例で用いられる係り受け関係タグについて重み値を設定する。係り受け関係タグの重み値は、次のように計算される。
図17は、例えば見出し語「catch」に対応する各語義の用例で用いられる係り受け関係タグが登録された係り受けタグテーブルの一例を示している。
係り受けタグテーブルには、見出し語「catch」に対応する全ての用例で用いられる全ての係り受け関係タグが設定され、各係り受け関係タグの頻度が算出される。本実施形態では、同一見出し語内の全ての用例で用いられている係り受け関係タグの中で、最も高い頻度をfmaxとする。図17に示す例では、係り受け関係タグ「dobj」の頻度「17」が最も高いため、係り受け関係タグ「dobj」の頻度「17」をfmaxとする。そして、各係り受け関係タグの重み値は、それぞれの頻度をfmax(「17」)で割ったものとする。
図16に示すステップS20において、CPU11は、入力文章との類似度を判別する処理の対象とする、見出し語に対応する1用例を選択する。ここで、処理対象とする用例がある場合(ステップS21、YES)、CPU11は、全ての用例についての処理が完了していないため、選択した用例についての処理に移行する。
図5を用いた説明では、選択した用例に対して構文解析処理済みでない場合には、個々に係り受け関係解析処理(構文解析)を実行しているが、ここでは構文解析処理済みでない全ての用例について係り受け関係解析処理を実行して、その処理結果を係り受けタグテーブルに反映して、全ての係り受け関係タグの頻度、重み値を計算して設定するものとする。
CPU11は、処理対象とする用例についての「係り受け関係タグ距離セット」を取得すると、入力文章と用例の係り受け先関係タグと係り受け元関係タグのそれぞれについて、共通する関係タグ(共通関係タグ)を判別し、共通関係タグの重み値の合計を求める(ステップS45)。
図18には、前述した図11に示す例における共通関係タグと、各共通関係タグの重み値と、合計値を示している。すなわち、入力文章と用例1には2つの共通関係タグ「nsubj」「dobj」があり、共通関係タグ「nsubj」の重み値が「0.941176」、共通関係タグ「dobj」の重み値が「1」であることを示している。従って、用例1については、共通関係タグの重み値の合計が「1.941176」として求められる。
次に、CPU11は、係り受け先関係タグの共通関係タグに対応する距離と、係り受け元関係タグの共通関係タグに対応する距離の差の合計をそれぞれ求め、係り受け先関係タグと係り受け元関係タグにそれぞれ対応する合計値を合計する(ステップS26)。
CPU11は、共通関係タグの重み値の合計と距離の合計とを、処理対象とする用例と対応づけてメモリ12に記憶させる(ステップS47)。
以下、同様にして、CPU11は、見出し語に対応する次に処理対象とする1用例を選択し(ステップS20)、前述した処理を実行して、共通関係タグの重み値の合計と距離の合計を求め、用例と対応づけてメモリ12に記憶させる(ステップS21~S47)。
CPU11は、全ての用例についての処理が完了すると(ステップS21、NO)、入力文章に対する構文解析の結果(第1構文解析情報)と、各用例に対する構文解析により記憶された共通関係タグの重み値の合計と距離の合計とを含む構文解析の結果(第2構文解析情報)との類似度を判別する処理を実行する(ステップS40)。
まず、CPU11は、共通関係タグの重み値の合計が最も大きい用例(語義)を選択する(ステップS48)。すなわち、構文解析情報の類似度が最も高い、入力文章と最も構文構造が一致する用例を特定する。
なお、共通関係タグの重み値の合計が同じ用例が複数ある場合(ステップS29、YES)、CPU11は、共通関係タグの距離の合計が最も小さい用例を、類似が高いものと判別して選択する(ステップS30)。
入力文章と各用例との類似度が判別されると、CPU11は、類似の判別結果に基づいて、各用例または各用例に対応する語義に対して優先順位を決定して出力を制御する。すなわち、CPU11は、類似度が最も高い用例を最優先(上位)とし、その他の用例について、共通関係タグの重み値の合計をもとに用例(語義)を降順にソートする(ステップS51)。すなわち、入力文章との類似度が高い順番に複数の用例を並べ替えて、優先順位を決定する。
また、共通関係タグの重み値の合計が同じ用例が複数ある場合には、CPU11は、前述と同様にして、各用例の共通関係タグに対応する距離の合計をそれぞれ求め、距離の合計をもとに昇順にソートする(ステップS52)。これにより、用例中の見出し語の単語と他の単語との関連度(距離)に基づいて、優先順位を決定することができる。
CPU11は、共通関係タグに基づいて優先順位を決定した複数の用例に対応する語義情報(用例、または用例に対応する語義)を、優先順位に応じて配列し、タッチパネル式表示部17に表示させる(ステップS33)。なお、共通関係タグがない用例に対応する語義については、表示対象から外すようにしても良い。
このようにして、見出し語毎に係り受け関係タグの出現頻度をもとにして計算した、係り受け関係タグの重み値を用いることで、発生しやすい係り受け関係タグを使用している語義を優先して表示することができる。
なお、前述した説明では、各係り受け関係タグの重み値を、同一見出し語内の全ての用例で用いられている係り受け関係タグの中で最も高い頻度fmaxによって、各係り受け関係タグの頻度を割った値としているが、発生しやすい係り受け関係タグほど大きくなる値であれば他の方法で重み値を計算するようにしても良い。
また、図16を用いた説明では、共通関係タグの重み値の合計が同じ用例(語義)が複数ある場合に、共通関係タグの距離をもとに優先度を決定しているが、前述した共通関係タグの個数、距離、重み値を用いた判別を任意に組み合わせて実施することも可能である。
また、例えば共通関係タグの個数の合計が同じ場合に、さらに距離あるいは重み値の何れに基づいて優先度を判別するかを、ユーザが選択できるようにしても良い。
なお、前述した実施形態では、英語系の辞書を例にして説明しているが、他の言語系の辞書を対象として実施することが可能である。
また、実施形態において記載した手法、すなわちフローチャートに示す処理等の各手法は、コンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フレキシブルディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記録媒体に格納して配布することができる。そして、コンピュータは、外部記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されることにより、実施形態において説明した機能と同様の処理を実現することができる。
また、各手法を実現するためのプログラムのデータは、プログラムコードの形態としてネットワーク(インターネット)上を伝送させることができ、このネットワーク(インターネット)に接続されたコンピュータ(サーバ装置等)からプログラムデータを取り込み、前述した実施形態と同様の機能を実現することもできる。
なお、本願発明は、実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]単語と、前記単語を含む文章データとが指定された場合に、
前記単語を含む複数の用例を辞書データに基づいて特定し、
前記特定された複数の用例それぞれの構文と、前記文章データの構文とを比較し、
前記構文の比較結果に基づいて、前記複数の用例に係る情報の出力を制御する制御部を有する検索装置。
[2]前記制御部は、
前記文章データに対する構文解析の結果を示す第1構文解析情報を取得し、
前記特定された各用例に対する構文解析の結果を示す第2構文解析情報を取得し、
前記第1構文解析情報と各用例に対応する前記第2構文解析情報との類似度を判別し、
前記類似度の判別結果に基づいて、前記複数の用例に係る情報の出力を制御する請求項1記載の検索装置。
[3]前記辞書データには、1つの単語に対応する複数の語義と、前記複数の語義それぞれに対応する、前記1つの単語を含む用例が記憶されており、
前記制御部は、前記構文の比較結果に基づいて、前記特定された各用例、または前記特定された各用例に対応する語義の出力を制御する請求項1記載の検索装置。
[4]前記構文の比較は、前記用例および前記文章データそれぞれの文における、前記単語に対する他の複数の単語の係り受け関係を示す係り受け種類の比較である請求項1記載の検索装置。
[5]前記構文の比較結果は、前記単語に対する他の複数の単語の係り受け関係を示す複数の係り受け種類の一致度である請求項4記載の検索装置。
[6]前記構文の比較結果は、複数の係り受け種類のうちの共通する係り受け種類の数である請求項5記載の検索装置。
[7]前記構文の比較結果は、複数の係り受け種類のうちの共通する係り受け種類における単語間の距離である請求項6記載の検索装置。
[8]前記構文の比較結果は、共通する係り受け種類の数の計算において、係り受け種類の数に応じた重みを加味した計算を行う請求項6記載の検索装置。
[9]複数の係り受け種類のうちの最も高い頻度に対する各係り受け種類の頻度の割合を重みとする請求項8記載の検索装置。
[10]コンピュータを、
単語と、前記単語を含む文章データとが指定された場合に、
前記単語を含む複数の用例を辞書データに基づいて特定し、
前記特定された複数の用例それぞれの構文と、前記文章データの構文とを比較し、
前記構文の比較結果に基づいて、前記複数の用例に係る情報の出力を制御する制御部として機能させるための検索プログラム。
[11]検索装置が、
単語と、前記単語を含む文章データとが指定された場合に、
前記単語を含む複数の用例を辞書データに基づいて特定し、
前記特定された複数の用例それぞれの構文と、前記文章データの構文とを比較し、
前記構文の比較結果に基づいて、前記複数の用例に係る情報の出力を制御する検索方法。