(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】検索サーバー、検索システム、及び検索プログラム
(51)【国際特許分類】
G06F 16/9032 20190101AFI20231024BHJP
G06F 16/332 20190101ALI20231024BHJP
G06F 16/951 20190101ALI20231024BHJP
【FI】
G06F16/9032
G06F16/332
G06F16/951
(21)【出願番号】P 2022574495
(86)(22)【出願日】2022-03-28
(86)【国際出願番号】 JP2022014843
【審査請求日】2022-12-01
(73)【特許権者】
【識別番号】522469660
【氏名又は名称】twelS株式会社
(74)【代理人】
【識別番号】100114627
【氏名又は名称】有吉 修一朗
(74)【代理人】
【識別番号】100182501
【氏名又は名称】森田 靖之
(74)【代理人】
【識別番号】100175271
【氏名又は名称】筒井 宣圭
(74)【代理人】
【識別番号】100190975
【氏名又は名称】遠藤 聡子
(72)【発明者】
【氏名】小嶋 恒
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2016-071495(JP,A)
【文献】国際公開第2007/105759(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信する受信部と、
ネットワーク上及び前記情報端末内を巡回し、前記ネットワーク上のWebページ及び前記情報端末内のファイルを含むデジタル情報を収集する情報収集部と、
該情報収集部により収集された前記デジタル情報が登録されたデータベースと、
前記受信部で受信した前記検索ワードに含まれる数式を第1の数式と定義するとともに、該第1の数式を所定の規則に従って移項処理して該第1の数式と同義である第2の数式を導出する演算処理部と、
前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成する検索結果生成部と、を備える
検索サーバー。
【請求項2】
前記受信部は、前記情報収集部で収集された前記デジタル情報から抽出した左辺、関係演算子、右辺の順に表記される数式を抽出ワードとして受信し、
前記演算処理部は、
前記受信部で受信した前記抽出ワードを前記第1の数式として演算処理を実行し、
前記データベースには、演算処理により得られた前記第1の数式、及び前記第2の数式を前記デジタル情報と関連付けて登録された
請求項1に記載の検索サーバー。
【請求項3】
前記演算処理部は、
前記第1の数式を構文解析により最小単位の要素に分解したうえで階層的配置からなる第1の木構造モデルを構築する第1の構文解析部と、
所定の規則に従って前記第1の木構造モデルを移項処理し前記第1の数式と同義である第2の数式についての木構造モデルである第2の木構造モデルを構築する第2の構文解析部と、
前記第1の木構造モデル、及び前記第2の木構造モデルを文字列の集合体に変換する文字列変換部と、を有する
請求項1または請求項2に記載の検索サーバー。
【請求項4】
前記第2の構文解析部は、
前記第1の数式の右辺にある数、文字、式の少なくとも一部を左辺に移項し、或いは前記第1の数式の左辺にある数、文字、式の少なくとも一部を右辺に移項して前記第1の数式と同義である前記第2の数式を構築する
請求項3に記載の検索サーバー。
【請求項5】
前記第2の構文解析部は、
前記第1の数式に対する移項処理後の左辺、または右辺にある文字列から共通する文字列を抽出し、該共通する文字列を一の文字に置き換えた数式を前記第2の数式と定義する
請求項3に記載の検索サーバー。
【請求項6】
前記演算処理部は、
前記受信部で受信した前記検索ワードとしての前記第1の数式を移項処理して第2の数式を構築する移項処理部、前記第1の数式、及び前記第2の数式をベクトル変換するベクトル変換部、前記データベースに登録されている前記デジタル情報に含まれる数式とのコサイン類似度を算出する類似度算出部を有する
請求項1または請求項2に記載の検索サーバー。
【請求項7】
前記データベースは、
前記情報収集部により抽出された前記デジタル情報のそれぞれに固有のコンテンツIDが付与され、該コンテンツID毎に前記デジタル情報のURL、ファイル名、スニペット情報のうち、少なくとも1つ以上を含む情報が前記第1の数式と前記第2の数式とともに登録されている
請求項1または請求項2に記載の検索サーバー。
【請求項8】
前記データベースは、
前記第1の数式、及び前記第2の数式を含む複数の数式のそれぞれに固有の数式IDが付与され、該数式IDと前記数式を含む前記デジタル情報とが対応付けて登録されている
請求項1または請求項2に記載の検索サーバー。
【請求項9】
前記データベースは、
前記第1の数式、及び前記第2の数式を含む複数の数式のそれぞれに固有の数式IDが付与され、前記文字列変換部により展開された前記数式の最小単位である各要素と、該要素を含む数式の前記数式IDとが対応付けて登録されている
請求項3に記載の検索サーバー。
【請求項10】
前記検索結果生成部は、
前記第1の数式に基づく検索結果と前記第2の数式に基づく検索結果とを同列に扱う場合には、前記第2の数式に基づいて前記データベースを参照して前記デジタル情報の検索結果を生成し、
前記第1の数式に基づく検索結果と前記第2の数式に基づく検索結果とに順位差を設ける場合には、前記第1の数式と前記第2の数式の両方に基づいて前記データベースを参照して前記デジタル情報の検索結果を生成する
請求項1または請求項2に記載の検索サーバー。
【請求項11】
前記情報収集部は、前記デジタル情報を所定の基準に基づいてフィルタリングし、検索結果を序列するフィルタリング部を有する
請求項1または請求項2に記載の検索サーバー。
【請求項12】
情報端末と、
該情報端末とネットワークを介して接続され前記情報端末に対して情報検索サービスを提供する検索サーバーと、を備える検索システムにおいて、
前記検索サーバーは、
前記情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信する受信部と、
ネットワーク上及び前記情報端末内を巡回し、ネットワーク上のWebページ及び前記情報端末内のファイルを含むデジタル情報を収集する情報収集部と、
該情報収集部により収集された前記デジタル情報が登録されたデータベースと、
前記受信部で受信した前記検索ワードに含まれる数式を第1の数式と定義し、該第1の数式を所定の規則に従って移項処理し、前記第1の数式と同義である第2の数式を導出する演算処理部と、
前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成する検索結果生成部と、を備える
検索システム。
【請求項13】
情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信するステップと、
ネットワーク上及び前記情報端末内を巡回し、ネットワーク上のWebページ及び前記情報端末内のファイルを含むデジタル情報を収集してデータベースに登録するステップと、
前記検索ワードに含まれる数式を第1の数式と定義し、該第1の数式を所定の規則に従って移項処理し、前記第1の数式と同義である第2の数式を導出するステップと、
前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成するステップと、
生成された検索結果を前記情報端末に出力するステップと、をコンピュータに実行させるための
検索プログラム。
【請求項14】
前記デジタル情報の前記データベースへの登録は、
前記デジタル情報に含まれる左辺、関係演算子、右辺の順に表記される数式を抽出ワードとして受信するステップと、
該抽出ワードを前記第1の数式として演算して得られた前記第1の数式、及び前記第2の数式を前記デジタル情報と関連付けて登録するステップと、を有する
請求項13に記載の検索プログラム。
【請求項15】
前記第1の数式と同義である第2の数式を導出するステップは、
前記第1の数式を構文解析により該第1の数式を最小単位の要素に分解して階層的配置からなる第1の木構造モデルを構築するステップと、
所定の規則に従って前記第1の木構造モデルを移項処理し前記第1の数式と同義である第2の数式についての木構造モデルである第2の木構造モデルを構築するステップと、
前記第1の木構造モデル、及び前記第2の木構造モデルを文字列の集合体に変換するステップと、を有する
請求項13または請求項14に記載の検索プログラム。
【請求項16】
前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成するステップは、
前記検索ワードとしての前記第1の数式、及び移項処理した前記第2の数式をベクトル変換するステップと、
前記データベースに登録されている前記デジタル情報に含まれる数式とのコサイン類似度を算出するステップと、に基づいて前記検索結果を生成する
請求項13または請求項14に記載の検索プログラム。
【請求項17】
前記デジタル情報を検索結果として生成するステップは、
前記第1の数式に基づく検索結果と前記第2の数式に基づく検索結果とを同列に扱う場合には、前記第2の数式に基づいて前記データベースを参照して前記デジタル情報の検索結果を生成するステップを含む
請求項13または請求項14に記載の検索プログラム。
【請求項18】
前記デジタル情報を検索結果として生成するステップと、
前記第1の数式に基づく検索結果と前記第2の数式に基づく検索結果とに順位差を設ける場合には、前記第1の数式と前記第2の数式の両方に基づいて前記データベースを参照して前記デジタル情報の検索結果を生成するステップを含む
請求項13または請求項14に記載の検索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索サーバー、検索システム、及び検索プログラムに関する。
【背景技術】
【0002】
現在、ネットワーク上や情報端末内には膨大な量のWebページやファイル(以下、まとめて「デジタル情報」という。)が存在する。そして、これらデジタル情報は増加を続けており、利用者にとっての知識、情報の源として重要な存在と位置付けられている。このような環境下で、大量のデジタル情報を対象として、利用者の要求に応じた知識、情報を提供可能な精度の高い検索システムが必要となる。
【0003】
例えば、ネットワーク上のデジタル情報の検索においては、自然言語による検索方法が確立されている。具体的には、検索エンジンにより、事前にクローラにより収集されたWebページの情報がデータベースに登録されており、ユーザーインターフェースから検索用語が入力されると、その内容が検索アルゴリズムに従ってデータベースに問い合わされ、その応答が検索結果としてユーザーインターフェース上に表示される。そして、利用者は、ユーザーインターフェース上に表示された検索結果から任意のWebページを閲覧することで、必要な情報を取得することができる。
【0004】
ところで、数式は理工学分野を含め、あらゆる分野において用いられ、デジタル情報においても重要な情報である場合が多い。例えば、科学論文などにおいては、数式が多く含まれており、数式をキーワードとして、これら科学論文をはじめとする重要なデジタル情報の取得ができる検索エンジンの開発が要望されている。しかしながら、数式は独特かつ複雑な構造を持っているため、自然言語を対象とした従来の検索エンジンでは、これらの数式の構造を正確に捉えることができず、数式を対象とした検索は困難であった。
【0005】
このような問題について、近年では、ネットワーク上で数式を扱う方法として、MathML(Mathematical Markup Language)やLaTeX等の表記方法が開発されている。そして、これらの表記方法にWebブラウザや数式処理ソフトも対応しつつあり、このように数式を容易に表記できる環境が整えば、デジタル情報中に含まれる数式を対象として、数式の内容を表すメタデータの自動抽出が可能となり、数式を対象とした精度の高い検索を実行できることが期待される。
【0006】
しかしながら、MathMLは数式をXML(eXtensible Markup Language)で表現するものであり、数式の構造情報を保持した表記であるが、その表記方法が長文となることから、利用者の入力負担が大きいため広く普及していないのが現状である。
【0007】
一方、LaTeXは、数式を文字列として扱うため、一般的な検索エンジンにも容易に実装できると考えられている。しかしながら、LaTeXは、あくまでも数式を文字列として捉えるため、例えば数式「a+b=c」を検索対象として例にとると、「a+b=c」を含むデジタル情報を抽出することはできるが、数式上は同義である「b+a=c」や「a+b-c=0」は、文字列としては異なるため、検索対象外として判断されてしまい、必ずしも検索精度が高いものとはいえない。
【0008】
これらの問題に対して、例えば特許文献1には、数学的に同義な数式の組み合わせを検索するための検索システムが開示されている。特許文献1によれば、数学的に同義な数式の組み合わせの中の一つの数式を文字列として入力すれば、当該組合せの中の残りの数式の少なくとも一部とともに出力することができるため、検索対象の数式と関連する数式を漏れなく検索結果として表示することができるため、検索漏れを防止することができるものとなっている。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、前記した特許文献1に開示されている数式の検索システムは、システム内の辞書データに登録された数式のみを検索対象としている。即ち、特許文献1は、あくまでも学習用の辞書としての利用に留まるものであり、その検索範囲も、辞書データに事前に登録された範囲に限定されたものとなっている。
【0011】
また、特許文献1においては、等号を含む数式において、その文字列から把握される数式に加えて、右辺と左辺を入れ替えた式、右辺のみ、或いは左辺のみを検索対象として検索を行うため、数式上において同義な組合せの数式を検索できるものの、それだけでは必ずしも同義な組合せの全てを網羅することはできず、依然として検索精度が劣るものとなっている。
【0012】
本発明は、以上の点に鑑みて創案されたものであり、検索サーバー、検索システム、及び検索プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0013】
前記の目的を達成するために、本発明の検索サーバーは、情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信する受信部と、ネットワーク上及び前記情報端末内を巡回し、前記ネットワーク上のWebページ及び前記情報端末内のファイルを含むデジタル情報を収集する情報収集部と、該情報収集部により収集された前記デジタル情報が登録されたデータベースと、前記受信部で受信した前記検索ワードに含まれる数式を第1の数式と定義するとともに、該第1の数式を所定の規則に従って移項処理して該第1の数式と同義である第2の数式を導出する演算処理部と、前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成する検索結果生成部とを備える。
【0014】
また、本発明の検索システムは、情報端末と、該情報端末とネットワークを介して接続され前記情報端末に対して情報検索サービスを提供する検索サーバーと、を備える検索システムにおいて、前記検索サーバーは、前記情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信する受信部と、ネットワーク上及び前記情報端末内を巡回し、ネットワーク上のWebページ及び前記情報端末内のファイルを含むデジタル情報を収集する情報収集部と、該情報収集部により収集された前記デジタル情報が登録されたデータベースと、前記受信部で受信した前記検索ワードに含まれる数式を第1の数式と定義し、該第1の数式を所定の規則に従って移項処理し、前記第1の数式と同義である第2の数式を導出する演算処理部と、前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成する検索結果生成部とを備える。
【0015】
ここで、情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信する受信部を備えることにより、ユーザーインターフェースからユーザーが入力した検索ワードとしての数式を受信部で受信し、以後の演算処理、及び検索処理を実行することができる。
【0016】
また、ネットワーク上及び情報端末内を巡回し、ネットワーク上のWebページ及び情報端末内のファイルを含むデジタル情報を収集する情報収集部を備えることにより、ネットワーク上に公開されているWebページ、或いは情報端末内のファイルをデジタル情報として取得しデータベースに登録することができる。これにより、ユーザーインターフェースから入力された検索ワードと関連するWebページやファイルを抽出し、ユーザーに対して情報提供することができる。
【0017】
また、情報収集部により収集されたデジタル情報が登録されたデータベースを備えることにより、前記した通り、情報収集部により収集されたデジタル情報をデータベースに蓄積することで、検索ワードに関連する数式を含むデジタル情報をユーザーに対して情報提供することができる。
【0018】
また、受信部で受信した検索ワードに含まれる数式を第1の数式と定義するとともに、第1の数式を所定の規則に従って移項処理して第1の数式と同義である第2の数式を導出する演算処理部を備えることにより、ユーザーが入力した数式の構造を捉えることで検索精度を高めることができる。
【0019】
また、データベースに基づいて少なくとも第1の数式、及び第2の数式に関連するデジタル情報を検索結果として生成する検索結果生成部を備えることにより、演算処理部により演算処理された検索ワードに関連する数式に基づいてデータベースに問い合わせ、その結果、検索ワードに関連する数式を含むデジタル情報を抽出することができる。
【0020】
また、生成された検索結果は、通信部を介して情報端末に出力することで、検索結果生成部で生成されたデジタル情報の検索結果を、情報端末に出力することができる。これにより、ユーザーは、情報端末を介して検索結果を閲覧し、情報を収集することができる。
【0021】
また、受信部は、情報収集部で収集されたデジタル情報から抽出した左辺、関係演算子、右辺の順に表記される数式を抽出ワードとして受信し、演算処理部は、受信部で受信した抽出ワードを第1の数式として演算処理を実行し、データベースには、演算処理により得られた第1の数式、及び第2の数式をデジタル情報と関連付けて登録されている場合には、検索ワードとしての第1の数式に対する演算処理と同一の演算処理に基づいて、デジタル情報に含まれる数式を演算処理してデータベースに登録することができる。従って、第1の数式、及び第1の数式と同義の第2の数式も含めて検索対象とすることができるため、検索精度を高めることができる。
【0022】
また、演算処理部は、第1の数式を構文解析により最小単位の要素に分解したうえで階層的配置からなる第1の木構造モデルを構築する第1の構文解析部を有することにより、第1の数式を定数、変数、演算子、或いは関数等の最小単位の要素に分解して木構造モデルを構築することができる。これにより、第1の数式の構造を詳細に捉えることができる。
【0023】
また、演算処理部は、所定の規則に従って第1の木構造モデルを移項処理し第1の数式と同義である第2の数式についての木構造モデルである第2の木構造モデルを構築する第2の構文解析部を有することにより、第1の数式と第2の数式とを同義の数式として扱い、入力された検索ワードに対する検索精度を高めることができる。なお、移項処理における所定の規則とは、一般的な数式上の規則であり、例えば一方の辺から他方の辺に移項した際の符号の変換や、関係演算子の変換などを意味する。
【0024】
また、演算処理部は、第1の木構造モデル、及び第2の木構造モデルを文字列の集合体に変換する文字列変換部を有することにより、第1の木構造モデル、及び第2の木構造モデルとして表現された第1の数式、及び第2の数式のそれぞれについて、その類似度の尺度となる文字列の集合体に変換することができる。
【0025】
また、第2の構文解析部は、第1の数式の右辺にある数、文字、式の少なくとも一部を左辺に移項し、或いは第1の数式の左辺にある数、文字、式の少なくとも一部を右辺に移項して第1の数式と同義である第2の数式を構築する場合には、数式において同義な複数のバリエーションを検索ワードとして扱い、さらにはデータベースに登録することができるため、検索精度を高めることができる。
【0026】
また、第2の構文解析部は、第1の数式に対する移項処理後の左辺、または右辺にある文字列から共通する文字列を抽出し、共通する文字列を一の文字に置き換えた数式を第2の数式と定義する場合には、所定の文字を置換することによって得られた数式について、第1の数式と同義な第2の数式として扱うことができるため、複数の数式のバリエーションを検索ワードとして扱い、さらにはデータベースに登録することができるため、検索精度を高めることができる。
【0027】
また、演算処理部は、受信部で受信した検索ワードとしての第1の数式、及び第1の数式を移項処理した第2の数式をベクトル変換し、データベースに登録されているデジタル情報に含まれる数式とのコサイン類似度を算出する類似度算出部を有する場合には、数式を特徴量としてのベクトルに変換することで、複雑な演算処理を行うことなく、検索ワードに基づく第1の数式と第2の数式とに関連する数式を含むデジタル情報をデータベースから抽出することができる。
【0028】
また、データベースは、情報収集部により抽出されデジタル情報のそれぞれに固有のコンテンツIDが付与され、コンテンツID毎にデジタル情報のURL、ファイル名、及びスニペット情報のうち、少なくとも1つ以上を含む情報が第1の数式と第2の数式とともに登録されている場合には、デジタル情報に関する所定の情報がコンテンツIDとともにインデックス登録されるため、データベースの容量を少なくし、目的のデータをデータベースから効率的に取り出すことができる。
【0029】
また、データベースは、第1の数式、及び第2の数式を含む複数の数式のそれぞれに固有の数式IDが付与され、数式IDと数式を含むデジタル情報とが対応付けて登録されている場合には、数式毎に付与された数式IDを、デジタル情報と対応付けてインデックス登録することができるため、データベースの容量を少なくし、目的のデータをデータベースから効率的に取り出すことができる。
【0030】
また、データベースは、文字列変換部により展開された数式の最小単位である各要素と、該要素を含む数式の数式IDとが対応付けて登録されている場合には、数式の各要素と、該要素を含む数式の対応関係をデータベース化することができるため、該対応関係を参照して、必要なデジタル情報を効率的に抽出することができる。
【0031】
また、検索結果生成部は、第1の数式に基づく検索結果と第2の数式に基づく検索結果とを同列に扱う場合には、第2の数式に基づいてデータベースを参照してデジタル情報の検索結果を生成する場合には、関連するデジタル情報を、移項処理後の第2の数式に基づいて検索することで、第1の数式も含めて網羅的に検索することができる。
【0032】
さらに、検索結果生成部は、第1の数式に基づく検索結果と第2の数式に基づく検索結果とに順位差を設ける場合には、第1の数式と第2の数式の両方に基づいてデータベースを参照してデジタル情報の検索結果を生成する場合には、検索精度を高めることができることに加え、さらに検索結果を第1の数式に基づく検索結果と第2の数式に基づく検索結果との間で順位付けを行うことができる。
【0033】
また、情報収集部は、収集したデジタル情報を所定の基準に基づいてフィルタリングし、検索結果を序列するフィルタリング部を有する場合には、悪意のあるWebページ等を検索結果の上位に序列されないようにすることで、検索精度を高めることができる。
【0034】
前記の目的を達成するために、本発明の検索プログラムは、情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信するステップと、ネットワーク上及び前記情報端末内を巡回し、ネットワーク上のWebページ及び前記情報端末内のファイルを含むデジタル情報を収集してデータベースに登録するステップと、前記検索ワードに含まれる数式を第1の数式と定義し、該第1の数式を所定の規則に従って移項処理し、前記第1の数式と同義である第2の数式を導出するステップと、前記データベースに基づいて、前記第1の数式、及び前記第2の数式に関連する前記デジタル情報を検索結果として生成するステップとをコンピュータに実行させるものである。
【0035】
ここで、情報端末から、左辺、関係演算子、右辺の順に表記される数式を含む検索ワードを受信するステップを備えることにより、ユーザーインターフェースからユーザーが入力した検索ワードとしての数式を検索ワードとして受信し、検索エンジンにおける検索処理を実行することができる。
【0036】
また、ネットワーク上及び情報端末内を巡回し、ネットワーク上のWebページ及び情報端末内のファイルを含むデジタル情報を収集してデータベースに登録するステップを備えることにより、入力された検索ワードに関連する数式を含むデジタル情報をユーザーに対して情報提供することができる。
【0037】
また、検索ワードに含まれる数式を第1の数式と定義し、第1の数式を所定の規則に従って移項処理し、前記第1の数式と同義である第2の数式を導出するステップを備えることにより、ユーザーが入力した数式の構造を捉えて検索精度を高めることができる。
【0038】
また、データベースに基づいて、第1の数式、及び第2の数式に関連するデジタル情報を検索結果として生成するステップを備えることにより、演算処理された検索ワードに関連する数式に基づいてデータベースに問い合わせ、その結果、検索ワードに関連する数式を含むデジタル情報を抽出することができる。そして、生成された検索結果は、情報端末に出力することで、ユーザーは、情報端末を介して検索結果を閲覧し、情報を収集することができる。
【0039】
また、デジタル情報のデータベースへの登録は、デジタル情報に含まれる左辺、関係演算子、右辺の順に表記される数式を抽出ワードとして受信するステップと、抽出ワードを第1の数式として演算して得られた第1の数式、及び第2の数式をデジタル情報と関連付けて登録するステップとを有する場合には、検索ワードとしての第1の数式に対する演算処理と同一の演算処理に基づいて、デジタル情報に含まれる数式を演算処理してデータベースに登録することができる。従って、第1の数式と、第1の数式と同義の第2の数式も含めて検索対象とすることができるため、検索精度を高めることができる。
【0040】
また、第1の数式と同義である第2の数式を導出するステップは、第1の数式を構文解析により第1の数式を最小単位の要素に分解して階層的配置からなる第1の木構造モデルを構築するステップを有することにより、第1の数式に含まれる定数、変数、演算子、或いは関数等の最小単位の要素に分解して木構造モデルを構築するこができる。これにより、第1の数式の構造を詳細に捉えることができる。
【0041】
さらに、第1の数式と同義である第2の数式を導出するステップは、所定の規則に従って第1の木構造モデルを移項処理し第1の数式と同義である第2の数式についての木構造モデルである第2の木構造モデルを構築するステップを有することにより、数式において同義な複数のバリエーションを検索ワードとして扱うことで、検索精度を高めることができる。
【0042】
また、第1の木構造モデル、及び第2の木構造モデルを文字列の集合体に変換するステップを備えることにより、木構造モデルとして表現された第1の数式、及び第2の数式について、その類似度の尺度となる文字列の集合体に変換することができる。
【0043】
また、データベースに基づいて、第1の数式、及び第2の数式に関連するデジタル情報を検索結果として生成するステップは、検索ワードとしての第1の数式、及び移項処理した第2の数式をベクトル変換するステップと、データベースに登録されているデジタル情報に含まれる数式とのコサイン類似度を算出するステップとに基づいて、検索結果を生成する場合には、数式をベクトルとして扱うことで、複雑な演算処理を行うことなく、検索ワードに基づく第1の数式と第2の数式とに関連する数式を含むデジタル情報をデータベースから抽出することができる。
【0044】
また、デジタル情報を検索結果として生成するステップは、第1の数式に基づく検索結果と第2の数式に基づく検索結果を同列に扱う場合には、第2の数式に基づいて前記データベースを参照してデジタル情報の検索結果を生成するステップを含む場合には、関連するデジタル情報を、移項処理後の第2の数式に基づいて検索することで、第1の数式も含めて網羅的に検索することができる。
【0045】
また、デジタル情報を検索結果として生成するステップは、第1の数式に基づく検索結果と第2の数式に基づく検索結果とに順位差を設ける場合には、第1の数式と第2の数式の両方に基づいてデータベースを参照してデジタル情報の検索結果を生成するステップを含む場合には、検索精度を高めることができることに加え、さらに検索結果を第1の数式に基づく検索結果と第2の数式に基づく検索結果との間で順位付けを行うことができる。
【発明の効果】
【0046】
本発明に係る検索サーバー、検索システム、及び検索プログラムは、数式の構造を詳細に反映し、検索ワードとしての数式を含むデジタル情報の検索精度を高めることができるものとなっている。
【図面の簡単な説明】
【0047】
【
図1】本発明の第1の実施形態に係る検索システムの全体構成を示す図である。
【
図2】数式の木構造モデルの一例を示す概念図である。
【
図3】数式の木構造モデルの一例を示す概念図である。
【
図4】数式の木構造モデルの一例を示す概念図である。
【
図5】文字列変換部により木構造モデルから文字列の集合体へ変換した状態を示す図である。
【
図7】本発明の第1の実施形態に係る検索プログラムにおいて実行される登録時の処理を示すフロー図である。
【
図8】本発明の第1の実施形態に係る検索プログラムにおいて実行される検索時の処理を示すフロー図である。
【
図9】本発明の第3の実施形態に係る検索システムの全体構成を示す図である。
【
図10】本発明の第2の実施形態に係る検索プログラムにおいて実行される登録時の処理を示すフロー図である。
【
図11】本発明の第2の実施形態に係る検索プログラムにおいて実行される検索時の処理を示すフロー図である。
【発明を実施するための形態】
【0048】
以下、検索サーバー、検索システム、及び検索プログラムに関する本発明の実施の形態について、図面を参照しながら説明し、本発明の理解に供する。本発明の実施形態は、例えば、数式の構造を詳細に反映し、検索ワードとしての数式を含むデジタル情報の検索精度を高めることができる検索サーバー、検索システム、及び検索プログラムに係るものである。
【0049】
1 第1の実施形態
まず、本発明の第1の実施形態に係る検索システム1の全体構成について
図1を用いて説明する。第1の実施形態に係る検索システム1は、例えば左辺、関係演算子、右辺の順に表記された文字列から構成された数式を検索ワード(検索クエリ)として検索するためのシステムであり、ユーザーが使用する少なくとも一つの情報端末10と、Webサーバー20、及び検索サーバー30とを備え、これら情報端末10とWebサーバー20、及び検索サーバー30とが通信ネットワーク40を通じて双方向に通信可能に接続されている。なお、情報端末10、Webサーバー20、及び検索サーバー30は、必ずしも別々の構成である必要はなく、例えば各サーバーと情報端末10を1つのシステムにして構成することもできる。
【0050】
ここで、通信ネットワーク40は、一般的にはIPベースのコンピュータネットワークを含むが、これに限定されるものではない。例えば、通信ネットワーク40は、ノード間通信を可能とする、あらゆるプロトコルの通信ネットワークを適用することができる。
【0051】
なお、検索システム1は、通信ネットワーク40上のデジタル情報の検索ツールとして適用できることは勿論のこと、例えば情報端末10内のローカルエリア内のファイル検索のための検索ツールとしても適用可能である。なお、以下では説明の便宜上、通信ネットワーク40上におけるデジタル情報の検索について主に説明する。
【0052】
情報端末10は、例えば、ユーザが所有するコンピューティングデバイスであり、パーソナルコンピュータ、タブレット端末、或いは携帯端末など、数式を入力可能な端末である。情報端末10は、通信ネットワーク40を介して、検索エンジンとしての検索サーバー30にアクセスするための、ユーザインターフェースとして機能するビューワを含む。ビューワは、例えば、Webブラウザであり得るが、これに限られるものではない。ユーザーは、例えば、SSLなどの通信技術を利用することによって、通信ネットワーク40を介して、Webサーバー20、及び検索サーバー30との通信セッションを構築する。
【0053】
なお、通信ネットワーク40に接続されるサーバーとしては、Webサーバー20、及び検索サーバー30のみである必要はなく、その他、必要なサーバーを追加することもできる。また、Webサーバー20と検索サーバー30を一体化し、一つの管理サーバーとして機能させることも可能である。
【0054】
Webサーバー20は、WWW(World Wide Web)等のドキュメントシステムにおいて、HTML(Hyper Text Markup Language)ファイルや画像ファイル、音楽ファイルなどの情報送信を行うものである。
【0055】
検索サーバー30は、
図1に示される通り、通信部31、受信部32、演算処理部33、検索結果生成部34、及びデータベース(DB)35から主に構成されている。また、検索サーバー30は、例えばインデックス型検索エンジンであり、インデックスの作成、及び更新の機能と、該インデックスに基づくデータベース検索の機能を有する。そして、検索サーバー30のデータベース35は、情報収集部36と、インデクサ37が接続されている。以下、検索サーバー30のハードウェア構成について詳細に説明する。
【0056】
[通信部]
通信部31は、通信ネットワーク40を介して他の装置(本発明の実施形態では、
図1の情報端末10)との間で通信を行う制御装置であり、情報端末10から送信される検索ワードを受信、或いは検索結果生成部34で生成された検索結果を情報端末10に送信する送受信機能を有する。
【0057】
[受信部]
受信部32は、ユーザーが情報端末10を介して入力した数式を含む検索ワードを通信部31を介して受信する。受信部32は、情報端末10から検索ワードが送信されると、適宜送信されてくる検索ワードを受信する。なお、通信部31に受信部32の機能を備えるようにしてもよい。
【0058】
さらに受信部32は、情報収集部36で収集されたWebページから所定の数式を抽出し、抽出ワードとして受信する。なお、受信部32において抽出ワードを受信する場合は、データベース35の定期的なアップデートに同期して受信することができる。
【0059】
ここで受信部32で受信する数式は、LaTeX形式やMathML(Mathematical Markup Language)形式などの公知の記述方式で記載された数式は勿論のことで、画像データとしての数式についても受信することが可能であり、その場合、画像データをテキストデータに変換するための画像処理部を別途設けることができる。
【0060】
[演算処理部]
演算処理部33は、所定のオペレーティングシステム(OS)上において、本発明の実施形態の検索プログラムが実行されるCPUであり、構文解析部331、及び文字列変換部332から構成されている。
【0061】
<構文解析部>
構文解析部331は、前記した所定の形式からなる数式を構文解析して木構造モデルを構築する機能を有しており、第1の構文解析部331aと第2の構文解析部331bから構成されている。なお、構文解析部331のハードウェアの構成として、第1の構文解析部331aと第2の構文解析部331bがそれぞれ別体で構成されている必要はない。一つの構文解析部331内に第1の構文解析部331aと第2の構文解析部331bの機能を一体化させるようにしてもよい。
【0062】
一般的に、数式をLaTeX等のように文字列として扱う場合には、文章と同列に扱うことができるため、テキストベースの従来型の検索エンジンにも容易に実装することができる。しかしながら、前記した通り数式を文字列として扱うと、例えば「a+b=c」と「b+a=c」とは数式上の意味は同じではあるが、文字列としては異なるため、従来の検索エンジンにおいては同義のものとして扱うことができない。そこで、構文解析部331により、数式を木構造モデルに展開することで、数式の構造を詳細に捉え、数式上の意味が同じ数式を同義に扱うことで検索精度を高めることが可能となる。これにより、例えば、数式として「a-b=c」を検索ワードとして入力することで、同時に「a-b-c=0」の数式も検索対象とすることができる。
【0063】
まず、第1の構文解析部331aでは、受信部32で受信した検索ワード、或いは抽出ワードに含まれる数式を第1の数式と定義して構文解析する。この構文解析により、第1の数式に含まれる定数、変数、関係演算子、或いは関数等の最小単位の要素に分解して根ノードから葉ノードへ階層的に配置された木構造モデル(以下、第1の数式に基づいて構築された木構造モデルを「第1の木構造モデル」とよぶ。)を構築する。
【0064】
第2の構文解析部331bは、第1の構文解析部331aで構築された第1の木構造モデルを所定の数式ルールに従って移項処理し、第1の数式と同義である第2の数式に対応する木構造モデル(以下、第2の数式に基づいて構築された木構造モデルを「第2の木構造モデル」とよぶ。)を構築する。
【0065】
なお、移項処理における数式ルールとは、例えば、以下の(1)~(4)に示すような数式上の規則である。(1)すべての変数を左辺(又は右辺)に移項する、(2)項の並び順はアルファベット順にする、(3)項の中の文字の並び順はアルファベット順にする、(4)最も左(又は右)にある項がマイナス(-)のときには、両辺に「-1」を乗算する、といった数式ルールを定義しておき、この数式ルールの概念に沿って、第1の木構造モデルを移項処理することができる。
【0066】
ここで、前記した移項処理のための数式ルールは、前記した(1)~(4)に限定されるものではなく、適宜変更することが可能である。また、数式ルールによっては、第1の数式を移項した数式として、第2の数式のみならず、2つ以上の数式を移項後の数式として定義し、それぞれの木構造モデルを構築するようにしてもよい。
【0067】
本発明の実施形態においては、数式の構文解析に用いる構文解析器としては、公知のアーリー法を採用するが、例えばチャート法、一般化LR法による構文解析、Maximum Spanning Treeを用いた係り受け解析など、一般的な手法から適宜選択できるものとする。そして、構文解析部331では、構文解析に基づいて所定のルールを抽出したうえで演算処理を行い、ルールの集合を得る。なお、ここでのルールとは、木構造モデルを構築するための文法であり、係るルールに基づいて、根ノードを頂点とする階層的配置からなる木構造モデルを得ることができる。
【0068】
例えば、y=0を木構造モデルで表現すると、
図2のように表すことができる。このとき「=」のノードの子ノードは、「y」のノードと「0」のノードの2つから構成される。「y」のノードと「0」のノードには子ノードはなく、親ノードが「=」のノードとなる。そして「=」のノードは木構造の最上位にあり、親ノードを持たないので根ノードとなる。
【0069】
また、例えば、「a=b>c=d」を
図2に示した方法で表現すると、それぞれ
図3(a)、
図3(b)のようになる。ここで、根ノードを表す「start」ノードを設定することもできる。なお、根ノードを表す名前について、「root」ではなく「start」を用いる理由は、「root」が数学で平方根の意味で使用されており、それとの区別を図るためである。そして、新たに設定した「start」ノードを用いて前記した「a=b>c=d」を表現すると、
図4に示す木構造モデルとなる。
【0070】
以上のように第1の構文解析部331aでは、検索ワード或いは抽出ワードとして受信した数式を第1の数式と定義し、第1の数式に含まれる文字列を最小単位の要素に分解したうえで、階層的配置された第1の木構造モデルを構築することができる。また、第2の構文解析部331bでは、第1の木構造モデルを移項処理して第1の数式と同義である第2の数式について第2の木構造モデルを構築することができる。
【0071】
また、構文解析が完了した数式に対して、以下のA~Iに示すような任意のルールを適用させることで、さらに検索精度を高めるようにすることもできる。なお、以下のA~Iは例示であり、これらに限定されるものではなく、さらに追加のルールを追加適用することが可能である。
【0072】
A:変数
束縛変数には他の文字を使っても論理に全く影響を与えることがない。例えば、式(1)と式(2)では、束縛変数が「i」と「k」の違いがあるものの、何れも同じことを意味している。しかし、検索ワードとし
ての文字が違えば、互いに違う数式として扱われるため検索精度が落ちる。そこで、束縛変数のみの相違の数式については、互いに同義の数式であるというルールを登録しておくことで、束縛変数が異なる場合でも互いに同義の数式として検索対象とすることができる。
【数1】
【数2】
【0073】
B:文字の置換
例えば、「a(b+c)+d(b+c)=e」について、(b+c)を「Y」と定義すると、「aY+dY」と表記できる。このように、数式に含まれる共通の文字列を別の一の文字に置換できるルールを登録しておくことで、a(b+c)+d(b+c)を検索したときに、「aY+dY=e」も検索対象とすることが可能となる。
【0074】
C:正規化
例えば、ユーザーが「0.999」という数字を含む数式を含むWebページを検索するときには、ユーザーが検索ワードの数式に含まれる数字として「0.99」と入力すると、数字が完全一致しないため、「0.999」のWebページは表示されないことになる。そこで、数式の構文解析が終わったあとで、必要に応じて正規化を行うようにすることで、ユーザーが入力した「9」の個数に限らず同一の検索結果を表示することが可能となる。
【0075】
D:展開式
例えば、前記した式(1)を展開すると、「x1+x2+・・・xn」となる。即ち、式(1)と「x1+x2+・・・xn」は等価である。このように、展開前後の式が同義のものであるというルールを登録しておくことで、数式の表記が異なる場合でも互いに同義の数式として検索対象とすることが可能となる。
【0076】
E:近似形式
例えば、「y=ax2」と「E=mc2」は文字列として異なるが、数式の形は同じであるため、このように数式中の各文字列を他の共通の文字に置換した場合に、同一の数式となる場合には互いに同義の数式として検索対象とすることが可能である。
【0077】
F:関係演算子の変換
例えば、両辺を入れ替えたときに不等号の向きが変わる数式として、「a>b」は「b<a」、「A⊂B」は「B⊃A」として検索対象とすることが可能である。
【0078】
G:符号の変換
例えば、「+」と「-」や「×」と「÷」のように、移項したときの符号の変換を定義することで、「a+b=c+d」は「a+b-c=d」、「a=b÷c」は「a×c=b」として検索対象とすることが可能である。
【0079】
H:0の補完
例えば、「a=b」の右辺の「b」を左辺に移項したときに、右辺に何も残らない場合には、「a-b=0」のように、「0」を補完して検索対象とすることが可能である。
【0080】
I:項の並べ方
例えば、「bx+ax2+c」と「c+bx+ax2」については、「ax2+bx+c」のように降べきの順など、一意に定まる並べ方で並べて、これらを含めて検索対象とすることが可能である。
【0081】
<文字列変換部>
構文解析部331により、第1の数式、及び第2の数式のそれぞれの構造を詳細に捉える木構造モデルの構築が可能となる。文字列変換部332は、木構造モデルの数式を分解して文字列の集合体を生成する機能を有している。
【0082】
木構造モデルの数式の分解には、公知の「Subpath Set」の手法に基づいて分解することができる。
図5には、文字列変換部332による木構造モデルから文字列の集合体への変換を示す一例を示す。
【0083】
例えば、数式として「y=ax+b」を定義した場合に、
図5(a)は構文解析部331により構築された数式の木構造モデルを示し、
図5(b)はこの木構造モデルを文字列変換部332によりにより展開されたSubpath Setを示している。なお、
図5(a)では、便宜的に「=」を根ノードとして表記している。
図5のように、木構造モデルを「/」で区切った合計19個の要素を持つ文字列の集合体に分解することで、木構造モデルをデータベース35に登録可能な文字列の集合体に変換することが可能となる。
【0084】
[情報収集部]
情報収集部36は、Web上の多種多様なデジタル情報(例えば、Webページ、文書、画像、プログラムなど)を自動的に収集するための自動巡回エージェントプログラムとしてのクローラとして機能する。例えば、情報収集部36は、Webページ内のリンクを辿りながら、Web上のサイトを周期的に訪問して、サイト内にあるデジタル情報を収集する。本発明の実施形態において情報収集部36は、特定の専門分野(理工分野)に属するサイト内のデジタル情報を収集するものであってもよい。また、情報収集部36は、収集したデジタル情報を図示しない記憶装置に一時的に記憶させるようにしてもよい。
【0085】
[インデクサ]
インデクサ37は、収集されたデジタル情報をデータベース35に登録するとともに、該デジタル情報に含まれるテキストデータを解析し、該解析の結果に従ってインデックスを作成、更新する機能を有する。本発明の実施形態のインデクサ37は、概略的には、デジタル情報に含まれるテキストデータをいくつかの要素に分解し、これらに基づいてテーブルデータを展開、更新していく。
【0086】
更新されたテーブルデータは、新たな検索対象となり、その後、インデクサ37は更新されたテーブルデータに基づいて、所定の手法(例えばN-gram手法など)で見出し語を切り出して、これを収集したデジタル情報と関連付けてインデックスを作成、更新する。また、インデクサ37は、収集したデジタル情報とテーブルデータとを関連付けて、データベース35に登録する。
【0087】
[データベース]
データベース35は、情報収集部36によって収集されたインデックスを含むデジタル情報がテーブルデータとして格納されている。
図6は、本発明の実施形態に係る検索システム1におけるデータベース35の一例を説明するための図である。データベース35には、主に「page」、「inverted index」、「path dictionary」の3つのテーブルデータが格納されている。
【0088】
図6(a)は、テーブルデータとしての「page」に格納されている情報の一例を示す。「page」には数式を含むWebページの基本情報が格納されており、例えば、デジタル情報を識別するコンテンツID(url ID)、デジタル情報のURL、Webページに記載されている数式(exprs)、Webページのタイトル(title)、及びWebページの内容(content)が関連付けて格納されている。
【0089】
また、
図6(b)には、テーブルデータとしての「inverted index」に格納されている情報の一例を示す。「inverted index」には検索結果を表示するために必要な情報が格納されており、例えば、数式を識別する数式ID(expr id)、Webページに記載されている数式(expr)、この数式を含むWebページ情報として、Webページで使用されている言語や「page」に含まれるコンテンツID(url ID)が関連付けて格納されている。なお、
図6(b)の例では、数式はMathML形式で格納されているが、数式の表記形式はMathMLに限定されるものではない。
【0090】
また、「inverted index」の検索結果を表示するために必要な情報(infо)が格納されている領域には、さらに格納する情報として、数式やキーワードのWebページ内における出現位置、最終更新日時など、検索結果の表示およびランキングに必要な情報を格納することもできる。
【0091】
また、
図6(c)には、テーブルデータとしての「path dictionary」に格納されている情報の一例を示す。「path dictionary」には、「page」、或いは「inverted index」に格納されている数式を分解した各要素(expr path)と、そのもととなる数式(expr id)が関連付けて格納されている。
【0092】
ここで、必ずしも、データベース35のデータ構造としては、前記したものに限定されるものではなく、データ構造については適宜変更することが可能である。
【0093】
[検索結果生成部]
検索結果生成部34は、情報端末10から入力された検索ワードを受け付けて、インデックスを検索し、その検索結果に基づいてデータベース35から該当するデジタル情報を抽出し、これを検索結果として情報端末10に提供する。検索結果生成部34は、例えば、検索ワードと抽出したデジタル情報との間の適合度を所定の手法により算出し、その算出結果に応じて抽出したデジタル情報を順位付けした検索結果が提供される。
【0094】
なお、本発明の実施形態では、検索結果生成部34は、情報端末10から入力された検索ワードに対する検索結果を、通信部31から情報端末10に直接送信しているが、これに限られるものではない。例えば、検索結果生成部34は、検索結果を、所定のインターフェースを介して、他のアプリケーションプログラムに渡し、他のアプリケーションプログラムにより該検索結果に対する所定の情報処理を行った結果を情報端末10に送信するようにしてもよい。
【0095】
また、情報収集部36には、収集したデジタル情報をフィルタリングして、ノイズを除去するフィルタリング機能を設けることもできる。例えば、1つのWebページに大量の数式が含まれている場合、構造に欠陥のある数式が含まれている場合、式移項が誤っている数式が含まれている場合には、フィルタリング機能により、それらの情報を含むWebページを検索結果から排除する、或いは検索結果の下位に表示されるようにフィルタリングすることが可能である。
【0096】
以上が本発明の第1の実施形態に係る検索システム1の主な構成である。次に第1の実施形態に係る検索システム1において実現される検索プログラムについて
図7、
図8のフロー図に基づいて説明する。
【0097】
[登録処理フロー]
検索サーバー30では、情報端末10から入力された検索ワードに基づいて、Webページの検索が実行可能なように、事前にWebページに関するデジタル情報がデータベース35に登録される。データベース35へのデジタル情報の登録時は、
図7の処理フローに従って実行される。
【0098】
<S101:数式の取得>
まず、検索サーバー30は、情報収集部36よって収集されたデジタル情報に含まれるテキスト文を受信する。例えば、検索サーバー30は、情報収集部36によって収集されたデジタル情報を受信すると、デジタル情報に含まれるテキスト文を図示しないテキスト処理部において形態素解析を行い、テキスト文をトークン化、即ち、テキスト文から複数のトークンを切り出し、その中から数式を抽出する。
【0099】
<S102:抽出ワードの受信>
S101において抽出された数式は、抽出ワードとして受信部32に送信され、以後、演算処理部33による演算処理に供される。
【0100】
<S103:第1の構文解析>
受信部32で受信した抽出ワードは第1の構文解析部331aに送信される。第1の構文解析部331aに入力された数式は第1の数式として定義され、係る第1の数式に対する構文解析が実行されて第1の木構造モデルが構築される。構文解析の処理は前記した通りであるため、ここではその説明を省略する。
【0101】
<S104:第2の構文解析>
S103で構築された第1の木構造モデルは、第2の構文解析部331bにおいて、所定の数式ルールに従って移項処理され、第1の数式と同義の第2の数式に対応する第2の木構造モデルが構築される。
【0102】
<S105:文字列変換>
S103、及びS104の処理により得られた第1の木構造モデル、及び第2の木構造モデルは、そのままの形態ではデータベース35に登録することができない。そこで、S105では、これら第1の木構造モデルと第2の木構造モデルを文字列変換部332により文字列の集合体に変換する。文字列の集合体への変換は、前記した通り、公知の「Subpath Set」の手法により実行される。
【0103】
<S106:データベースへの登録>
S106において、第1の木構造モデル、及び第2の木構造モデルがそれぞれ文字列の集合体に変換されると、情報収集部36によりこれら文字列の集合体の内容が解析される。情報収集部36の解析結果に従って、文字列の集合体がいくつかの要素に分解され、これらに基づいて、データベース35に格納されている「page」、「inverted index」、「path dictionary」の3つのテーブルデータが更新される。
【0104】
以上が、検索サーバー30におけるデジタル情報のデータベース35への登録処理プログラムである。なお、データベース35への登録の際には、検索結果の表示順序をランキングするための、ランキングに必要な情報も同時に登録することで、検索結果の序列を設けることができる。
【0105】
[検索処理フロー]
次に、情報端末10から入力された検索ワードに基づいて、データベース35に登録されているWebページの検索を実行する際の処理フローについて説明する。Webページの検索は、
図8の処理フローに従って実行される。
【0106】
<S201:検索ワードの受信>
情報端末10から入力された数式を含む検索ワードは検索サーバー30に送信され、受信部32で受信される。
【0107】
<S202:第1の構文解析>
受信部32で受信した検索ワードは第1の構文解析部331aに送信される。なお、以後の演算処理は、前記した[登録処理フロー]と同じである。即ち、第1の構文解析部331aに入力された第1の数式に対しては構文解析が実行され、第1の木構造モデルが構築される。
【0108】
<S203:第2の構文解析>
S202で構築された第1の木構造モデルは、第2の構文解析部331bにおいて、所定の数式ルールに従って移項処理され、第1の数式と同義の第2の数式に対応する第2の木構造モデルが構築される。
【0109】
<S204:文字列変換>
S202、及びS203の処理により得られた第1の木構造モデル、及び第2の木構造モデルは、前記した公知の「Subpath Set」の手法により文字列の集合体に変換される。
【0110】
<S205:検索結果の生成>
S204で文字列に変換された第1の数式、及び第2の数式について、データベース35との照合によりデータベース35に登録されているデジタル情報から、類似度の高いデジタル情報が抽出され、検索結果として生成される。生成された検索結果は、ユーザーの情報端末10に表示される。
【0111】
なお、前記した登録処理フローで説明した通り、第1の数式、及び移項処理した第2の数式の何れもデータベース35に登録がされている。従って、例えば第1の数式と第2の数式による検索結果を同列に扱う場合には、第2の数式に対応する第2の木構造モデルについてのみ文字列変換が行われ、第2の数式に基づいてデータベースに対して問い合わせが行われる。
【0112】
一方、例えば第1の数式と第2の数式による検索結果に対して順位付けを行う場合には、第1の数式に対応する第1の木構造モデルと、第2の数式に対応する第2の木構造モデルの両方について文字列変換が行われ、第1の数式、及び第2の数式に基づいてデータベースに対して問い合わせが行われる。
【0113】
2 第2の実施形態
次に、本発明の第2の実施形態に係る検索システム1aについて説明する。なお、以下の説明においては、第1の実施形態と共通する構成については共通の符号を付するとともに、重複する説明については省略する。
【0114】
まず、第2の実施形態に係る検索システム1aにおける検索サーバー30aの構成を
図9に示す。
図9に示す通り、第2の実施形態に係る検索システム1aは、検索サーバー30aのうち演算処理部33aの構成が第1の実施形態と異なり、それ以外の構成、及び処理フローは同一である。
【0115】
検索サーバー30aの演算処理部33aは、第1の実施形態における構文解析部331、及び文字列変換部332に代えて移項処理部333、ベクトル変換部334、及び類似度算出部335が設けられている。そして、受信部32で受信したテキストベースの検索ワード、或いは抽出ワードは、まず移項処理部333に入力され、移項処理部333に入力された数式は第1の数式として定義される。そして、移項処理部333においては第1の数式を移項処理して第2の数式を得ることができる。
【0116】
次に、第1の数式、及び移項処理により得られた第2の数式は、ベクトル変換部334においてベクトル化される。このベクトル化により、第1の数式と第2の数式を含む各数式はそれぞれの特徴を特徴量として数値化することができる。
【0117】
なお、数式のベクトル化を行う方法は特に限定されるものではなく、例えば文字の出現と非出現とを2値(「1」、「0」)にて表す方法や、TF-IDF(Term Frequency-Inverse Document Frequency)等を用いてもよい。また、数式に含まれる文字列のそれぞれの特徴量として、文字の出現頻度を用いる方法の他に、数式に含まれる文字列の確率値を用いる方法も採用することができる。
【0118】
類似度算出部335では、検索ワードとしての数式と、データベース35に登録されている数式との類似度を、ベクトル変換部334で求めたベクトルを用いて計算する。具体的には、第1の数式または第2の数式f
1と、データベース35に登録されている数式f
2について、式(3)に基づいて正規化する。なお、f
1は検索ワードに含まれる数式,f
2はデータベース35に登録されている数式、Φは数式をベクトルに変換する関数,Fは類似度を計算する関数である。
【数3】
【0119】
そして、正規化後のベクトルf
1、f
2の内積を求めることにより、ベクトルf
1、f
2間のコサイン類似度を式(4)に基づいて演算する。
【数4】
【0120】
以上が第2の実施形態に係る検索システム1のハードウェア構成である。次に、係る検索システム1の検索サーバー30aで実行される演算処理について説明する。
【0121】
[登録処理フロー]
まず、第2の実施形態に係るデータベース35へのデジタル情報の登録時は、
図10の処理フローに従って実行される。
【0122】
<S301:数式の取得>
検索サーバー30aは、情報収集部36よって収集されたデジタル情報に含まれるテキスト文を受信する。
【0123】
<S102:抽出ワードの受信>
テキスト文から所定の数式を抽出し、抽出した数式は抽出ワードとして受信部32に送信され、以後、演算処理部33aによる演算処理に供される。
【0124】
<S303:移項処理>
受信部32で受信した抽出ワードは演算処理部33aに送信され、抽出ワードを第1の数式として定義される。そして、先ずは移項処理部333において第1の数式が所定の規則に従って移項処理され、移項処理後の第2の数式が得られる。
【0125】
<S304:ベクトル変換>
第1の数式、及び第2の数式はベクトル変換部334において、それぞれの特徴を特徴量としてベクトル化される。
【0126】
<S305:データベースへの登録>
S304において、ベクトル化された各数式がデータベース35に登録されると、データベース35に格納されている「page」、「inverted index」、「path dictionary」の3つのテーブルデータが更新される。
【0127】
以上が、検索サーバー30aにおけるデジタル情報のデータベース35への登録処理プログラムである。なお、第1の実施形態と同様に、データベースへの登録(S305)の際には、検索結果の表示順序をランキングするための、ランキングに必要な情報も同時に登録することで、検索結果の序列を設けることができる。
【0128】
[検索処理フロー]
次に、情報端末10から入力された検索ワードに基づいて、データベース35に登録されているWebページの検索を実行する際の処理フローについて説明する。Webページの検索は、
図11の処理フローに従って実行される。
【0129】
<S401:検索ワードの受信>
情報端末10から入力された数式を含む検索ワードは検索サーバー30に送信され、受信部32で受信される。
【0130】
<S402:移項処理>
受信部32で受信した検索ワードは演算処理部33に送信され、検索ワードを第1の数式として定義される。そして、先ずは移項処理部333において第1の数式が所定の規則に従って移項処理され、移項処理後の第2の数式が得られる。
【0131】
<S403:ベクトル変換>
第1の数式、及び第2の数式はベクトル変換部334において、それぞれの特徴を特徴量としてベクトル化される。
【0132】
<S404:類似度の算出>
S403でベクトル化された第1の数式、及び第2の数式は、類似度算出部335においてデータベース35との照合により、データベース35に登録されている数式との関係でコサイン類似度が算出される。
【0133】
<S405:検索結果の生成>
S404で演算したコサイン類似度に基づいて、一定のスコア以上を有するデジタル情報が抽出され、スコア順にデジタル情報の序列がされる。序列されたデジタル情報は情報端末10に送信される。
【0134】
以上のように、本発明の第2の実施形態においては、第1の実施形態に係る発明の木構造モデルに代えて、テキストベースの数式を構成する各要素に対して特徴量としての固有のベクトルを与えて埋め込み表現(Embedding)するモデルを採用した。これにより、テキストベースの数式について、演算処理可能なベクトル同士の類似度に基づいて、検索結果を生成することを可能とした。さらに、Embeddingモデルの構築に際して、数式の移項処理を行うことで、第1の実施形態に係る発明と同様に検索精度を高めることを可能としている。
【0135】
以上、本発明に係る検索サーバー、検索システム、及び検索プログラムは、数式の構造を詳細に反映し、検索ワードとしての数式を含むデジタル情報の検索精度を高めることができる。
【符号の説明】
【0136】
1、1a 検索システム
10 情報端末
20 Webサーバー
30、30a 検索サーバー
31 通信部
32 受信部
33、33a 演算処理部
331 構文解析部
331a 第1の構文解析部
331b 第2の構文解析部
332 文字列変換部
333 移項処理部
334 ベクトル変換部
335 類似度算出部
34 検索結果生成部
35 データベース
36 情報収集部
37 インデクサ
40 通信ネットワーク
【要約】
【課題】数式の構造を詳細に反映し、検索ワードとしての数式を含むデジタル情報の検索精度を高めることができる検索サーバー、検索システム、及び検索プログラムを提供することを目的とする。
【解決手段】検索サーバー30は、情報端末10から数式を含む検索ワードを受信すると、演算処理部33において、該数式を第1の数式と定義したうえで第1の木構造モデルを生成する。さらに演算処理部33は、第1の木構造モデルを所定の規則に従って移項処理した数式を第2の数式と定義して、第2の木構造モデルを生成する。そして、これら木構造モデルを文字列の集合体に変換したうえで、データベース35に登録されているデジタル情報のうち関連性の高いデジタル情報に基づいて検索結果を生成する。
【選択図】
図1