(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-21
(45)【発行日】2023-11-30
(54)【発明の名称】情報処理プログラム、情報処理方法および情報処理装置
(51)【国際特許分類】
G06F 16/33 20190101AFI20231122BHJP
【FI】
G06F16/33
(21)【出願番号】P 2019195288
(22)【出願日】2019-10-28
【審査請求日】2022-07-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】冨田 祐
【審査官】酒井 恭信
(56)【参考文献】
【文献】特開2006-323575(JP,A)
【文献】特開平06-271824(JP,A)
【文献】特開2000-067056(JP,A)
【文献】特開2012-146205(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
第1の数値と前記第1の数値に関連付けられた単位とを含む検索
クエリを受け付け
ると、
前記検索クエリに含まれる前記単位を特定し、
記憶装置に記憶された複数のデータのうち、特定した前記単位
を文字列として含む複数の
第1データを抽出し、
抽出した前記複数の
第1データそれぞれに含まれる
、前記単位に関連付けられた数値
に基づいて算出した
第1データ毎の正規分布曲線
から求められる前記第1データ毎の数値類似度関数に前記第1の数値を入力することによって、前記検索クエリと前記第1データとの第1の類似度を
前記第1データ毎に算出し、
算出した前記第1の類似度と、自然文解析に基づいて算出した前記検索
クエリと前記複数の
第1データそれぞれとの間の第2の類似度と、に基づいて
、前記検索クエリと前記第1データとの第3の類似度を前記第1データ毎に算出し、前記第1データ毎に算出した前記第3の類似度に基づいて、前記複数の第1データのうちの少なくとも何れかの前記第1データを示す情報を前記検索クエリに対する検索結果として出力する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記コンピュータに更に、前記複数の
第1データそれぞれに含まれる前記単位の複数の数値に基づいて、
前記第1デー
タ毎に前記正規分布曲線を算出する、
処理を実行させることを特徴とする請求項1記載の情報処理プログラム。
【請求項3】
前記正規分布曲線の算出では、前記正規分布曲線の標準偏差が、前記単位に対して予め定められた閾値よりも小さい場合、前記標準偏差を、前記
閾値以上の所定の値に補正する、
ことを特徴とする請求項2記載の情報処理プログラム。
【請求項4】
前記単
位の特定では、
前記単位
に加えて、第2の数値
に関連付けられた他の単位を
前記検索クエリから特定し、
前記複数の第1データの抽出では、前記記憶装置に記憶された複数のデータのうち、特定した前記単位および前記他の単位を文字列として含む前記複数の第1データを抽出し、
前記第1の類似度の算出では、
前記第1データ毎の前記数値類似度関数に前記第1の数値を入力することによって得られる、前記第1データ毎の値と、前記複数の
第1データそれぞれに含まれる前記
他の単位
に関連付けられた数値に基づいて算出した
前記第1データ毎の他の正規分布曲線
から求められる前記第1データ毎の他の数値類似度関数に前記第2の数値を入力することによって得られる、前記第1データ毎の他の値とに基づいて、前記第1の類似度を
前記第1データ毎に算出する、
ことを特徴とする請求項1乃至3の何れか一項に記載の情報処理プログラム。
【請求項5】
前記数値類似度関数は、前記正規分布曲線
に予め定められた係数を乗じ
た関数である、
ことを特徴とする請求項1乃至4の何れか一項に記載の情報処理プログラム。
【請求項6】
コンピュータが、
第1の数値と前記第1の数値に関連付けられた単位とを含む検索
クエリを受け付け
ると、
前記検索クエリに含まれる前記単位を特定し、
記憶装置に記憶された複数のデータのうち、特定した前記単位
を文字列として含む複数の
第1データを抽出し、
抽出した前記複数の
第1データそれぞれに含まれる
、前記単位に関連付けられた数値
に基づいて算出した
第1データ毎の正規分布曲線
から求められる前記第1データ毎の数値類似度関数に前記第1の数値を入力することによって、前記検索クエリと前記第1データとの第1の類似度を
前記第1データ毎に算出し、
算出した前記第1の類似度と、自然文解析に基づいて算出した前記検索
クエリと前記複数の
第1データそれぞれとの間の第2の類似度と、に基づいて
、前記検索クエリと前記第1データとの第3の類似度を前記第1データ毎に算出し、前記第1データ毎に算出した前記第3の類似度に基づいて、前記複数の第1データのうちの少なくとも何れかの前記第1データを示す情報を前記検索クエリに対する検索結果として出力する、
ことを特徴とする情報処理方法。
【請求項7】
検索対象とする複数のデータを記憶する記憶部と、
第1の数値と前記第1の数値に関連付けられた単位とを含む検索
クエリを受け付け
ると、
前記検索クエリに含まれる前記単位を特定し、
前記記憶部に記憶された前記複数のデータのうち、特定した前記単位
を文字列として含む複数の
第1データを抽出し、抽出した前記複数の
第1データそれぞれに含まれる
、前記単位に関連付けられた数値に基づいて算出した
第1データ毎の正規分布曲線
から求められる前記第1データ毎の数値類似度関数に前記第1の数値を入力することによって、前記検索クエリと前記第1データとの第1の類似度を
前記第1データ毎に算出し、算出した前記第1の類似度と、自然文解析に基づいて算出した前記検索
クエリと前記複数の
第1データそれぞれとの間の第2の類似度と、に基づいて
、前記検索クエリと前記第1データとの第3の類似度を前記第1データ毎に算出し、前記第1データ毎に算出した前記第3の類似度に基づいて、前記複数の第1データのうちの少なくとも何れかの前記第1データを示す情報を前記検索クエリに対する検索結果として出力する処理部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理プログラム、情報処理方法および情報処理装置に関する。
【背景技術】
【0002】
記憶装置に格納されたデータの中から、ユーザにより入力された検索クエリの情報に対応するデータを検索する技術が利用されている。例えば、ユーザに提供されるサービス情報の内容に関連するキーワードや数値などの情報を含むメタデータを検索する通信システムの提案がある。提案の通信システムは、検索する項目に対応するあいまいな数値情報に関するメタデータの要求をユーザから取得し、当該項目に対応する数値範囲を算出し、当該数値範囲に含まれる数値を含むメタデータを検索し、検索したメタデータを出力する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
検索クエリは自然文で表されることがある。また、当該自然文が数値条件を含むことがある。そこで、入力された自然文に対し、検索対象データの中から、自然文の内容と自然文に含まれる数値条件とに対応するデータを検索結果として取得することが考えられる。
【0005】
この場合、例えば情報処理装置により、既存の自然文解析の技術を用いて、検索クエリとして入力された自然文と、検索対象データに含まれる文との類似度を求め、類似度の高い文を含む検索対象データを特定することが考えられる。
【0006】
しかし、自然文解析では、自然文に含まれる数値が特定の文字に置換されたり、単純に固有名詞として扱われたりして、自然文に含まれる数値条件の量的な特徴が検索に反映されないことが多い。このため、入力された数値に対してある程度の量の相違を許容するなど、数値条件に対するあいまいさを持たせた検索を行うことが難しいという問題がある。
【0007】
1つの側面では、本発明は、数値に関するあいまい検索を効率良く行うことができる情報処理プログラム、情報処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、情報処理プログラムが提供される。この情報処理プログラムは、第1の数値と第1の数値に関連付けられた単位とを含む検索クエリを受け付けると、検索クエリに含まれる単位を特定し、記憶装置に記憶された複数のデータのうち、特定した単位を文字列として含む複数の第1データを抽出し、抽出した複数の第1データそれぞれに含まれる、当該単位に関連付けられた数値に基づいて算出した第1データ毎の正規分布曲線から求められる第1データ毎の数値類似度関数に第1の数値を入力することによって、検索クエリと第1データとの第1の類似度を第1データ毎に算出し、算出した第1の類似度と、自然文解析に基づいて算出した検索クエリと複数の第1データそれぞれとの間の第2の類似度と、に基づいて、検索クエリと第1データとの第3の類似度を第1データ毎に算出し、第1データ毎に算出した第3の類似度に基づいて、複数の第1データのうちの少なくとも何れかの第1データを示す情報を検索クエリに対する検索結果として出力する、処理をコンピュータに実行させる。
【0009】
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、数値に関するあいまい検索を効率良く行うことができる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態の情報処理装置の処理例を示す図である。
【
図2】第2の実施の形態の情報処理システムの例を示す図である。
【
図14】数値と単位との組を単語化するロジックの例を示す図である。
【
図15】数値情報関連パラメータの計算ロジックの例を示す図である。
【
図16】数値類似度の算出ロジックの例を示す図である。
【
図17】文章類似度と数値類似度との合成ロジックの例を示す図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態の情報処理装置の処理例を示す図である。
情報処理装置10は、ユーザにより入力された入力情報20に応じたデータの検索を行う。検索対象のデータは、情報処理装置10によりアクセス可能な所定の記憶装置(図示を省略している)に格納される。当該記憶装置は、情報処理装置10に内蔵されてもよいし、情報処理装置10の外部に、ネットワークなどを介して接続されてもよい。
【0014】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
【0015】
記憶部11は、処理部12の処理に用いられるデータを記憶する。記憶部11は、処理部12が検索対象とする複数のデータを記憶する。検索対象となる複数のデータそれぞれは、文章の情報を含んでいる。文章は、自然文でもよいし、単語の羅列でもよい。
【0016】
処理部12は、数値条件を含む検索対象の情報の入力の受け付けに応じて、数値条件に対応付けられた単位に関する情報を特定する。例えば、処理部12は、ユーザによる入力情報20の入力を受け付ける。入力情報20は、自然文により検索対象が表される。当該自然文は、数値条件と単位との組を含む。例えば、処理部12は、記憶部11に予め格納される単位に関する単位リスト情報に登録された単位が、入力情報20の自然文に含まれる数値に隣接している場合に、当該数値に隣接する単位を、当該数値に対応する単位として特定する。
【0017】
処理部12は、特定した単位に関する情報に基づいて、検索対象とする複数のデータを抽出する。例えば、処理部12は、記憶装置に保存されているデータのうち、特定した単位を文字列として含むデータを検索対象とするデータとして抽出する。処理部12は、入力情報20から特定した単位に加え、入力情報20に含まれる、特定した単位以外の単語を文字列として含むデータを、検索対象とするデータとして抽出してもよい。
【0018】
例えば、処理部12は、入力情報20に対し、検索対象とする複数のデータとして、前述の記憶装置から検索対象データ30a1~30anを抽出する。検索対象データ30a1~30anそれぞれは、数値と入力情報20に含まれる単位とを組み合わせた文字列を1つ以上含む。
【0019】
処理部12は、抽出した複数のデータそれぞれに含まれる数値に関する情報に基づいて算出した正規分布曲線における数値条件に対応する値に基づいて第1の類似度を算出する。第1の類似度は、入力情報20の自然文に含まれる数値条件が示す値と、抽出したデータに含まれる、当該値と同じ単位の数値との類似の度合いを表す。例えば、第1の類似度が大きいほど、両者が類似する度合いも高い。
【0020】
例えば、処理部12は、検索対象データ30a1に含まれる数値に関する情報に基づいて、当該数値の単位に対応する正規分布曲線31a1の式を予め算出し、正規分布曲線31a1の式を示す情報を記憶部11に格納しておく。処理部12は、他の検索対象データに対しても同様に、正規分布曲線の式を単位毎に算出しておき、当該式を示す情報を記憶部11に格納しておく。
【0021】
正規分布曲線31a1は、数値条件が示す値と検索対象データ30a1に含まれる数値との類似度を表す。
図1では、数値条件が示す値を横軸とし、類似度を縦軸として正規分布曲線31a1を表している。処理部12は、入力情報20に含まれる数値条件が示す値xを正規分布曲線31a1の式に代入することで、値xと、検索対象データ30a1に含まれる、値xと同じ単位の数値または数値群との類似の度合いを表す第1の類似度s1-1を算出する。
【0022】
同様に、処理部12は、他の検索対象データについても第1の類似度を算出する。例えば、処理部12は、検索対象データ30anに対応する正規分布曲線31anの式に値xを代入することで、値xと、検索対象データ30anに含まれる、値xと同じ単位の数値または数値群との第1の類似度s1-nを算出する。
【0023】
なお、ある検索対象データにおいて、ある単位に組み合わされている数値が1つしかない場合や、ある単位に組み合わされている数値が複数含まれるが複数の数値が属する数値範囲の幅が比較的狭い場合もある。その場合、該当の検索対象データの該当の単位に対する正規分布曲線の標準偏差が比較的小さい値となる。そこで、処理部12は、正規分布曲線の標準偏差が閾値よりも小さい場合に、当該標準偏差を、当該標準偏差よりも大きい値に変更する補正を行ってもよい。これにより、検索対象データに対応する数値にある程度の広さの幅をもたせることができる。
【0024】
また、正規分布曲線では、標準偏差が比較的大きいほど、正規分布曲線から求まる縦軸の値は小さくなる。このため、処理部12は、正規分布曲線から求まる度数に、該当の単位に対して予め定められた係数(>0)を乗じた値を、第1の類似度として求めてもよい。当該係数により、標準偏差の大きさに応じて第1の類似度の大きさを調整可能になる。
【0025】
処理部12は、検索対象データ30a1~30anそれぞれに対する第1の類似度の算出に加えて、入力情報20に含まれる自然文と、検索対象データ30a1~30anそれぞれに含まれる文章との間の第2の類似度を、既存の自然文解析の技術により算出する。例えば、第2の類似度が大きいほど、両者が類似する度合いも高い。
【0026】
自然文解析により文同士の類似度を算出する技術として、例えば、文書間距離解析(WMD:Word Mover's Distance)や潜在的意味解析(LSI:Latent Semantic Indexing)などを用いることができる。例えば、処理部12は、入力情報20と検索対象データ30a1との自然文解析により、第2の類似度s2-1を算出する。処理部12は、他の検索対象データについても同様に第2の類似度を算出する。例えば、処理部12は、入力情報20と検索対象データ30anとの自然文解析により、第2の類似度s2-nを算出する。
【0027】
処理部12は、算出した第1の類似度と、自然文解析に基づいて算出した検索対象の情報と複数のデータそれぞれとの間の第2の類似度と、に基づいて入力を受け付けた数値条件に対応するデータに関する情報を出力する。
【0028】
例えば、処理部12は、検索対象データ30a1~30anそれぞれに対して算出した第1の類似度および第2の類似度を検索対象データ毎に合成した第3の類似度を求めてもよい。合成の方法としては、第1の類似度と第2の類似度との和を取る、第1の類似度と第2の類似度との重み付け和を取る、などが考えられる。ただし、第1の類似度と第2の類似度との合成には他の方法を用いてもよい。
【0029】
第3の類似度は、自然文解析による単語の一致などの類似の度合いに加えて、入力された数値条件に対する類似の度合いが反映された指標となる。例えば、処理部12は、第3の類似度を基に、検索対象データ30a1~30anをランク付けする。検索対象データ30a1~30anのうち、入力情報20との第3の類似度による類似の度合いが高いものほど高ランクとなる。例えば、処理部12は、検索対象データ30a1~30anのうち、高ランクのものを優先し、検索結果データ40として抽出する。処理部12は、検索結果データ40をユーザに提示する。例えば、処理部12は、情報処理装置10に接続された表示装置に検索結果データ40を表示させる。検索結果データ40は、検索された検索対象データの識別情報または内容でもよいし、当該検索対象データを参照するためのリンク情報などでもよい。
【0030】
情報処理装置10によれば、数値条件を含む検索対象の情報の入力の受け付けに応じて、数値条件に対応付けられた単位に関する情報が特定される。特定された単位に関する情報に基づいて、検索対象とする複数のデータが抽出される。抽出された複数のデータそれぞれに含まれる数値に関する情報に基づいて算出した正規分布曲線における数値条件に対応する値に基づいて第1の類似度が算出される。算出された第1の類似度と、自然文解析に基づいて算出された検索対象の情報と複数のデータそれぞれとの間の第2の類似度と、に基づいて入力を受け付けた数値条件に対応するデータに関する情報が出力される。
【0031】
これにより、数値に関するあいまい検索を効率良く行うことができる。
ここで、データの検索を行う装置において、位置や量などを表す大体の数値条件を含む自然文が検索クエリとして使用され得る。しかし、自然文解析では、自然文に含まれる数値が特定の文字に置換されたり、単純に固有名詞として扱われたりして、自然文に含まれる数値条件の量的な特徴が検索に反映されないことが多い。このため、入力された自然文内の数値に対してある程度の量の相違を許容するなど、数値条件に対するあいまいさを持たせた検索を行うことが難しい。
【0032】
そこで、情報処理装置10では、検索対象データに含まれる数値に関する情報に基づいて算出した正規分布曲線により、当該データに含まれる数値と入力された数値条件との類似の度合い、すなわち、第1の類似度を評価する。数値間の類似度の算出に、正規分布曲線を用いることで、例えば、人間が「数値的に近い」と感じる感覚を第1の類似度に反映させることができる。
【0033】
そして、第1の類似度を自然文解析に基づく第2の類似度と組み合わせることで、自然文解析のみでは困難であった、数値条件を加味したあいまい検索が可能になる。数値条件を加味したあいまい検索により、適切なデータを検索できる可能性が高まり、検索の精度が向上する。このため、ユーザは、自身が求めるデータを迅速に参照可能になる。このように、情報処理装置10によれば、数値に関するあいまい検索を効率良く行うことができる。
【0034】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
【0035】
第2の実施の形態の情報処理システムは、サーバ100およびクライアント200を含む。サーバ100およびクライアント200は、ネットワーク50に接続されている。ネットワーク50は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)およびインターネットなどである。
【0036】
サーバ100は、文章データの検索を行うサーバコンピュータである。サーバ100は、クライアント200により送信される検索文を受信する。検索文は、自然文で記述された検索クエリである。サーバ100は、検索文に対して、サーバ100が保持する文章データ群から検索文に対応する文章データを検索し、検索した文章データを示す情報をクライアント200に応答する。
【0037】
クライアント200は、ユーザが操作するクライアントコンピュータである。ユーザは、クライアント200を操作して、検索文を入力する。クライアント200は、検索文をサーバ100に送信する。クライアント200は、検索文に応じて検索された文章データを示す情報をサーバ100から受信し、受信した情報をユーザに提示する。
【0038】
第2の実施の形態の例では、検索対象の文章データは、高速道路の施設の管理画面において当該施設に関する情報を記述する文章を示すデータであるとする。高速道路の施設には、サービスエリア(SA:Service Area)、パーキングエリア(PA:Parking Area)、インターチェンジ(IC:Interchange)、ジャンクション(JCT:Junction)、トンネル(TN:Tunnel)およびトラフィックカウンタなどがある。例えば、文章データは、各施設が、高速道路の基準地点からどの程度の距離にあるかを示す数値情報を含む。基準地点からの距離は、「KP」という単位を用いて表される。「KP」は、キロポスト(Km Post、KmはKilo-metersの略)である。例えば、1つの文章データが、「KP」単位の数値を1つ以上含むことがある。
【0039】
ユーザは、「中国自動車道の70KP付近のSA/PAはどこか?」などの検索文を入力し、サーバ100に文章データを検索させる。このように、検索文には数値と単位との組み合わせによって表される数値条件が含まれる。
【0040】
図3は、サーバのハードウェア例を示す図である。
サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0041】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、サーバ100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0042】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0043】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0044】
画像信号処理部104は、CPU101からの命令に従って、サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0045】
入力信号処理部105は、サーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
【0046】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0047】
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0048】
NIC107は、ネットワーク50に接続され、ネットワーク50を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【0049】
クライアント200も、サーバ100と同様のハードウェアにより実現される。
図4は、サーバの機能例を示す図である。
サーバ100は、記憶部120、学習部130および検索部140を有する。記憶部120としては、RAM102やHDD103の記憶領域が用いられる。学習部130および検索部140は、プログラムにより実現される。
【0050】
記憶部120は、文章データ群を記憶する。文章データ群に含まれる文章データは、自然文の情報でもよいし、単語の羅列を示す情報でもよい。なお、文章データおよび検索文は、日本語で記述されてもよいし、英語などの日本語以外の言語で記述されてもよい。
【0051】
また、記憶部120は、自然文解析に用いられる文章データのインデックス情報、辞書情報および機械学習モデルの情報を記憶する。更に、記憶部120は、文章データに含まれる1以上の数値に関する正規分布関数の情報を、当該文章データに含まれる数値の単位毎に、文章データに対応付けて記憶する。また、記憶部120は、単位リスト情報を予め記憶する。単位リスト情報は、検索文内で用いられる単位のリストである。
【0052】
学習部130は、自然文解析のためのインデックス情報、辞書情報および機械学習モデルの作成を行う。例えば、学習部130は、記憶部120に記憶された文章データ毎に、WMDやLSIによる自然文解析のためのインデックス情報、辞書情報および機械学習モデルを作成し、文章データに対応付けて記憶部120に格納する。また、学習部130は、文章データに含まれる1以上の数値に関する正規分布関数の情報を、当該文章データに含まれる数値の単位毎に作成し、当該文章データに対応付けて記憶部120に格納する。
【0053】
検索部140は、受け付けた検索文に対応する文章データを、記憶部120に記憶された文章データ群の中から検索し、検索した文章データを示す情報を出力する。検索文は、ユーザによりクライアント200に入力され、クライアント200からサーバ100に対して送信される。検索文は、ユーザにより入力デバイス112を用いてサーバ100に入力されてもよい。
【0054】
検索部140は、前処理部141、候補抽出部142、文章類似度算出部143、数値類似度算出部144、類似度合成部145およびランキング部146を有する。
前処理部141は、検索文を受け付けると、検索文に対する前処理を行う。前処理部141は、例えば、正規表現を用いて検索文から数値を抽出し、当該数値を0に置換して、形態素解析により分ち書きを行う。前処理部141は、分ち書きを行うことで、検索文に含まれる名詞や動詞などの単語を抽出する。また、前処理部141は、記憶部120に記憶された単位リスト情報に基づいて、数値と単位とが結合した文字列を1つの単語として検索文から抽出する。
【0055】
候補抽出部142は、検索文に対応するインデックス情報と、文章データに対応するインデックス情報とに基づいて、記憶部120に記憶された文章データ群から、検索対象の文章データの候補を抽出する。当該インデックス情報として、例えば、転置インデックスが用いられる。候補抽出部142は、前処理部141が抽出した単位を含む文章データを候補として抽出し得る。なお、インデックス情報による絞り込みの結果、該当の単位を含まない文章データが抽出され、文章データの候補に含まれることもある。候補抽出部142は、抽出した文章データの候補を、文章類似度算出部143および数値類似度算出部144に入力する。
【0056】
一例では、候補抽出部142は、記憶部120に記憶された文章データ群から検索文と同じ単語を含む複数の文章データを抽出する。候補抽出部142は、記憶部120に記憶された文章データ毎の転置インデックスを生成して、記憶部120に予め保存しておく。候補抽出部142は、検索文の転置インデックスを生成し、記憶部120に保存された文章データ毎の転置インデックスと比較し、文章データ毎に、単語の出現頻度に応じたスコアを算出する。そして、候補抽出部142は、算出したスコアに基づいて、記憶部120に記憶された文章データ群の中から、複数の文章データを抽出する。これにより、候補抽出部142は、文章類似度算出部143および数値類似度算出部144が処理対象とする文章データの数を低減し、文章類似度算出部143および数値類似度算出部144の処理量を低減できる。
【0057】
文章類似度算出部143は、WMDやLSIによる自然文解析により、検索文と文章データとの間の文章類似度を算出する。文章類似度が大きいほど、検索文と文章データとが類似する度合いは高い。例えば、文章類似度は0~1の間の値を取るように算出される。
【0058】
一例では、文章類似度算出部143は、Word2Vecモデルを利用して、候補抽出部142が抽出した文章データと、検索文とのWMDスコアを算出する。文章類似度算出部143は、WMDスコアに基づいて、文章類似度を算出する。これにより、文書間距離解析に応じた文章類似度を求めることができる。ここで、Word2Vecモデルは、単語をベクトル化して表現するWord2Vec技術に基づく機械学習モデルである。検索文や文章データの言語として日本語が用いられる場合、Word2Vecモデルは、例えば、学習部130により、日本語版Wikipedia(登録商標)や記憶部120に記憶された文章データなどに基づいて予め生成される。
【0059】
また、文章類似度算出部143は、LSIモデルを利用して、候補抽出部142が抽出した文章データと、検索文とのLSIスコアを算出する。文章類似度算出部143は、LSIスコアに基づいて、文章類似度を算出する。これにより、潜在的意味解析に応じた文章類似度を求めることができる。なお、LSIに基づく辞書情報は、記憶部120に予め格納される。
【0060】
文章類似度算出部143は、WMDスコアおよびLSIスコアを組み合わせて文章類似度を求めてもよい。例えば、文章類似度算出部143は、WMDスコアの変数およびLSIスコアの変数を有する文章類似度算出用の関数にWMDスコアおよびLSIスコアを代入して、文章類似度を求めてもよい。当該関数は、記憶部120に予め格納される。これにより、文章類似度に、文書間距離解析および潜在的意味解析に応じたスコアを反映させることができ、検索文と意味的に類似する文章データの検索精度を向上できる。
【0061】
ただし、文章類似度算出部143は、自然文解析による文章類似度の算出に、WMDやLSI以外の既存の自然文解析技術を用いてもよい。文章類似度算出部143は、算出した文章類似度を、類似度合成部145に入力する。
【0062】
数値類似度算出部144は、検索文に含まれる数値と文章データに含まれる数値との数値類似度を算出する。数値類似度が大きいほど、検索文に含まれる数値と文章データに含まれる数値とが類似する度合いが高い。例えば、数値類似度は0~1の間の値を取るように算出される。数値類似度算出部144は、算出した数値類似度を、類似度合成部145に入力する。
【0063】
数値類似度算出部144は、検索文が複数の単位を含む場合、単位毎に個別に数値類似度を算出し、単位毎の数値類似度を合成することで、検索文に含まれる数値と文章データに含まれる数値との数値類似度を総合評価する。合成の方法としては、例えば単位毎の数値類似度の平均を取ることが考えられる。ただし、単位毎に重み付けして平均を取るなど、合成の方法は他の方法でもよい。
【0064】
類似度合成部145は、文章類似度算出部143により算出された文章類似度と、数値類似度算出部144により算出された数値類似度とを合成することで、検索文と文章データとの類似度を、文章データの候補毎に求める。合成の方法としては、例えば、文章類似度と数値類似度との和を取る、重み付け和を取るなどが考えられる。
【0065】
ランキング部146は、類似度合成部145により算出された類似度に基づいて、文章データの候補をランク付けする。ランキング部146は、類似度が大きい文章データの候補ほど、高いランクとする。ランキング部146は、ランクの高い文章データの候補を優先して抽出し、検索結果の情報とする。ランキング部146は、検索結果として抽出された文章データを示す情報をクライアント200に応答する。
【0066】
図5は、検索画面の例を示す図である。
検索画面150は、検索文の入力および検索結果の出力に用いられるGUI(Graphical User Interface)である。検索画面150は、クライアント200のディスプレイまたはサーバ100に接続されたディスプレイ111に表示される。検索画面150は、検索文入力フォーム151および検索ボタン152を有する。
【0067】
検索文入力フォーム151は、ユーザが検索文を入力するためのテキストボックスである。検索ボタン152は、検索文入力フォーム151に入力された検索文を確定して、当該検索文をサーバ100に入力するためのボタンである。
【0068】
例えば、検索画面150の検索文入力フォーム151には、「中国自動車道70KP付近のSA/PAはどこか?」という検索文が入力されている。検索画面150において検索ボタン152がユーザにより押下操作されると、当該検索文に応じた検索がサーバ100により実行され、検索画面150を表示していたディスプレイに、検索結果を含む検索画面150aが表示される。
【0069】
検索画面150aは、検索文入力フォーム151および検索ボタン152に加えて、検索結果表示欄153を有する。
検索結果表示欄153は、サーバ100による検索結果を表示する欄である。例えば、検索結果表示欄153には、検索文入力フォーム151の検索文に対して、中国自動車道の70KPに近い位置に存在する施設の画面に関する文章データへのリンク情報が表示される。
【0070】
図6は、文章データの例を示す図である。
文章データ群121は、記憶部120に記憶される。文章データ群121は、複数の文章データを含む。各文章データは、文章ID(IDentifier)に対応付けられる。各文章データは、画面名、文字情報および数値情報を含む。
【0071】
文章IDは、文章データの識別情報である。画面名は、文章データに対応する画面の名称である。文字情報は、文章データに含まれる文字情報である。数値情報は、文章データに含まれる数値情報である。数値情報は、数値と単位とを結合した文字列となる。
【0072】
例えば、文章データ群121は、文章ID「1」の文章データを含む。文章ID「1」の文章データの画面名は「施設詳細 名神高速道路 AA東IC」である。文章ID「1」の文章データは、「施設詳細,名神高速道路,AA東IC,…」という文字情報を含む。文章ID「1」の文章データは、「478.0KP,477.8KP,…」という数値情報を含む。
【0073】
また、文章データ群121は、文章ID「2」の文章データを含む。文章ID「2」の文章データの画面名は「施設詳細 名神高速道路 BBトンネル」である。文章ID「2」の文章データは、「施設詳細,名神高速道路,BBトンネル,…」という文字情報を含む。文章ID「2」の文章データは、「475.4KP,475.7KP,…」という数値情報を含む。
【0074】
文章データ群121は、他の施設に関する文章データを更に含み得る。また、
図6では、数値情報として、KP単位のものを例示しているが、数値情報の項目には、複数種類の単位の数値情報が含まれることもある。
【0075】
図7は、類似度の算出例を示す図である。
サーバ100は、検索文60に対して、文章データ121a~121nとの類似度を算出する。サーバ100は、検索文60と文章データ121a~121nそれぞれとの類似度を、文章類似度および数値類似度に基づいて算出する。
【0076】
例えば、サーバ100は、検索文60と文章データ121aとの文章類似度と数値類似度とに基づいて、検索文60と文章データ121aとの類似度Z1を算出する。
また、サーバ100は、検索文60と文章データ121bとの文章類似度と数値類似度とに基づいて、検索文60と文章データ121bとの類似度Z2を算出する。
【0077】
他の文章データについても同様である。例えば、サーバ100は、検索文60と文章データ121nとの文章類似度と数値類似度とに基づいて、検索文60と文章データ121nとの類似度Znを算出する。
【0078】
サーバ100は、文章データ121a~121nを、類似度Z1~Znに基づいてランク付けし、ランクの高いものを優先して検索結果として応答する。
図8は、数値類似度の算出例を示す図である。
【0079】
検索部140による検索には、人間の「数値的に近い」と感じる感覚を式に割り当てる。そのため、検索部140は、数値類似度の算出に正規分布曲線を適用した数値類似度関数を用いる。
【0080】
数値類似度関数70は、ある文章データのKP単位に対する正規分布曲線から求められる。ここで、
図8に示されるグラフの横軸は、検索文および文章データにおける文章に含まれるKP単位の数値であり、縦軸は類似度である。
図8では、検索対象の文章データに含まれるKP単位の数値を黒い丸で示し、検索文に含まれるKP単位の数値を白い丸で示している。数値類似度関数70の平均値は、該当の文章データに含まれるKP単位の数値の平均値である。
【0081】
数値類似度関数70は、式(1)によって表される。式(1)は、正規分布曲線に係数Bを乗じたものである。
【0082】
【0083】
σは、該当の文章データに含まれる該当の単位(例えば、KP単位)の数値の標準偏差である。μは、該当の文章データに含まれる該当の単位(例えば、KP単位)の数値の平均である。
【0084】
ここで、次のパラメータを定める。
パラメータAは、同程度とする範囲を表す。例えば、KP単位に対して、検索文の数値の前後20KP程度まで探したい場合には、A=20とする。パラメータAは、標準偏差σが比較的小さい場合に、標準偏差σの代わりに使用される。すなわち、数値類似度算出部144は、式(1)における正規分布曲線の標準偏差σが、該当の単位に対して予め定められた閾値Aよりも小さい場合、当該標準偏差σを、標準偏差σよりも大きい値に補正する。例えば、数値類似度算出部144は、σ<Aのとき、式(1)において、σ=Aとする。パラメータAを用いることで、該当の文章データに含まれる該当の単位の数値が例えば1つの場合でも、ある程度の幅をもたせることができる。
【0085】
パラメータBは、数値類似度算出の際に、正規分布曲線にかける乗率である。パラメータBは、数値類似度の調整のために用いられる。
図9は、数値類似度関数の例を示す図である。
【0086】
図9に示されるグラフの横軸は、文章データにおける文章に含まれるKP単位の数値であり、縦軸は類似度である。
図9(A)は、数値類似度関数71を示す。数値類似度関数71は、ある文章データに含まれるある単位の数値が単一の場合を例示する。数値が単一の場合、数値類似度関数71の標準偏差σ1=0<Aとなる。この場合、数値類似度算出部144は、σ1=Aに補正することで、数値類似度関数71で表される分布の幅をσ1=0の場合よりも広げる。
【0087】
図9(B)は、数値類似度関数72を示す。数値類似度関数72は、ある文章データに含まれるある単位の数値の範囲が比較的狭い場合を例示する。例えば、数値類似度関数72の標準偏差σ2>Aである。数値類似度関数72では、数値類似度関数71よりもピークに対応する類似度の値が小さくなる。
【0088】
図9(C)は、数値類似度関数73を示す。数値類似度関数73は、ある文章データに含まれるある単位の範囲が比較的広い場合を例示する。例えば、数値類似度関数73の標準偏差σ3>σ2である。数値類似度関数73では、数値類似度関数72よりもピークに対応する類似度の値が小さくなる。
【0089】
このように、文章データや単位によっては、σが比較的大きい値になることがある。σが大きいほど、数値類似度関数70により求まる類似度は小さい値となる。そこで、数値類似度算出部144は、数値類似度が文章類似度に比べて小さくなり過ぎないように、式(1)で計算される数値類似度をパラメータBにより調整する。パラメータBは、例えば、単位毎に予め定められる。
【0090】
数値類似度関数70を表すパラメータA,B、平均μおよび標準偏差σは、学習部130により、文章データおよび単位の組毎に計算され、記憶部120に記憶されるパラメータテーブルに予め格納される。
【0091】
図10は、パラメータテーブルの例を示す図である。
パラメータテーブル122は、記憶部120に記憶される。パラメータテーブル122は、文章ID、単位、平均、標準偏差、パラメータAおよびパラメータBの項目を含む。
【0092】
文章IDの項目には、文章IDが登録される。単位の項目には、単位が登録される。平均の項目には、平均μの値が登録される。標準偏差の項目には、標準偏差σの値が登録される。パラメータAの項目には、パラメータAの値が登録される。パラメータBの項目には、パラメータBの値が登録される。
【0093】
例えば、パラメータテーブル122には、文章IDが「1」、単位が「KP」、平均が「ave1」、標準偏差が「dev1」、パラメータAが「a1」、パラメータBが「b1」というレコードが登録されている。このレコードは、文章ID「1」に含まれる単位「KP」である値の平均μが「ave1」であり、標準偏差が「dev1」であり、パラメータAが「a1」であり、パラメータBが「b1」であることを示す。
【0094】
文章ID「1」の文章データが「KP」以外の他の単位の数値を含む場合、パラメータテーブル122には、文章ID「1」の他の単位に関するレコードを含む。また、パラメータテーブル122は、他の文章IDおよび単位の組に対応するレコードも含む。単位の例としては、KPの他にも、cm、kg、緯度または経度を表す度分秒、海水面などの基準面からの高さ(標高)を表すkmやmなど、種々の例が考えられる。
【0095】
このように、学習部130は、複数の文章データそれぞれに含まれる単位の複数の数値に基づいて、文章データおよび単位の組毎に正規分布曲線を算出し、正規分布曲線あるいは式(1)を表すパラメータをパラメータテーブル122に格納する。
【0096】
図11は、数値類似度の比較の例を示す図である。
図11では、中国自動車道における施設の検索を行う場合を想定する。検索文は、例えば、「中国自動車道の70KP付近のSA/PAはどこか?」である。
図11に示されるグラフの横軸は、検索文および文章データにおける文章に含まれるKP単位の数値であり、縦軸は類似度である。
【0097】
数値類似度関数74は、社PAの文章データに含まれるKP単位の数値の分布を示す。数値類似度関数74をf1(x)と表す。社PAの文章データに含まれる数値は、おおよそ55.90~56.15KPの範囲に分布している。
【0098】
数値類似度関数75は、加西SAの文章データに含まれるKP単位の数値の分布を示す。数値類似度関数75をf2(x)と表す。加西SAの文章データに含まれる数値は、おおよそ75.70~76.15KPの範囲に分布している。
【0099】
数値類似度関数74,75によれば、検索文に含まれる「70KP」(x=70)に対して、数値類似度f1(70)<数値類似度f2(70)である。したがって、検索文に含まれる数値情報に対して、加西SAの文章データに含まれる数値情報の方が、社PAの文章データに含まれる数値情報よりも、類似する度合いが高いことになる。これは、中国自動車道の70KPの位置に、社PAよりも加西SAの方が近いことを意味する。
【0100】
サーバ100は、自然文解析に基づく文章類似度に数値類似度を組み合わせて、文章データの検索を行う。次に、サーバ100による処理の手順を説明する。まず、学習部130による処理の手順を説明する。
【0101】
図12は、学習例を示すフローチャートである。
(S10)学習部130は、HDD103またはネットワークなどを介して接続された外部ストレージから文章データを取得し、RAM102の所定の記憶領域にロードする。
【0102】
(S11)学習部130は、WMDやLSIなどの自然文解析による文章類似度の算出に用いられる、文章データのインデックス情報、辞書情報および機械学習モデルを作成し、該当の文章データに対応付けて、記憶部120に保存する。
【0103】
(S12)学習部130は、文章データの数値情報関連パラメータを数値の単位毎に計算する。学習部130は、該当の文章データに含まれる数値の平均、標準偏差、パラメータA,Bを、単位毎に計算する。数値情報関連パラメータの計算ロジックの詳細は後述される。学習部130は、計算結果を、文章データおよび単位に対応付けて、記憶部120のパラメータテーブル122に保存する。そして、学習の処理が終了する。
【0104】
学習部130は、検索対象となり得る全ての文章データに対してステップS10~S12の学習の手順を実行する。
次に、検索部140による処理の手順を説明する。
【0105】
図13は、検索例を示すフローチャートである。
(S20)検索部140は、サーバ100のOSなどによる検索サービスの起動命令に応じて起動する。検索部140は、学習部130により処理済みである全ての文章データのインデックス情報、辞書情報、機械学習モデル、および、数値情報関連パラメータをRAM102の所定の記憶領域にロードする。そして、ステップS21以降の検索部140の各部の処理が開始される。
【0106】
(S21)前処理部141は、検索要求を待ち受ける。検索要求は、ユーザにより入力される検索文を含む。検索要求は、クライアント200からサーバ100に対して送信される。検索要求は、入力デバイス112によりサーバ100に入力されてもよい。
【0107】
(S22)前処理部141は、検索要求を受け付ける。
(S23)前処理部141は、検索要求に含まれる検索文の前処理を行う。前処理部141は、前処理では、例えば、正規表現を用いて検索文から数値を抽出し、当該数値を0に置換して、形態素解析により分ち書きを行う。前処理部141は、分ち書きを行うことで、検索文に含まれる名詞や動詞などの単語を抽出する。また、前処理部141は、記憶部120に記憶された単位リスト情報に基づいて、検索文から数値と単位とが結合した単語を抽出する。前処理のロジックの詳細は、後述される。そして、候補抽出部142は、検索文に対応するインデックス情報と、文章データに対応するインデックス情報とに基づいて、RAM102にロードされた文章データ群から、検索対象の文章データの候補を抽出する。これにより、候補抽出部142は、前処理部141が抽出した単位を含む文章データを候補として抽出する。候補抽出部142は、抽出した文章データの候補を、文章類似度算出部143および数値類似度算出部144に入力する。
【0108】
(S24)文章類似度算出部143は、自然言語処理による文章類似度の算出を行う。すなわち、文章類似度算出部143は、WMDやLSIによる自然文解析により、検索文と文章データとの間の文章類似度を、候補抽出部142により入力された文章データ毎に算出する。文章類似度算出部143は、自然文解析による文章類似度の算出に、WMDやLSI以外の既存の自然文解析技術を用いてもよい。文章類似度算出部143は、算出した文章類似度を、類似度合成部145に入力する。
【0109】
(S25)数値類似度算出部144は、検索文に含まれる数値と文章データに含まれる数値との数値類似度を、候補抽出部142により入力された文章データ毎に算出する。数値類似度算出部144は、算出した数値類似度を、類似度合成部145に入力する。数値類似度算出部144は、検索文が複数の単位を含む場合、単位毎に個別に数値類似度を算出し、単位毎の数値類似度を合成して、検索文に含まれる数値と文章データに含まれる数値との数値類似度とする。合成の方法としては、例えば単位毎の数値類似度の平均を取ることが考えられる。数値類似度算出のロジックの詳細は後述される。
【0110】
(S26)類似度合成部145は、文章類似度算出部143により算出された文章類似度と、数値類似度算出部144により算出された数値類似度とを合成することで、検索文と文章データとの類似度を、文章データの候補毎に求める。ここで、文章類似度と数値類似度とに基づいて算出される類似度を、「合成類似度」と称する。合成の方法としては、例えば、文章類似度と数値類似度との和を取る、重み付け和を取るなどが考えられる。合成ロジックの詳細は後述される。
【0111】
(S27)ランキング部146は、類似度合成部145により算出された合成類似度に基づいて、候補抽出部142により抽出された文章データの候補をランク付けする。ランキング部146は、合成類似度が大きい文章データの候補ほど、高いランクとする。ランキング部146は、ランクの高い文章データの候補を優先して抽出し、検索結果の情報とする。ランキング部146は、検索結果として抽出された文章データを示す情報をクライアント200に応答する。ランキング部146は、当該文章データを示す情報を、ディスプレイ111に表示させてもよい。
【0112】
(S28)検索部140は、サーバ100のOSなどにより検索サービスの終了が指示されたか否かを判定する。検索サービスの実行が継続される場合、ステップS21に処理が進む。検索サービスが終了する場合、検索部140による検索処理が終了する。
【0113】
ここで、検索文が複数の単位に関する数値情報を含む場合、ステップS23,S25の処理は次のように表すこともできる。
ステップS23では、前処理部141は、検索文における単位に関する情報を特定する際に、第1の数値条件に対応付けられた第1の単位および第2の数値条件に対応付けられた第2の単位を特定する。すると、候補抽出部142は、記憶部120に記憶された文章データ群の中から、第1の単位および第2の単位を含む文章データを抽出し得る。
【0114】
ステップS25では、数値類似度算出部144は、複数の文章データそれぞれに含まれる第1の単位の数値に基づいて算出した第1の正規分布曲線における第1の数値条件に対応する第1の値を計算する。数値類似度算出部144は、複数の文章データそれぞれに含まれる第2の単位の数値に基づいて算出した第2の正規分布曲線における第2の数値条件に対応する第2の値を計算する。数値類似度算出部144は、第1の値と第2の値とに基づいて、数値類似度を文章データ毎に算出する。検索文が3種類以上の単位を含む場合も数値類似度算出部144は、同様にして総合的な数値類似度を算出する。
【0115】
次に、学習部130、前処理部141、数値類似度算出部144および類似度合成部145で実行されるロジックの例を説明する。ロジックの説明ではプログラム言語の一例としてPythonを例示する。ただし、ロジックは他のプログラム言語を用いて記述されてもよい。
【0116】
図14は、数値と単位との組を単語化するロジックの例を示す図である。
ロジック160は、数値と単位との組を単語化するロジックの例である。ロジック160は、前処理部141の処理の一部に相当する。
【0117】
ロジック160の11行目~16行目は、正規表現を用いて検索文から数値を抜き出し、数値があれば当該数値を0に置き換えて、形態素解析による分ち書きを行う処理を示す。ロジック160の16行目の処理では、分ち書き、正規化およびストップワードの除去が行われる。
【0118】
ロジック160の17行目~28行目は、検索文のうち、0に置き換えられた箇所を元の数値に戻し、数値の後の直後の単語が単位リスト情報に含まれる単位の場合、該当の数値と単位とを結合した数値情報を1つの単語として取得する処理を示す。
【0119】
ロジック160の29行目は、ロジック160の呼び出し元の処理に、数値情報を含む単語リストを返す処理を示す。
例えば、「広島自動車道の11.23KPあたりの施設を見せて」という検索文に対して、ロジック160は、「広島自動車道」、「11.23KP」、「あたり」、「施設」、「見せる」という単語を含む単語リストを応答する。このうち、数値情報「11.23KP」は数値「11.23」と単位「KP」とを結合した単語である。
【0120】
図15は、数値情報関連パラメータの計算ロジックの例を示す図である。
ロジック170は、数値情報関連パラメータの計算ロジックの例である。ロジック170は、学習部130の処理の一部に相当する。
【0121】
ロジック170の1行目は、文章データから数値情報の文字列を取得する処理を示す。
ロジック170の2行目は、ロジック160により数値情報を含む単語リストを生成する処理を示す。
【0122】
ロジック170の3行目は、生成した単語リストから単位文字列をキーとした辞書を生成する処理を示す。複数の単位文字列それぞれに対して、ロジック170の4行目~13行目の処理が実行される。
【0123】
ロジック170の4行目~11行目は、単位文字列毎に、平均(=ave)と標準偏差(=dev)とを求める処理を示す。
ロジック170の12行目~13行目は、記憶部120に予め記憶された設定ファイルからパラメータA,Bの値を取得する処理を示す。ここで、図中、パラメータAを変数paで表し、パラメータBを変数pbで表すことがある。
【0124】
ロジック170の14行目は、該当の文章データに対して、単位、平均、標準偏差、および、パラメータA,Bをパラメータテーブル122に記録する処理を示す。
図16は、数値類似度の算出ロジックの例を示す図である。
【0125】
ロジック180は、数値類似度の算出ロジックの例である。ロジック180は、数値類似度算出部144の処理の一部に相当する。
ロジック180の14行目~17行目は、数値と単位との組み合わせを検索文から検索し、当該組み合わせがあれば、「num_list」に数値情報として追加する処理を示す。
【0126】
ロジック180の19行目~20行目は、検索文に数値情報がない場合、数値類似度を「None」とすることを示す。
ロジック180の23行目~38行目は、正規分布曲線を利用して、数値情報に基づく数値類似度を算出する処理を示す。特に、ロジック180の36行目は、式(1)に相当する。
【0127】
ロジック180の41行目~47行目は、数値類似度の調整処理を示す。数値類似度の調整処理では、検索文に含まれる数値情報に関する総合的な数値類似度を、検索文の総単語数に対する数値情報を表す単語の数の割合で乗じた値を、調整後の数値類似度とする。ここで、総合的な数値類似度は、例えば、検索文に含まれる各単位に対して計算された数値類似度の平均である。ただし、総合的な数値類似度は、検索文に含まれる各単位に対して計算された数値類似度の、各単位の重要度に応じた重み付け和など、他の計算方法によって求められてもよい。
【0128】
図17は、文章類似度と数値類似度との合成ロジックの例を示す図である。
ロジック190は、文章類似度と数値類似度との合成ロジックの例である。ロジック190は類似度合成部145の処理の一部に相当する。
【0129】
ロジック190の1行目は、検索対象となる全ての文章データに対してループを取ることを示す。
ロジック190の3行目~6行目は、自然言語処理による検索文と文章データとの文章類似度を算出する処理を示す。文章類似度を算出する処理には、既存の自然文解析技術を使用できるため、ロジックの記述例の図示を省略する。ロジック190では、文章類似度の計算結果は、変数「dist」に代入される。
【0130】
ロジック190の9行目~16行目は、文章類似度と数値類似度とを加算する処理を示す。文章類似度と数値類似度との加算は、該当の文章データが数値を含む場合にのみ実行される。ロジック190では、数値類似度の計算結果は、変数「nus」に代入される。
【0131】
文章類似度と数値類似度とに基づく、検索文と文章データとの合成類似度Zは、次の式により求められる。すなわち、「合成類似度Z=文章類似度+数値類似度*重み」である。重み「weight」は、設定パラメータCとして、記憶部120に予め格納される。文章データが数値を含まない場合、合成類似度Z=文章類似度となる。また、加算により合成類似度Z>1となる場合、ロジック190の12行目の「dutil.max_one」関数により、Z=1とする。
【0132】
更に、ロジック190の12行目の末尾に記載されているように、合成類似度Zが数値類似度を加算して求められたものであることを識別可能にするため、類似度合成部145は、合成類似度Zとともに、識別情報「dist_n」を記憶部120に記録する。合成類似度Zが数値類似度を加算せずに求められたものである場合、ロジック190の14行目の末尾に記載されているように、識別情報は「dist」となる。
【0133】
なお、ロジック190では、変数「wmd」で示されるWMDスコアや変数「lsi」で示されるLSIスコアを用いる例を示しているが、前述のように、文章類似度算出部143は、他の自然文解析技術を用いて文章類似度を求めてもよい。
【0134】
次に、検索部140による検索結果の出力例を説明する。検索部140は、数値的にあいまいな検索文に対し、文章データとの合成数値類似度を評価することで、次のような検索結果を出力する。
【0135】
図18は、検索結果の第1の出力例を示す図である。
検索画面150bは、検索文入力フォーム151a、検索ボタン152および検索結果表示欄153aを有する。
【0136】
検索文入力フォーム151aには、「山陽自動車道の100KPあたりに施設はある?」という検索文が入力されている。検索ボタン152が押下されると、サーバ100は、検索文入力フォーム151aに入力された検索文に応じて文章データの検索を行い、検索結果表示欄153aに表示される検索結果を出力する。
【0137】
検索結果表示欄153aには、文章類似度および数値類似度により求められた合成類似度に基づいて、文章データがランキングされた結果が表示されている。なお、検索結果表示欄153aには、該当の文章データに対して計算された文章類似度、数値類似度、合成類似度、および、数値情報も表示されている。
【0138】
例えば、検索文入力フォーム151aに入力された検索文に対して、最も合成類似度が高かった文章データは、「閑谷TN」の施設詳細画面の文章データである。2番目に合成類似度が高かった文章データは、「稲坪TN」の施設詳細画面の文章データである。3番目に合成類似度が高かった文章データは、「福石PA」の施設詳細画面の文章データである。
【0139】
このように、サーバ100は、検索文との文章類似度が比較的高く、かつ、検索文に含まれる「100KP」に比較的近い数値情報を有する文章データを、高い優先度で表示させることができる。ユーザは、検索画面150bを確認することで、所望の文章データに容易にアクセスすることができる。
【0140】
図19は、検索結果の第2の出力例を示す図である。
検索画面150cは、検索文入力フォーム151b、検索ボタン152および検索結果表示欄153bを有する。
【0141】
検索文入力フォーム151bには、「中国自動車道の467.460KPのトラカンを教えて」という検索文が入力されている。ここで、「トラカン」は、「トラフィックカウンタ」の略である。検索ボタン152が押下されると、サーバ100は、検索文入力フォーム151bに入力された検索文に応じて文章データの検索を行い、検索結果表示欄153bに表示される検索結果を出力する。
【0142】
例えば、検索文入力フォーム151bに入力された検索文に対して、最も合成類似度が高かった文章データは、「山口IC」の施設詳細画面の文章データである。2番目に合成類似度が高かった文章データは、「湯田PA」の施設詳細画面の文章データである。3番目に合成類似度が高かったデータは、「山口JCT~山口IC」の交通量詳細画面の文章データである。
【0143】
このように、サーバ100は、検索文との文章類似度が比較的高く、かつ、検索文に含まれる「467.460KP」に比較的近い数値情報を有する文章データを、高い優先度で表示させることができる。ユーザは、検索画面150cを確認することで、所望の文章データに容易にアクセスすることができる。
【0144】
また、サーバ100は、検索対象となるデータから正規分布曲線を作るための情報を抽出できる。このため、ユーザにより値の定義などの作業を別途行わなくても、数値の傾向を類似度に容易に反映させることができる。
【0145】
また、式(1)を予め算出しておくことで、検索時には、式(1)に検索文の値を代入するだけで高速に数値類似度を算出できる。
また、検索文に含まれる数値と文章データに含まれる数値との差の大小に拘わらず、文章データ毎に、数値類似度を算出可能である。
【0146】
また、自然文解析による文章類似度と数値類似度とを組み合わせて、例えば、文章的な類似性および数値的な類似性を反映した合成類似度を算出し、合成類似度に基づいて文章データをランキングすることで、検索精度を向上させることができる。
【0147】
また、サーバ100は、数値の単位毎に数値類似度を計算し、単位毎の数値類似度を正規化して1文としての数値類似度を求める。このため、複数の単位付き数値が検索文に含まれていても、複数の単位付き数値に対する数値類似度を評価して、検索に用いることができる。
【0148】
また、式(1)においてユーザにより決定されるパラメータは、正規分布曲線に対する最小分散値であるパラメータA、および、数値類似度の大きさを調整するための係数であるパラメータBの2つである。このように、パラメータの数を比較的少なく抑えることで、式(1)により数値類似度として求まる値の調整を容易に行えるという利点もある。
【0149】
更に、第2の実施の形態の例では、検索文の数値情報が「KP」の単位で表される例を説明したが、他の単位を用いた検索も考えられる。
例えば、サーバ100は、位置情報による施設などの検索において、「経度」、「緯度」および「標高」などの複数の種類の単位で表される数値に関するあいまい検索を行うことが考えられる。この場合、サーバ100は、例えば検索文と文章データとの「経度」に関する数値類似度、「緯度」に関する数値類度、および、「標高」に関する数値類度を求め、これら3つの数値類似度から検索文と文章データとの数値類似度を総合評価する。そして、サーバ100は、検索文と文章データとの自然文解析による文章類似度と数値類似度とを合成して、文章データをランキングし、検索結果を出力する。
【0150】
あるいは、サーバ100は、栄養成分による食品や薬品などの検索において、「kcal」、「g」、「mg」などの複数の種類の単位で表される数値に関するあいまい検索を行うことも考えられる。この場合、サーバ100は、例えば検索文と文章データとの「kcal」に関する数値類似度、「g」に関する数値類度、および、「mg」に関する数値類度を求め、これら3つの数値類似度から検索文と文章データとの数値類似度を総合評価する。そして、サーバ100は、検索文と文章データとの自然文解析による文章類似度と数値類似度とを合成して、文章データをランキングし、検索結果を出力する。
【0151】
第2の実施の形態で例示したように、サーバ100は、検索対象として抽出されたデータに含まれる数値に関する情報に基づいて算出した正規分布曲線により、当該データに含まれる数値と入力された数値条件との類似の度合い、すなわち、数値類似度を評価する。数値類似度の算出に正規分布曲線を用いることで、例えば、人間が「数値的に近い」と感じる感覚を数値類似度に反映させることができる。
【0152】
そして、数値類似度を自然文解析に基づく文章類似度と組み合わせることで、自然文解析のみでは困難であった、数値条件を加味したあいまい検索が可能になる。数値条件を加味したあいまい検索により、適切なデータを検索できる可能性が高まり、検索の精度が向上する。このため、ユーザは、自身が求めるデータを迅速に参照可能になる。このように、サーバ100によれば、数値に関するあいまい検索を効率良く行うことができる。
【0153】
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
【0154】
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【0155】
10 情報処理装置
11 記憶部
12 処理部
20 入力情報
30a1,…,30an 検索対象データ
31a1,…,31an 正規分布曲線
40 検索結果データ