(57)【特許請求の範囲】
【請求項１】
複数の素性値から新たな素性値を算出する演算式の登録を受け付ける受付手段と、
前記受付手段により受け付けた演算式、および同義語と見なせる文字列が意味の近さを示す情報と共に記憶された学習用データを記憶する記憶手段と、
前記学習用データに基づき、文字列を意味の近い順に判定可能な前記複数の素性値および前記新たな素性値に対する重み付けを学習する学習手段と、
検索が要求されたクエリから検索された複数の同義語の候補について、それぞれ同義語の候補の前記複数の素性値から前記演算式により新たな素性値を算出する算出手段と、
前記複数の素性値および前記新たな素性値を前記学習手段により学習した重み付けで演算した演算結果に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定手段と、
を有することを特徴とする同義語推定装置。
【請求項２】
前記特定手段は、前記複数の素性値および前記新たな素性値に基づき、前記複数の同義語の候補について、前記クエリに意味が近い順序を特定する
ことを特徴とする請求項１記載の同義語推定装置。
【請求項３】
コンピュータが実行する同義語推定方法であって、
複数の素性値から新たな素性値を算出する演算式の登録を受け付ける受付工程と、
前記受付工程により受け付けた演算式を記憶手段に記憶する記憶工程と、
前記記憶手段に同義語と見なせる文字列が意味の近さを示す情報と共に記憶された学習用データに基づき、文字列を意味の近い順に判定可能な前記複数の素性値および前記新たな素性値に対する重み付けを学習する学習工程と、
検索が要求されたクエリから検索された複数の同義語の候補について、それぞれ同義語の候補の前記複数の素性値から前記演算式により新たな素性値を算出する算出工程と、
前記複数の素性値および前記新たな素性値を前記学習工程により学習した重み付けで演算した演算結果に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定工程と、
を有することを特徴とする同義語推定方法。
【請求項４】
複数の素性値から新たな素性値を算出する演算式の登録を受け付ける受付手順と、
前記受付手順により受け付けた演算式を記憶手段に記憶する記憶手順と、
前記記憶手段に同義語と見なせる文字列が意味の近さを示す情報と共に記憶された学習用データに基づき、文字列を意味の近い順に判定可能な前記複数の素性値および前記新たな素性値に対する重み付けを学習する学習手順と、
検索が要求されたクエリから検索された複数の同義語の候補について、それぞれ同義語の候補の前記複数の素性値から前記演算式により新たな素性値を算出する算出手順と、
前記複数の素性値および前記新たな素性値を前記学習手順により学習した重み付けで演算した演算結果に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定手順と、
をコンピュータに実行させることを特徴とする同義語推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同義語推定装置、同義語推定方法および同義語推定プログラムに関する。
【背景技術】
【０００２】
従来のＷｅｂページ検索では、ユーザによりクエリが入力されると、Ｗｅｂページ上の検索エンジンによってクエリで検索が行われ、複数のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を含む検索結果がユーザに提示される。
【０００３】
ところで、クエリは、構成要素は非類似であるが、当該クエリと意味が類似する同義語が存在する場合がある。そして、入力されたクエリで検索した場合と、クエリの同義語で検索した場合とで、検索結果が異なる場合がある。例えば、Ａを検索した場合、検索結果が２００００件であり、Ａの同義語であるＡ’を検索した場合、検索結果が３０００件となり、検索結果が異なる場合がある。
【０００４】
システムがＡとＡ’を同疑義と理解できれば予め２つのクエリのＯＲ検索を行うことにより、損失機会を回避できる。
【０００５】
そこで、クエリの同義語を抽出する次のような従来技術が知られている。例えば、検索クリックスルーログを用いたラベル伝播により、入力されたクエリの同義語を検索する従来技術が知られている（例えば、特許文献１）。また、機械翻訳において、異なる言語の単語からそれぞれ素性の組を抽出して異なる言語の単語を対応付ける従来技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−７９０２９号公報
【特許文献２】特開２０１０−１９８４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術は、検索が要求されたクエリの同義語を特定できない場合がある。
【０００８】
本願は、上記に鑑みてなされたものであって、検索が要求されたクエリに近い同義語をより精度良く特定できる同義語推定装置、同義語推定方法および同義語推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願に係る同義語推定装置は、複数の素性値から新たな素性値を算出する演算式の登録を受け付ける受付手段と、前記受付手段により受け付けた演算式、および同義語と見なせる文字列が意味の近さを示す情報と共に記憶された学習用データを記憶する記憶手段と、前記学習用データに基づき、文字列を意味の近い順に判定可能な前記複数の素性値および前記新たな素性値に対する重み付けを学習する学習手段と、検索が要求されたクエリから検索された複数の同義語の候補について、それぞれ同義語の候補の前記複数の素性値から前記演算式により新たな素性値を算出する算出手段と、前記複数の素性値および前記新たな素性値を前記学習手段により学習した重み付けで演算した演算結果に基づき、前記複数の同義語の候補から前記クエリに意味が近い同義語を特定する特定手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本願に係る同義語推定装置、同義語推定方法および同義語推定プログラムは、検索が要求されたクエリに近い同義語をより精度良く特定できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係る同義語検索処理を説明する図である。
【図２】図２は、素性の一例を説明する図である。
【図３】図３は、新たな素性値の一例を示す図である。
【図４】図４は、同義語の候補Ａ、Ｂを素性Ｘ、Ｙのグラフで示した図である。
【図５】図５は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｘ、Ｙのグラフで示した図である。
【図６】図６は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｚのグラフで示した図である。
【図７】図７は、同義語推定装置の機能的な構成の一例を示す図である。
【図８】図８は、素性データのデータ構成の一例を示す図である。
【図９】図９は、テンプレートデータのデータ構成の一例を示す図である。
【図１０】図１０は、拡張素性データのデータ構成の一例を示す図である。
【図１１】図１１は、学習処理の手順を示すフローチャートである。
【図１２】図１２は、同義語特定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明に係る同義語推定装置、同義語推定方法および同義語推定プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１３】
［１．同義語検索処理］
まず、実施形態に係る同義語推定装置が行う同義語検索処理について説明する。図１は、実施形態に係る同義語検索処理を説明する図である。なお、図１の例は、入力されたクエリの同義語を特定し、クエリに最も近い同義語をサジェスチョンクエリとしてユーザに提示する場合を示している。
【００１４】
同義語推定装置は、ユーザにより検索対象のクエリが入力される。同義語推定装置は、入力されたクエリの同義語の候補を複数検索する。そして、同義語推定装置は、検索された複数の同義語の候補をそれぞれ訂正候補として、入力されたクエリに類似する順にランキングし、最上位の訂正候補をサジェスチョンクエリとしてユーザに提示する。
【００１５】
同義語推定装置は、訂正候補を類似する順にランキングする際、クエリと各訂正候補との関連度を計算するため、各訂正候補とされた同義語の候補について素性を抽出する。図２は、素性の一例を説明する図である。図２の例では、同義語の候補をラベル伝播により検索した場合、ラベル伝播での検索の際のスコアを素性として抽出する。また、図２の例では、言語モデルを用いて計算した確立やＴｅｘｔＲａｎｋなどにより、訂正候補のクエリらしさを素性として抽出する。また、図２の例では、訂正候補の文字列の長さを素性として抽出する。また、図２の例では、クエリと訂正候補が一致しているか否かを素性として抽出する。また、図２の例では、クエリと訂正候補がＡｃｒｏｎｙｍの関係にあるか否かを素性として抽出する。Ａｃｒｏｎｙｍとは、「日本放送協会（Ｎｉｈｏｎ  Ｈｏｕｓｏｕ  Ｋｙｏｋａｉ）」を「ＮＨＫ」と省略するなど、名称の各単語の先頭部分のみで省略したものである。また、図２の例では、クエリと訂正候補の編集距離を素性として抽出する。なお、素性は、これらに限定されず、その他の素性であってもよい。
【００１６】
同義語推定装置は、検索された同義語の候補についてそれぞれ各素性を抽出し、同義語毎に、当該同義語の各素性の素性値を要素とした素性ベクトルを求める。そして、同義語推定装置は、この素性ベクトルに基づいて、同義語の候補のランキングを行う。
【００１７】
ところで、検索された同義語の候補は、抽出された素性では手がかりが少なく、クエリとの類似度合いに応じて同義語の候補を十分に分類できない場合がある。このように同義語の候補を十分に分類できない場合、入力されたクエリに近い同義語を精度良く特定できない。
【００１８】
そこで、本実施形態に係る同義語推定装置では、同義語の候補毎に、複数の素性の素性値を組み合わせて演算し、新たな素性値を求める。図３は、新たな素性値の一例を示す図である。図３の例は、素性値Ｘ＿１、Ｘ＿２、Ｘ＿３を加算して新たな素性値Ｘ’＿１を求めている。また、図３の例は、素性値Ｘ＿１、Ｘ＿２、Ｘ＿３を乗算して新たな素性値Ｘ’＿２を求めている。この新たな素性値を演算する演算式は、例えば、管理者により登録される。同義語推定装置は、この新たな素性値も用いて入力されたクエリに意味が近い同義語の特定を行う。
【００１９】
ここで、新たな素性値を算出する効果について説明する。なお、ここでは、説明を簡略化するため、素性をＸ、Ｙの２つの場合で説明する。例えば、同義語の候補Ａは、素性Ｘが「１」であり、素性Ｙが「０」であり、クエリに類似する同義語であるものとする。また、同義語の候補Ｂは、素性Ｘが「０」であり、素性Ｙが「１」であり、クエリに非類似の同義語であるものとする。図４は、同義語の候補Ａ、Ｂを素性Ｘ、Ｙのグラフで示した図である。この場合、例えば、素性Ｘが「１」であれば類似し、素性Ｙが「１」であれば非類似と判別することにより、同義語の候補がクエリに類似するか否か判別できる。
【００２０】
一方、例えば、同義語の候補Ａは、素性Ｘが「１」であり、素性Ｙが「１」であり、クエリに類似する同義語であるものとする。また、同義語の候補Ｂは、素性Ｘが「−１」であり、素性Ｙが「１」であり、クエリに非類似の同義語であるものとする。また、同義語の候補Ｃは、素性Ｘが「−１」であり、素性Ｙが「−１」であり、クエリに類似する同義語であるものとする。また、同義語の候補Ｄは、素性Ｘが「１」であり、素性Ｙが「−１」であり、クエリに非類似の同義語であるものとする。図５は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｘ、Ｙのグラフで示した図である。この場合、素性Ｘの素性値は、クエリに類似する同義語の候補Ａとクエリに非類似の同義語の候補Ｄで共に「１」であり、クエリに非類似の同義語の候補Ｂとクエリに類似する同義語の候補Ｃで共に「−１」である。また、素性Ｙの素性値は、クエリに類似する同義語の候補Ａとクエリに非類似の同義語の候補Ｂで共に「１」であり、クエリに類似する同義語の候補Ｃとクエリに非類似の同義語の候補Ｄで共に「−１」である。よって、素性Ｘ、Ｙの素性値から、同義語の候補がクエリに類似するか否か判別できない。
【００２１】
そこで、例えば、同義語の候補Ａ〜Ｄについて、それぞれ素性Ｘの素性値と素性Ｙの素性値を乗算して新たに素性Ｚの素性値を算出する。この場合、同義語の候補Ａは、素性Ｘが「１」であり、素性Ｙが「１」であるため、素性Ｚが「１」となる。同義語の候補Ｂは、素性Ｘが「−１」であり、素性Ｙが「１」であるため、素性Ｚが「−１」となる。同義語の候補Ｃは、素性Ｘが「−１」であり、素性Ｙが「−１」であるため、素性Ｚが「１」となる。同義語の候補Ｄは、素性Ｘが「１」であり、素性Ｙが「−１」であるため、素性Ｚが「−１」となる。図６は、同義語の候補Ａ、Ｂ、Ｃ、Ｄを素性Ｚのグラフで示した図である。この新しい素性Ｚでは、クエリに類似する同義語の候補Ａ、Ｃと、クエリに非類似の同義語の候補Ｂ、Ｄの値が分かれる。よって、例えば、素性Ｚが「１」であれば類似し、素性Ｚが「−１」であれば非類似と判別することにより、同義語の候補がクエリに類似するか否か判別できる。このように、新たな素性を求めることにより、判別できなかった特性を判別できるようになるため、判別できなかった同義語が特定できるようになる。
【００２２】
［２．同義語推定装置の構成］
以下、本実施形態に係る同義語推定装置１０についてさらに詳細に説明する。図７は、同義語推定装置の機能的な構成の一例を示す図である。図７に示すように、同義語推定装置１０は、通信Ｉ／Ｆ（インタフェース）部２０と、記憶部２１と、制御部２２とを有する。
【００２３】
通信Ｉ／Ｆ部２０は、ＮＩＣ（Network  Interface  Card）等のインタフェースである。通信Ｉ／Ｆ部２０は、ネットワーク１１を介した他の装置との間で各種のデータを送受信する。このネットワーク１１には、他の装置、例えば、ユーザが操作するクライアント端末１２や、管理者が操作する管理端末１３が通信可能に接続される。
【００２４】
クライアント端末１２は、ユーザによって利用される情報処理装置である。例えば、クライアント端末１２は、デスクトップ型ＰＣ（Personal  Computer）、タブレット型ＰＣ、ノート型ＰＣ、携帯電話機、ＰＤＡ（Personal  Digital  Assistant）等である。
【００２５】
クライアント端末１２は、同義語推定装置１０によって提供されるウェブページを受信し、受信したウェブページを所定の表示部（ディスプレイ）に表示する。かかるウェブページには、検索対象とする文字列を入力可能な入力領域が設けられている。検索を行う場合、ユーザは、クライアント端末１２を操作して表示部に表示されたウェブページの入力領域に検索対象とする文字列を入力し、検索実行を指示する。クライアント端末１２は、検索実行を指示されると、ウェブページの入力領域に入力された文字列をクエリとして同義語推定装置１０へ出力する。
【００２６】
管理端末１３は、管理者が同義語推定装置１０を管理する際に利用する情報処理装置である。例えば、管理端末１３は、デスクトップ型ＰＣ、タブレット型ＰＣ、ノート型ＰＣ等である。管理者は、管理端末１３を操作して同義語推定装置１０を運用、管理するための各種データの登録や各種の指示を行う。例えば、管理者は、学習用データの登録を行う。また、管理者は、同義語の特定に有効な重み付け条件の学習指示を行う。
【００２７】
通信Ｉ／Ｆ部２０は、ネットワーク１１を介してクライアント端末１２からクエリを受信する。また、通信Ｉ／Ｆ部２０は、ネットワーク１１を介して管理端末１３から登録する各種データや各種の指示を受信する。
【００２８】
記憶部２１は、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部２１は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory）、フラッシュメモリなどの半導体メモリ素子であってもよい。
【００２９】
記憶部２１は、制御部２２で実行されるＯＳ（Operating  System）や同義語の検索に用いる各種プログラムを記憶する。さらに、記憶部２１は、制御部２２で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２１は、素性データ３０と、テンプレートデータ３１と、拡張素性データ３２と、学習用データ３３と、学習用素性データ３４と、学習用拡張素性データ３５と、重み付け条件データ３６とを記憶する。
【００３０】
素性データ３０は、検索された同義語の候補毎に、素性値を記憶したデータである。素性データ３０は、後述する導出部４３により生成される。図８は、素性データのデータ構成の一例を示す図である。本実施形態に係る素性データ３０は、同義語の候補毎にレコードを分けて、各素性の素性値が所定の素性順にタブ区切りでフィールドを分けて記憶されている。図８に示すように、素性データ３０は、フィールド３４Ａ〜３４Ｄが設けられている。先頭のフィールド３４Ａは、同義語が学習用データ３３に登録されたものであるか否かを示すラベルを記憶する領域である。先頭のフィールド３４Ａには、同義語が学習用データ３３に登録されたものである場合「１」が格納され、学習用データ３３に登録されたものではない場合「０」が格納される。フィールド３４Ｂ以降は、素性値を記憶する領域である。図８の例は、各同義語の候補の素性値を３つとした場合を示しており、フィールド３４Ｂ〜３４Ｄには各素性の素性値が格納されている。なお、素性値は実数とする。すなわち、素性値としては、マイナスや少数点以下の数値も用いることができる。このように素性値を実数とすることにより、単純にある特性の有無だけではなく、特性を詳細に保持できる。素性値を記憶する各フィールドは、０から順に位置を示す番号が対応付けられ、後述するテンプレートデータ３１において、番号により素性値が指定される。図８の例では、フィールド３４Ｂ以降のフィールドに順に０から順に位置を示す番号が示されている。
【００３１】
テンプレートデータ３１は、データ変換の定義が記述されたデータである。テンプレートデータ３１は、管理者等により登録される。本実施形態では、テンプレートデータ３１により、素性データ３０が拡張素性データ３２に変換され、学習用素性データ３４が学習用拡張素性データ３５に変換される。図９は、テンプレートデータのデータ構成の一例を示す図である。テンプレートデータ３１には、所定の記述方式を用いて、素性データ３０に対する処理が記述される。本実施形態では、素性データ３０の先頭から処理対象のレコードを１つずつずらして、それぞれテンプレートデータ３１の各レコードに記述された処理を行う。そして、テンプレートデータ３１の各レコードに記述された処理の処理結果を順に拡張素性データ３２の１つのレコードにフィールドを分けて格納する。各レコードに記述された「Ｔ０１」〜「Ｔ１０」は、それぞれを識別する識別子を表しており、「：」以降に処理が定義される。本実施形態に係るテンプレートデータ３１は、「％ｘ［数１，数２］」との記述により処理対象とする素性値を示しており、現在処理対象とされたカレントレコードを基準として、処理対象の素性値を含むレコードの位置を「数１」に記述し、レコード内での処理対象の素性値の位置を示す番号を「数２」に記述する。例えば、カレントレコードの２番目の素性値を処理対象と指定する場合は、「％ｘ［０，２］」と記述する。
【００３２】
図９の例では、識別子「Ｔ０１」のレコードの「％ｘ［０，０］」は、カレントレコードの０番目の素性値をそのまま格納することを示す。また、本実施形態に係るテンプレートデータ３１は、演算子や関数を用いて様々な演算式も記述することが可能とされている。例えば、識別子「Ｔ０４」のレコードの「％ｘ［０，０］＊％ｘ［０，１］」は、カレントレコードの０番目の素性値と１番目の素性値を乗算することを示す。また、識別子「Ｔ０７」のレコードの「％ｘ［．，０］」は、素性データ３０の０番目の素性値を全て処理対象とすることを示し、「ＳＵＭ（）」は、処理対象の総和を求めることを示す。よって、識別子「Ｔ０７」のレコードの「％ｘ［０，０］／ＳＵＭ（％ｘ［．，０］）」は、カレントレコードの０番目の素性値を、０番目の素性値の総和で減算することを示す。すなわち、識別子「Ｔ０７」のレコードは、０番目のフィールドの素性値の割合を求める。また、識別子「Ｔ１０」のレコードの「％ｘ［０，．］」は、カレントレコードの全素性値を全て処理対象とすることを示す。よって、識別子「Ｔ１０」のレコードの「ＳＵＭ（％ｘ［０，．］）」は、カレントレコードの全フィールドの素性値の総和を求めることを示す。すなわち、識別子「Ｔ１０」のレコードは、カレントレコードの素性値の総和を求めている。
【００３３】
拡張素性データ３２は、素性データ３０に対してテンプレートデータ３１に定義された演算を行った結果を記憶したデータである。拡張素性データ３２は、後述する算出部４４により生成される。図１０は、拡張素性データのデータ構成の一例を示す図である。本実施形態に係る拡張素性データ３２は、テンプレートデータ３１の各レコードに記述された処理の実行結果がタブ区切りでフィールドを分けて記憶されている。図１０の例では、それぞれのフィールドに、識別子と共に「：：」で区切って処理の実行結果が格納されている。
【００３４】
学習用データ３３は、同義語と見なせる文字列が意味の近さを示す情報と共に記憶されたデータである。例えば、学習用データ３３は、同義語と見なせる各文字列が意味の近さを示すスコアと共に記憶されている。このスコアは、管理者等により値が定められる。学習用データ３３は、管理者等により登録される。
【００３５】
学習用素性データ３４は、学習用データ３３に記憶された各文字列の素性値を記憶したデータである。本実施形態では、学習用素性データ３４を素性データ３０と同様のデータ構成する。学習用素性データ３４は、後述する学習部４１により生成される。
【００３６】
学習用拡張素性データ３５は、学習用素性データ３４に対してテンプレートデータ３１に定義された演算を行った結果を記憶したデータである。本実施形態では、学習用拡張素性データ３５を拡張素性データ３２と同様のデータ構成する。学習用拡張素性データ３５は、後述する学習部４１により生成される。
【００３７】
図７に戻り、制御部２２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。また、制御部２２は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、図示しない内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。
【００３８】
制御部２２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部２２は、受付部４０と、学習部４１と、検索部４２と、導出部４３と、算出部４４と、特定部４５と、送信部４６とを有する。
【００３９】
受付部４０は、管理端末１３から各種のデータや各種の指示を受け付ける。例えば、受付部４０は、管理端末１３から学習用データを受け付けた場合、学習用データ３３に登録する。また、受付部４０は、管理端末１３から学習指示を受け付けた場合、学習部４１に対して学習モードでの動作を指示する。また、受付部４０は、複数の素性値から新たな素性値を算出する演算式の登録を受け付ける。受付部４０は、例えば、管理者が操作する管理端末１３に所定の受付画面を表示させ、受付画面から所定の記述方式での演算式など素性データ３０に対する各種の処理の定義を受け付けており、受け付けた定義を記憶部２１のテンプレートデータ３１に登録する。なお、受付部４０は、管理端末１３から編集されたテンプレートデータ３１を受け付けて、記憶部２１に登録してもよい。
【００４０】
学習部４１は、学習モードでの動作が指示された場合、学習用データ３３に基づき、学習用データ３３に記憶された各文字列を意味の近い順に判定可能な複数の素性値および新たな素性値の重み付けを学習する。最初に、学習部４１は、学習用データ３３に記憶された各文字列ついてそれぞれ素性値を導出する。例えば、学習部４１は、各文字列ついてそれぞれ、図２に示した各素性の素性値を実数で導出する。なお、学習用データ３３に各文字列の素性値が記憶されている場合は、素性値を導出する必要はない。そして、学習部４１は、各文字列毎に別なレコードで、所定の素性順に各素性の実数の素性値をタブ区切りで区切って、学習用データ３３の各文字列についての学習用素性データ３４を生成する。そして、学習部４１は、学習用素性データ３４の各レコードについて、先頭から処理対象のレコードを１つずつずらして、それぞれテンプレートデータ３１の各レコードに記述された処理を行い、処理結果のデータから学習用拡張素性データ３５を生成する。この学習用拡張素性データ３５には、テンプレートデータ３１に登録された演算式が行われた結果、実数の新たな素性値が含まれる。そして、学習部４１は、学習用拡張素性データ３５に記憶された、学習用データ３３の各文字列の各素性値および新たな素性値をそれぞれ素性ベクトルとして、例えば、ListNetなど所定の手法によるリストワイズ学習を行い、各素性値および新たな素性値を重み付け演算した結果が学習用データ３３の各文字列のスコアにより近くなるように重み値を算出する。学習部４１は、算出した各素性値および新たな素性値の重み値を重み付け条件データ３６として記憶部２１に登録する。
【００４１】
検索部４２は、クライアント端末１２からクリエが入力した場合、入力されたクエリの同義語の候補を複数検索する。この検索方式は、同義語の候補を検索可能であれば、何れであってもよい。本実施形態では、例えば、ラベル伝播を用いて同義語の候補を複数検索する。
【００４２】
導出部４３は、検索された複数の同義語の候補についてそれぞれ素性値を実数として導出する。例えば、導出部４３は、検索された複数の同義語の候補についてそれぞれ、図２に示した各素性の実数の素性値を導出する。そして、導出部４３は、同義語の候補毎にそれぞれ導出した各素性の実数の素性値を、同義語の候補毎に別なレコードで、所定の素性順に各素性の素性値をタブ区切りで区切った素性データ３０を生成する。
【００４３】
算出部４４は、生成された素性データ３０について、先頭から処理対象のレコードを１つずつずらして、それぞれテンプレートデータ３１の各レコードに記述された処理を行い、処理結果のデータを記憶した拡張素性データ３２を生成する。例えば、テンプレートデータ３１が図９に示すデータである場合、算出部４４は、識別子「Ｔ０１」〜「Ｔ０３」のレコードについてはカレントレコードの０番目〜２番目の素性値をそのまま拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ０４」のレコードについてはカレントレコードの０番目と１番目の素性値を乗算して拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ０５」のレコードについてはカレントレコードの１番目と２番目の素性値を乗算して拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ０６」のレコードについてはカレントレコードの０番目と２番目の素性値を乗算して拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ０７」のレコードについてはカレントレコードの０番目の素性値を、０番目の素性値の総和で減算した値の符号をマイナスにして拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ０８」のレコードについてはカレントレコードの１番目の素性値を、１番目の素性値の総和で減算した値の符号をマイナスにして拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ０９」のレコードについてはカレントレコードの２番目の素性値を、２番目の素性値の総和で減算した値の符号をマイナスにして拡張素性データ３２に格納する。また、算出部４４は、識別子「Ｔ１０」のレコードについてはカレントレコードの全素性値の総和を拡張素性データ３２に格納する。
【００４４】
特定部４５は、検索された複数の同義語の候補から入力されたクエリに意味が近い同義語を特定する。例えば、特定部４５は、拡張素性データ３２に格納された複数の素性値および新たな素性値に対してそれぞれ重み付け条件データ３６に記憶された重み付けで重み付け演算を行い、演算結果の値が大きい順に同義語の候補をランキングし、クエリに意味が近い順序を特定する。
【００４５】
送信部４６は、最も上位にランキングされた同義語をサジェスチョンクエリとして、クライアント端末１２に送信する。これにより、クライアント端末１２では、検索を指示したクエリに近い同義語がサジェスチョンクエリとして表示される。
【００４６】
［３．作用（同義語推定装置の動作）］
次に、本実施例に係る同義語推定装置１０の作用について説明する。まず、本実施例に係る同義語推定装置１０が各素性値に対する有効な重み付けを学習する学習処理の流れを説明する。図１１は、学習処理の手順を示すフローチャートである。この学習処理は、所定のタイミング、例えば、管理端末１３からテンプレートデータ３１が登録された後に学習指示を受け付けたタイミングで実行される。
【００４７】
図１１に示すように、学習部４１は、学習用データ３３に記憶された各文字列ついてそれぞれ素性値を導出し、導出した各素性の素性値を記憶した学習用素性データ３４を生成する（ステップＳ１０）。そして、学習部４１は、学習用素性データ３４の各レコードについて、それぞれテンプレートデータ３１の各レコードに記述された処理を行い、学習用拡張素性データ３５を生成する（ステップＳ１１）。このステップＳ１１の処理により、テンプレートデータ３１に記憶された演算式による素性値の演算が行われて、新たな素性値が算出される。
【００４８】
そして、学習部４１は、学習用拡張素性データ３５を用いてリストワイズ学習を行い、学習用データ３３の各文字列を意味の近い順に判定可能な各素性値および新たな素性値の重み値を算出する（ステップＳ１２）。学習部４１は、算出した各素性値および新たな素性値の重み値を重み付け条件データ３６として記憶部２１に登録し（ステップＳ１３）、処理を終了する。
【００４９】
次に、本実施例に係る同義語推定装置１０が同義語を特定する同義語特定処理の流れを説明する。図１２は、同義語特定処理の手順を示すフローチャートである。この同義語特定処理は、所定のタイミング、例えば、クライアント端末１２からクエリが入力されたタイミングで実行される。
【００５０】
図１２に示すように、検索部４２は、入力されたクエリの同義語の候補を複数検索する（ステップＳ２０）。導出部４３は、検索された複数の同義語の候補についてそれぞれ素性値を導出し、導出した各素性の素性値を記憶した素性データ３０を生成する（ステップＳ２１）。
【００５１】
算出部４４は、生成した素性データ３０を各レコードについて、先頭から処理対象のレコードを１つずつずらして、それぞれテンプレートデータ３１の各レコードに記述された処理を行い、処理結果のデータを記憶した拡張素性データ３２を生成する（ステップＳ２２）。このステップＳ２２の処理により、テンプレートデータ３１に記憶された演算式による素性値の演算が行われて、新たな素性値が算出される。
【００５２】
特定部４５は、拡張素性データ３２に格納された複数の素性値および新たな素性値に対してそれぞれ重み付け条件データ３６に記憶された重み付けで重み付け演算を行い、演算結果の値が大きい順に同義語の候補をランキングし、同義語の候補から入力されたクエリに意味が近い同義語を特定する（ステップＳ２３）。送信部４６は、最も上位にランキングされた同義語をサジェスチョンクエリとして、クライアント端末１２に送信し（ステップＳ２４）、処理を終了する。
【００５３】
［４．効果］
このように、同義語推定装置１０は、受付部４０（受付手段の一例に相当）により、複数の素性値から新たな素性値を算出する演算式の登録を受け付ける。そして、同義語推定装置１０は、受け付けた演算式、および同義語と見なせる文字列が意味の近さを示す情報と共に記憶された学習用データを記憶部２１（記憶手段の一例に相当）に記憶する。同義語推定装置１０は、学習部４１（学習手段の一例に相当）により、学習用データに基づき、文字列を意味の近い順に判定可能な複数の素性値および新たな素性値に対する重み付けを学習する。また、同義語推定装置１０は、算出部４４（算出手段の一例に相当）により、検索が要求されたクエリから検索された複数の同義語の候補について、それぞれ同義語の候補の複数の素性値から演算式により新たな素性値を算出する。そして、同義語推定装置１０は、特定部４５（特定手段の一例に相当）により、複数の素性値および新たな素性値を学習手段により学習した重み付けで演算した演算結果に基づき、複数の同義語の候補からクエリに意味が近い同義語を特定する。これにより、同義語推定装置１０は、新たな素性値も加味して同義語を特定するため、検索が要求されたクエリに近い同義語をより精度良く特定できる。
【００５４】
また、同義語推定装置１０は、特定部４５が、複数の素性の素性値および新たな素性値に基づき、複数の同義語の候補について、入力されたクエリに意味が近い順序を特定する。これにより、同義語推定装置１０は、入力されたクエリから近い順に、同義語の候補をランキング表示できる。
【００５５】
［５．その他］
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【００５６】
例えば、上記の実施形態では、最も上位にランキングされた同義語の候補をサジェスチョンクエリとして送信する場合について説明したが、本発明はこれに限定されない。例えば、上位の所定位以内にランキングされた同義語をクエリと共にＯＲ検索を行うものとしてもよい。
【００５７】
また、上述した同義語推定装置１０は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をＡＰＩ（Application  Programming  Interface）やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【００５８】
例えば、上記の実施形態では、同義語推定装置１０において、入力されたクエリの同義語の候補の検索および同義語の候補についての素性値の導出を行うものとしているが、これに限定されるものではない。同義語の候補の検索や同義語の候補についての素性値の導出をＷｅｂサーバなどの別なサーバ装置で行い、同義語推定装置１０は、当該別なサーバ装置から素性データ３０を受信し、最も上位にランキングされた同義語を当該別なサーバ装置へ返信するものとしてもよい。
【００５９】
また、特許請求の範囲に記載した「手段」は、「部（section、module、unit）」や「回路」などに読み替えることができる。例えば、検索手段は、検索部や検索回路に読み替えることができる。
【符号の説明】
【００６０】
１０  同義語推定装置
２１  記憶部
２２  制御部
３０  素性データ
３１  テンプレートデータ
３２  拡張素性データ
３３  学習用データ
３４  学習用素性データ
３５  学習用拡張素性データ
３６  重み付けデータ
４０  受付部
４１  学習部
４２  検索部
４３  導出部
４４  算出部
４５  特定部
４６  送信部
【図１】
0005507621.tif 000002
【図２】
0005507621.tif 000003
【図３】
0005507621.tif 000004
【図４】
0005507621.tif 000005
【図５】
0005507621.tif 000006
【図６】
0005507621.tif 000007
【図７】
0005507621.tif 000008
【図８】
0005507621.tif 000009
【図９】
0005507621.tif 000010
【図１０】
0005507621.tif 000011
【図１１】
0005507621.tif 000012
【図１２】
0005507621.tif 000013