(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116608
(43)【公開日】2024-08-28
(54)【発明の名称】情報処理システム及びプログラム
(51)【国際特許分類】
G06F 16/33 20190101AFI20240821BHJP
G06F 16/35 20190101ALI20240821BHJP
【FI】
G06F16/33
G06F16/35
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023022306
(22)【出願日】2023-02-16
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】辰巳 大祐
(72)【発明者】
【氏名】内橋 真吾
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175FA01
5B175FA03
5B175JA02
5B175JC05
(57)【要約】
【課題】文書に含まれる文のうち、ユーザにより入力された検索文と類似する文を区別して表示させる。
【解決手段】情報処理装置2は、文書に含まれる文の文ベクトルに基づき文のクラスタリングを行い、クラスタと当該クラスタの中心ベクトルを対応付けしたコードブックを作成すると共に、文をいずれかのクラスタに分類する前処理部10と、入力された検索文の検索文ベクトルから当該検索文が属するクラスタを特定し、その特定したクラスタに属する文を、検索文と類似する文としてハイライト表示する検索処理部20と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
ユーザにより入力された1又は複数の文を含む検索文をベクトル化し、
ベクトル化して生成した前記検索文の文ベクトルで、検索範囲となる文書に含まれる各文がベクトル化されて生成される文ベクトル情報を検索することで前記検索文と類似する類似文を特定し、
前記文書を表示する際に前記類似文を前記検索文と類似していない文と区別して表示するよう制御する、
ことを特徴とする情報処理システム。
【請求項2】
前記プロセッサは、
前記文書に含まれる各文がそれぞれベクトル化されて生成される文ベクトルに基づき類似する文により形成されるクラスタそれぞれの特徴を示すクラスタ情報と、前記文書に含まれる各文と当該文が属するクラスタとの対応関係を含む対応付け情報と、を含む前記文ベクトル情報を取得し、
前記クラスタ情報を参照して前記検索文が属するクラスタを特定し、
前記対応付け情報を参照して、特定したクラスタに属する文を前記類似文として特定する、
ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記プロセッサは、
前記クラスタ情報に含まれる特徴が当該クラスタの中心ベクトルの場合、前記類似文の文ベクトルと、当該類似文が属するクラスタの中心ベクトルとの距離に応じて前記類似文それぞれに重み付けをし、
前記類似文を当該類似文の重みを判別可能に表示するよう制御する、
ことを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記プロセッサは、
前記クラスタ情報に含まれる特徴が当該クラスタの中心ベクトルの場合、前記検索文の文ベクトルを前記クラスタの中心ベクトルそれぞれと比較することで、前記検索文が属するべきクラスタに優先付けをし、
前記文書に含まれる各文を当該文が属するクラスタの優先順に応じて表示するよう制御する、
ことを特徴とする請求項2に記載の情報処理システム。
【請求項5】
前記プロセッサは、検索範囲となる文書が複数存在する場合、特定した前記類似文に応じて前記複数の文書の表示順を決定することを特徴とする請求項1に記載の情報処理システム。
【請求項6】
前記プロセッサは、前記検索文と前記類似文それぞれとの類似度に応じて前記複数の文書の表示順を決定することを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記プロセッサは、前記複数の文書それぞれに含まれる前記類似文の数に応じて前記複数の文書の表示順を決定することを特徴とする請求項5に記載の情報処理システム。
【請求項8】
前記プロセッサは、前記検索文に複数の文が含まれている場合であって、前記複数の文それぞれに前記類似文が存在する場合、前記複数の文それぞれと前記類似文との対応関係を判別可能に表示するよう制御することを特徴とする請求項1に記載の情報処理システム。
【請求項9】
前記プロセッサは、前記ユーザが文書を編集している場合、前記ユーザにより入力されなくても所定の条件に合致したタイミングで前記検索文を前記編集中の文書から自動的に選出することを特徴とする請求項1に記載の情報処理システム。
【請求項10】
コンピュータに、
ユーザにより入力された1又は複数の文を含む検索文をベクトル化する機能、
ベクトル化して生成した前記検索文の文ベクトルで、検索範囲となる文書に含まれる各文がベクトル化されて生成される文ベクトル情報を検索することで前記検索文と類似する類似文を特定する機能、
前記文書を表示する際に前記類似文を前記検索文と類似していない文と区別して表示するよう制御する機能、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム及びプログラムに関する。
【背景技術】
【0002】
近年のキーワード検索では、検索結果を画面表示する際、ハイライト表示することで検索結果に含まれるキーワードを見つけやすくしている。例えば、特許文献1では、公開治験DBや文献DBからテキストを抽出してベクトル化してクラスタリングし、クラスタを表すキーワードを表示する際、検索キーワードに対応した単語・数字などをハイライト表示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、検索文に含まれる指標やその指標に対応する数値を示すためのマーカにより指標等を区別して表示しており、検索文と類似する文を区別して表示するものではない。
【0005】
本発明は、文書に含まれる文のうち、ユーザにより入力された検索文と類似する文を他と区別して表示させることを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る情報処理システムは、プロセッサを備え、前記プロセッサは、ユーザにより入力された1又は複数の文を含む検索文をベクトル化し、ベクトル化して生成した前記検索文の文ベクトルで、検索範囲となる文書に含まれる各文がベクトル化されて生成される文ベクトル情報を検索することで前記検索文と類似する類似文を特定し、前記文書を表示する際に前記類似文を前記検索文と類似していない文と区別して表示するよう制御することを特徴とする。
【0007】
また、前記プロセッサは、前記文書に含まれる各文がそれぞれベクトル化されて生成される文ベクトルに基づき類似する文により形成されるクラスタそれぞれの特徴を示すクラスタ情報と、前記文書に含まれる各文と当該文が属するクラスタとの対応関係を含む対応付け情報と、を含む前記文ベクトル情報を取得し、前記クラスタ情報を参照して前記検索文が属するクラスタを特定し、前記対応付け情報を参照して、特定したクラスタに属する文を前記類似文として特定することを特徴とする。
【0008】
また、前記プロセッサは、前記クラスタ情報に含まれる特徴が当該クラスタの中心ベクトルの場合、前記類似文の文ベクトルと、当該類似文が属するクラスタの中心ベクトルとの距離に応じて前記類似文それぞれに重み付けをし、前記類似文を当該類似文の重みを判別可能に表示するよう制御することを特徴とする。
【0009】
また、前記プロセッサは、前記クラスタ情報に含まれる特徴が当該クラスタの中心ベクトルの場合、前記検索文の文ベクトルを前記クラスタの中心ベクトルそれぞれと比較することで、前記検索文が属するべきクラスタに優先付けをし、前記文書に含まれる各文を当該文が属するクラスタの優先順に応じて表示するよう制御することを特徴とする。
【0010】
また、前記プロセッサは、検索範囲となる文書が複数存在する場合、特定した前記類似文に応じて前記複数の文書の表示順を決定することを特徴とする。
【0011】
また、前記プロセッサは、前記検索文と前記類似文それぞれとの類似度に応じて前記複数の文書の表示順を決定することを特徴とする。
【0012】
また、前記プロセッサは、前記複数の文書それぞれに含まれる前記類似文の数に応じて前記複数の文書の表示順を決定することを特徴とする。
【0013】
また、前記プロセッサは、前記検索文に複数の文が含まれている場合であって、前記複数の文それぞれに前記類似文が存在する場合、前記複数の文それぞれと前記類似文との対応関係を判別可能に表示するよう制御することを特徴とする。
【0014】
また、前記プロセッサは、前記ユーザが文書を編集している場合、前記ユーザにより入力されなくても所定の条件に合致したタイミングで前記検索文を前記編集中の文書から自動的に選出することを特徴とする。
【0015】
本発明に係るプログラムは、コンピュータに、ユーザにより入力された1又は複数の文を含む検索文をベクトル化する機能、ベクトル化して生成した前記検索文の文ベクトルで、検索範囲となる文書に含まれる各文がベクトル化されて生成される文ベクトル情報を検索することで前記検索文と類似する類似文を特定する機能、前記文書を表示する際に前記類似文を前記検索文と類似していない文と区別して表示するよう制御する機能、を実現させる。
【発明の効果】
【0016】
請求項1に記載の発明によれば、文書に含まれる文のうち、ユーザにより入力された検索文と類似する文を区別して表示させることができる。
【0017】
請求項2に記載の発明によれば、文書に含まれる文の数が多いときに、文書の中から類似する文を高速に抽出することができる。
【0018】
請求項3に記載の発明によれば、検索文との類似度が高いと考えられる類似文を判別可能に表示させることができる。
【0019】
請求項4に記載の発明によれば、前記文書に含まれる各文を、検索文との類似度を判別可能に表示させることができる。
【0020】
請求項5に記載の発明によれば、検索文による検索結果を、特定した類似文に応じてユーザに便宜的な形態にて表示させることができる。
【0021】
請求項6に記載の発明によれば、検索文との類似度の高い文を含む順番に文書を並べて表示することができる。
【0022】
請求項7に記載の発明によれば、検索文と類似する類似文の数の多い順番に文書を並べて表示させることができる。
【0023】
請求項8に記載の発明によれば、ユーザは、類似文が検索文に含まれるどの文と類似しているのかを判別可能に表示させることができる。
【0024】
請求項9に記載の発明によれば、ユーザが検索文を入力しなくて済む。
【0025】
請求項10に記載の発明によれば、文書に含まれる文のうち、ユーザにより入力された検索文と類似する文を区別して表示させることができる。
【図面の簡単な説明】
【0026】
【
図1】実施の形態1における情報処理装置を示すブロック構成図である。
【
図2】実施の形態1における前処理を示すフローチャートである。
【
図3】実施の形態1において文をクラスタリングする場合の文ベクトル情報作成処理を示すフローチャートである。
【
図4】実施の形態1における文ベクトル情報記憶部に記憶されるコードブックのデータ構成例を示す図である。
【
図5】実施の形態1におけるコーパスデータベースデータ構成を示す図である。
【
図6】実施の形態1における検索処理を示すフローチャートである。
【
図7】実施の形態1において文をクラスタリングしたときの類似文検索処理を示すフローチャートである。
【
図8】実施の形態1における検索画面の表示例を示す図である。
【
図9】
図8においていずれかの文が選択された場合に表示される表示画面の一例を示す図である。
【
図10】実施の形態1において検索画面の他の表示例を示す図である。
【
図11】実施の形態2におけるコーパスデータベースのデータ構成を示す図である。
【
図12】実施の形態2における検索処理を示すフローチャートである。
【
図13】実施の形態2において検索画面の表示例を示す図である。
【発明を実施するための形態】
【0027】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【0028】
実施の形態1.
本実施の形態における情報処理装置は、パーソナルコンピュータ(PC)等の従前から存在する汎用的なハードウェア構成で実現できる。すなわち、本実施の形態における情報処理装置は、CPU、ROM、RAM、ハードディスクドライブ(HDD)等の記憶手段、ネットワークインタフェース等の通信手段、マウスやキーボード等の入力手段及びディスプレイ等の表示手段を含むユーザインタフェースを含む構成にて実現できる。
【0029】
図1は、本実施の形態における情報処理装置2を示すブロック構成図である。本実施の形態における情報処理装置2は、前処理部10、検索処理部20、コーパスデータベース(DB)32及び文ベクトル情報記憶部34を有している。なお、本実施の形態の説明に用いない構成要素は、図から省略している。
【0030】
ここで、本実施の形態において用いる「文」及び「文書」の用語について定義する。
【0031】
まず、「文」は、一語以上の語からなり、まとまった内容を表すひと続きの言葉である。文の終わりは、一般に句点(。)で区切られる。ただ、本実施の形態の場合、ユーザが複数の自然文によって検索文を入力することを許容しているので、「検索文」に限っては、例外的に複数の文で構成される場合もある。「文書」は、文字で書き記したものの総称であり、1又は複数の文により構成される。
【0032】
前処理部10は、検索処理部20が実施する検索処理に必要なデータを事前に作成する処理を前処理として実施する。前処理部10は、文書取得部12、文ベクトル生成部14及び文ベクトル情報作成部16を含む。文書取得部12は、コーパスデータベース32に格納され管理される文書を取得する。文ベクトル生成部14は、文書取得部12により取得された文書を文毎に分割し、分割した各文をベクトル化することによって文ベクトルを生成する。「文ベクトル」とは、自然言語の文を数値化したもののことをいう。一般に、「文章ベクトル」などと呼ばれる語と同義であるが、文章は複数の文を含むこともあるため、本実施の形態では、1つの文を区別して「文ベクトル」と称することにしている。文ベクトルを生成する手法は、例えば自然言語処理モデルであるBERTの一種であるsentence BERTなど従前の手法を利用してよい。文ベクトル情報作成部16は、文ベクトル生成部14により生成された各文の文ベクトルに基づき文ベクトル情報を作成し、後述する項目データを含む文ベクトル情報をコーパスデータベース32及び文ベクトル情報記憶部34に登録する。
【0033】
検索処理部20は、コーパスデータベース32及び文ベクトル情報記憶部34を参照して、ユーザにより指定され入力された検索文に基づきコーパスデータベース32を検索する検索処理を実施する。すなわち、コーパスデータベース32に格納されている文書が、検索処理部20による検索範囲となる。検索処理部20は、検索文取得部22、検索文ベクトル生成部24、類似文検索処理部26及び表示制御部28を含む。
【0034】
検索文取得部22は、ユーザにより指定され入力された検索文を取得する。検索文ベクトル生成部24は、検索文取得部22により取得された検索文をベクトル化することによって検索文の文ベクトル(以下、「検索文ベクトル」)を生成する。検索文が複数の文で構成されている場合、検索文ベクトル生成部24は、構成されている文毎に検索文ベクトルを生成する。類似文検索処理部26は、検索文ベクトル生成部24により生成された検索文ベクトルを参照して、検索文と類似する文(以下、「類似文」)をコーパスデータベース32に登録されている各文書から検索結果として特定する。換言すると、検索文に基づく検索処理によりヒットした文が、検索文と類似する類似文として抽出され、検索結果となる。表示制御部28は、検索結果の表示を制御する。本実施の形態における表示制御部28は、類似文を含む文書を検索結果に含めて表示するよう表示制御するが、文書を表示する際に類似文を検索文と類似していない文(以下、「非類似文」)と区別して表示するよう制御する。例えば、区別して表示する方法として、類似文をハイライト表示する。
【0035】
コーパスデータベース32及び文ベクトル情報記憶部34で保存されるデータは、前処理にて作成され登録されるので、前処理の説明と合わせて説明する。
【0036】
情報処理装置2における各構成要素10,20は、情報処理装置2を形成するコンピュータと、コンピュータに搭載されたCPUで動作するプログラムとの協調動作により実現される。また、記憶手段32,34は、情報処理装置2に搭載されたHDDにて実現される。あるいは、RAM又は外部にある記憶手段をネットワーク経由で利用してもよい。
【0037】
なお、本実施の形態では、情報処理装置2を1台のコンピュータにて実現することを想定して説明するが、各構成要素10,20,32,34、構成要素10や20の各部12,14,16,22,24,26,28を通信ネットワークで繋がる複数のコンピュータに分散して形成される情報処理システムとしてもよい。本実施の形態における「システム」とは、複数の装置によって構成されたもの及び単一の装置によって構成されたものの両方を含む。
【0038】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD-ROMやUSBメモリ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがプログラムを順次実行することで各種処理が実現される。
【0039】
次に、本実施の形態における動作について説明する。
【0040】
本実施の形態において実施する処理は、検索処理と、検索処理を実施する上で必要なデータを事前に用意する前処理と、に大別できる。まず、前処理について
図2に示すフローチャートを用いて説明する。
【0041】
文書取得部12は、コーパスデータベース32に保存する文書を取得する(ステップ110)。文書の取得経路は、特に限定する必要はなく、ユーザにより入力される文書を取得してもよいし、ユーザにより指定された格納場所から文書を取得するなどしてもよい。
【0042】
続いて、文ベクトル生成部14は、取得された文書を文に分割する(ステップ120)。基本的には、文書を句点により区切ることで文に分割できる。続いて、文ベクトル生成部14は、一文ずつベクトル化することによって文ベクトルを生成する(ステップ130)。続いて、文ベクトル情報作成部16は、文ベクトルに基づいて文ベクトル情報を作成する文ベクトル情報作成処理を実施する(ステップ140)。
【0043】
ところで、本実施の形態では、処理対象となる文書に膨大な数量の文が含まれていても、処理の効率化を図るために文のクラスタリングを行うようにしている。このクラスタリングを行う場合の文ベクトル情報作成処理について、
図3に示すフローチャートを用いて説明する。なお、コーパスデータベース32に複数の文書が保存されている場合、以下に説明する処理を文書それぞれに施すことになる。
【0044】
まず、文ベクトル情報作成部16は、各文の文ベクトルを参照して文をクラスタリングする(ステップ141)。クラスタリングによって形成される各クラスタは、文書に含まれる文のうち、文ベクトルに基づき類似していると判定された文により形成される。
【0045】
続いて、文ベクトル情報作成部16は、クラスタリングを実行することで形成したクラスタ毎に、セントロイドとも呼ばれるクラスタの中心ベクトルを算出する(ステップ142)。そして、文ベクトル情報作成部16は、クラスタ毎に付与した識別情報としてのクラスタIDに当該クラスタの中心ベクトルを紐付けることでコードブックを作成し、文ベクトル情報記憶部34に登録する(ステップ143)。
【0046】
図4は、本実施の形態における文ベクトル情報記憶部34に記憶されるコードブックのデータ構成例を示す図である。
図4に示すように、上記処理にて得られたクラスタIDと中心ベクトルは、コードブックに対応付けされて登録される。前述したように、中心ベクトルは、各クラスタに属する類似文の文ベクトルから算出される値であることから、クラスタそれぞれの特徴を示すクラスタ情報といえる。
【0047】
なお、本実施の形態では、クラスタは、1つ以上の文で形成されていればよい。
【0048】
続いて、文ベクトル情報作成部16は、各文の文ベクトルと各クラスタの中心ベクトルとを比較し、各文を中心ベクトルとの距離が最も近いクラスタに分類し、各文に分類先のクラスタのクラスタIDを紐付ける(ステップ144)。そして、文ベクトル情報作成部16は、各文に紐付けたクラスタIDをコーパスデータベース32に登録する(ステップ145)。
【0049】
図5は、本実施の形態におけるコーパスデータベース32のデータ構成を示す図である。なお、
図5には、本実施の形態の説明に用いるデータ項目以外の図示を省略している。コーパスデータベース32には、登録されている文書に関する情報が構造化されて設定登録される。すなわち、文書に関する情報として、登録される文書の識別情報としての文書ID、文書名、当該文書の格納場所を特定する情報が設定される。更に、当該文書に含まれる各文に関する情報として、文ID、文、位置情報及び所属クラスタ(重み)が設定される。文IDは、文の識別情報である。文には、テキスト文字等で示される文そのものが設定される。位置情報には、文書において当該文が記載されている位置、範囲を特定するための情報である。
図5では、ページの番号と当該ページにおける当該文の先頭及び最後尾の文字の座標データで位置情報を示している。もちろん、この位置情報の表し方は一例であって他の方法で文の位置を特定できるようにしてもよい。所属クラスタには、ステップ145において、当該文が属するクラスタのクラスタIDが設定される。なお、重みに関しては、後述する。
【0050】
文をクラスタリングして分類する場合、文ベクトル情報として、文ベクトル情報記憶部34に記憶されるコードブックに加えて、上記のように各文と当該文が属するクラスタとの対応関係を含む対応付け情報、具体的には文IDに所属クラスタが対応付けして作成される。
【0051】
なお、文のクラスタリングを行わない場合、文ベクトル情報作成部16は、コードブックを生成しない。また、コーパスデータベース32に設定する所属クラスタの代わりに、当該文の文ベクトルを設定する。
【0052】
前処理では、以上のようにして検索処理に利用するコードブックを生成し、また各文と当該文が属するクラスタとを対応付ける対応付け情報をコーパスデータベース32に設定する。以下、前処理終了後に実行可能となる検索処理について、
図6に示すフローチャートを用いて説明する。
【0053】
まず、ユーザは、所定の検索画面から入力するなどして検索文を指定する。ユーザが検索文を入力する場合、ユーザは、自然文にて検索文を指定するものとする。検索文取得部22は、ユーザにより指定された検索文を取得する(ステップ150)。なお、ここでは、特に断らない限り、一文で検索文が指定されたものとして説明する。
【0054】
続いて、検索文ベクトル生成部24は、取得された検索文をベクトル化することによって検索文ベクトルを生成する(ステップ160)。検索文ベクトルの生成手法は、ステップ130における文ベクトルの生成手法と同じでよい。
【0055】
続いて、類似文検索処理部26は、検索文の類似文を検索する類似文検索処理を実施することで検索文と類似する文、すなわち類似文を特定する(ステップ170)。本実施の形態では、文をクラスタリングしている場合を想定して説明しているので、この場合における類似文検索処理について
図7に示すフローチャートを用いて説明する。
【0056】
まず、類似文検索処理部26は、検索文の検索文ベクトルを参照し、検索文がどのクラスタに属することになるのかを調べ、そして属するクラスタのクラスタIDを特定する(ステップ171)。詳細には、類似文検索処理部26は、コードブックを参照して、検索文ベクトルを各クラスタの中心ベクトルと比較する。そして、検索文は、最も距離の近い中心ベクトルに紐付くクラスタに属すると判定し、当該クラスタのクラスタIDを取得する。
【0057】
続いて、類似文検索処理部26は、特定した類似文のクラスタIDでコーパスデータベース32を検索する(ステップ172)。これにより、類似文検索処理部26は、特定したクラスタIDに紐付いている文、すなわち当該クラスタに属する文がヒットすることになる。類似文検索処理部26は、このヒットした文を検索文の類似文として特定し、類似文検索処理の検索結果として抽出する(ステップ173)。
【0058】
なお、検索文として複数の自然文が指定された場合、自然文毎に前述した検索処理を実行すればよい。
【0059】
文のクラスタリングを行わない場合、類似文検索処理部26は、ステップ170における類似文検索処理では、検索文ベクトルでコーパスデータベース32を検索することで、検索文ベクトルと所定の閾値以上の類似度を示す文ベクトルに対応する文を検索文の類似文として特定し、類似文検索処理の検索結果として抽出することになる。
【0060】
表示制御部28は、類似文検索処理部26が以上のようにして得た検索結果を画面にハイライト表示するよう制御する(ステップ180)。
図8~10では、ハイライト表示として塗りつぶしを用いてグレースケールでも視認しやすいようにしているが、カラー表示の場合には、種々の色や蛍光表示、文字装飾等、またこれらを組み合わせることによって、類似文を非類似文と区別可能な表示形態にて表示すればよい。
【0061】
なお、検索結果の出力先は、情報処理装置2のディスプレイでなく、例えばネットワークを介して他の情報処理装置に接続されているディスプレイや記憶手段としてもよいが、本実施の形態では、情報処理装置2が有するディスプレイに表示するものとして説明する。この場合、厳密には、検索結果を表示するのは、ディスプレイ等の表示手段であるが、本実施の形態では、便宜的に表示制御部28が表示するものと説明する。
【0062】
図8は、本実施の形態において、検索結果を表示するための表示画面例を示す図である。検索結果の表示画面(以下、「検索画面」)40には、検索文の入力領域42と、検索結果の表示領域44と、が設けられる。ユーザにより入力領域42から検索文が入力され検索ボタン46が選択されると、検索処理部20は、前述した検索処理を実行し、その検索結果を表示領域44に表示する。
図8には、検索文の類似文48を含む4文書が表示されている例が示されている。本実施の形態では、
図8に例示するようにヒットした類似文48だけでなく、類似文48がどの文書に含まれているのかがわかるように表示する。また、類似文48の表示例から、ユーザは、文書41aには3つの類似文48が、文書41bには2つの類似文48が含まれていることがわかる。そして、本実施の形態では、類似文48の内容がわかるように、類似文48の全体を画面表示させる。
【0063】
ところで、本実施の形態では、類似文48を非類似文と区別して表示することを特徴としている。そのために、本実施の形態では、類似文48をハイライト表示している。
図8では、文書に含まれる文のうち類似文48を抽出して箇条書きのように表示しているが、類似文の表示形態は、これに限る必要はない。例えば、文書全体若しくは文書の類似文48を含む段落などブロック単位に表示してもよい。この場合でも、類似文48は、ハイライト表示されているので文書の中から容易に探し出させる。
【0064】
ここで、ユーザが類似文48に関してより詳細な情報を画面表示したいとき、その類似文48をクリック等の選択操作により選択する。ここでは、類似文48dが選択されたとする。類似文48dが選択されたときの表示画面例を
図9に示す。
【0065】
図9に例示するように、文書41aのうち選択された類似文48dを含むページ50が表示される。本実施の形態では、検索画面40に重畳させてページ50を表示させているが、表示形態はこれに限る必要はない。ユーザは、このようにして検索文の類似文48dに関する情報を閲覧することができる。
【0066】
図8に例示するように、類似文48dは、文書41aにおける3つの類似文48c,48d,48eの真ん中に位置している。そのため、表示制御部28は、ページ50をはさんで矢印キー52を表示する。進むボタン52aが選択されると、表示制御部28は、
図8において類似文48dに1つ後、すなわち直後の表示されている類似文48eを含むページを表示する。一方、進むボタン52bが選択されると、表示制御部28は、
図8において類似文48dの1つ手前、すなわち直前に表示されている類似文48cを含むページを表示する。これにより、他の類似文48c,48eを表示させたい場合でも、その都度
図8の検索画面40に戻る必要がない。
【0067】
ところで、上記例のように、1つの文書に複数の類似文が存在する場合、文の表示順を決める必要がある。また、検索文の類似文を含む文書が複数存在する場合、文書の表示順を決める必要がある。
【0068】
まず、文の表示順に関して、単純に文書内における登場順に類似文48を表示させてもよいが、本実施の形態では、
図5に示すように各文に対して重み付けをして、その重み付けを参照して文の表示順を決定している。
【0069】
各文は、各クラスタの中心ベクトルとの距離に応じて当該文の文ベクトルと最も近い中心ベクトルに対応するクラスタに分類される。ただ、文ベクトルが中心ベクトルと最も近いといっても、その中心ベクトルとの距離が最も近いのであって、同じクラスタに属する他の文と比較すると、中心ベクトルから離れているかもしれない。そこで、本実施の形態においては、各文の文ベクトルと、当該文が属するクラスタの中心ベクトルとの距離に応じて文それぞれに重み付けを算出して設定する。つまり、中心ベクトルとの距離が近い文ベクトルほど重みを付ける。具体的には、大きい数字を付ける。中心ベクトルは、当該クラスタの特徴を示す値なので、検索文と同じクラスタに属する文の場合、本実施の形態では、中心ベクトルに近い文ほど検索文に類似していると推定する。
【0070】
図5に示すデータ設定例によると、文“s1”と文“s4”は、同じクラスタIDが“C1”のクラスタに属するが、文“s1”の方が文“s4”より重みが大きい。つまり、文“s1”は、文“s4”よりクラスタ“C1”の中心ベクトルに近いことがわかる。
【0071】
ここで、検索文がクラスタ“C1”に分類される場合、文“s1”と文“s4”は、検索文の類似文として抽出されることになるが、文“s1”は、文“s4”よりクラスタ“C1”の中心ベクトルに近いため、検索文との類似度が大きい、つまり、検索文とより類似していると判断する。この結果、同じ文書“R0123”に属する複数の類似文を表示する際、表示制御部28は、文“s1”を文“s4”より上位に表示する。このように、表示制御部28は、同一文書に属する類似文を表示する際、類似文の重みを判別可能に表示する。このため、ユーザは、ほしい情報を得るためには、上位に表示される類似文から
図9に例示する詳細な情報を表示させるのが効率的となりやすい。
【0072】
また、文書の表示順に関して、単純に登録日時によるコーパスデータベース32への文書の登録順に表示させてもよい。ただ、本実施の形態では、前述したように各文に対して重み付けをしているので、この類似文に対する重み付けに応じて文書の表示順を決定してもよい。
【0073】
例えば、類似文の数の多い順に文書を表示してもよい。あるいは、類似文の重みの総和を算出して、その総和の大きい順に表示してもよい。あるいは、各文書において重みの最大値の文を特定し、特定した文の重みの大きい順に文書を表示してもよい。このように、本実施の形態においては、文の重みが大きいほど類似度が高い、すなわち検索文と類似していると推定しているので、検索文と類似文それぞれとの類似度に応じて文書の表示順を決定してもよい。
【0074】
図10は、本実施の形態において、検索画面40の他の表示例を示す図である。
図8では、1つの自然文で検索文が構成されている場合であるのに対し、
図10では、複数 (
図10では2つ)の自然文で検索文が構成されている場合の検索画面40の表示例を示している。
【0075】
検索文の入力欄43に複数の自然文45a,45bが入力された場合、各自然文を異なる表示形態にてハイライト表示する。そして、表示制御部28は、各自然文45a,45bと当該自然文45a,45bとの対応関係が容易に視認できるように類似文を表示する。
図10では、類似文48a,48bに対し、自然文45a,45bと同様のハイライト表示をすることで、自然文45a,45bと類似文48a,48bとの対応関係が容易に判別できるようにする。
図10に示す表示例では、自然文45aに対応するのが類似文48aであり、自然文45bに対応するのが類似文48bであることが容易に判別できる。
【0076】
図10では、複数の自然文45a,45bを同等に取り扱っているが、自然文45a,45bに重みを持たせ、その重みに応じて類似文若しくは文書の表示順を決定してもよい。例えば、検索文として入力される自然文の順番に重みを持たせる。例えば、後に入力された自然文45bに重みを持たせて、後に入力された自然文45bの類似文が文書内の上位に表示されるようにしてもよい。これにより、入力箇所の文意が強く反映された検索結果を提示することが可能となる。
【0077】
なお、上記説明では、検索文取得部22は、ユーザが検索画面から入力した検索文を取得するものとして説明したが、これに限る必要はない。例えば、ユーザが画面表示した文書の中から、右クリックなどの選択操作により選択した文を検索文として取得してもよい。あるいは、ユーザがアプリケーションを利用して文書を編集しているときに、所定の条件に合致したタイミングで所定の文を検索文として編集中の文書から自動的に選出してもよい。「編集」には、文書の新規作成、既存文書の変更が含まれる。所定の条件としては、例えば、ユーザが句点を入力したときに、その句点で区切られる文、所定の文字数Nが入力されたときのN文字分の文、所定時間内に入力された文字から成る文、修正された文、章、節、段落などの一ブロック(つまり、文の集合体)を形成する複数の文などである。なお、複数の文で検索文が形成される場合は、上記のように各文に重みを持たせてもよい。
【0078】
実施の形態2.
クラスタリングでは、お互いのクラスタ間において、クラスタ中心間の距離が均等になるように分割されるのが理想形の1つである。しかし、現実的にはクラスタ中心間の距離にはばらつきが生じる。この結果、2つのクラスタの境界近くに位置する文の文ベクトルは、2つのクラスタ中心ベクトルとの距離の差がわずかであっても、わずかに近いクラスタに分類されることになる。そのため、検索文に類似している文だとしても、検索文が属するクラスタに属さないことにより、類似文として抽出されない可能性が生じてくる。
【0079】
そこで、本実施の形態においては、上記実施の形態1のように、各文を中心ベクトルと最も近いただ1つのクラスタに分類することに留めず、文の文ベクトルと各クラスタの中心ベクトルとの距離に応じて、複数のクラスタを選出してコーパスデータベース32に登録するようにした。
【0080】
図11は、本実施の形態におけるコーパスデータベース32のデータ構成を示す図である。データ構成の表し方が
図5と若干異なるものの、クラスタ情報以外の項目は、
図5と同じでよい。
【0081】
本実施の形態におけるクラスタ情報には、各文の文ベクトルと各クラスタの中心ベクトルとの距離に応じて、各文に1又は複数のクラスタを紐付けている。具体的には、中心ベクトルが文の文ベクトルと近い順にクラスタに優先付けを行う。
図11では、各文に対して最大4つのクラスタと紐付けることができる枠を設けているが、枠の数は、複数であればよい。各文に紐付けるクラスタは、例えば、優先付けをした順番(「優先度」又は「優先順」という)が上位n個(
図11では、n=4)としてもよいし、中心ベクトルとの距離が所定の閾値以下であるクラスタなど所定の条件に従って各文にクラスタを紐付ければよい。この際、クラスタに対して距離の近い順に優先度を割り当てる。
図11では、閾値と比較する後者を採用している例を示している。
【0082】
本実施の形態における情報処理装置2の構成は、実施の形態1と同じでよい。前処理は、実施の形態1と若干異なる。実施の形態1では、
図3に示すステップ144において、各文に対して当該文の文ベクトルと最も近い中心ベクトルに対応するクラスタのみと紐付けた。本実施の形態では、各文に対して中心ベクトルとの距離が所定の閾値以下である1又は複数のクラスタと紐付ける。そして、紐付けるクラスタに対しては、中心ベクトルと文ベクトルとの距離の近い順に優先度を割り当てる。この優先度は、処理の優先順位となる。なお、優先度が1のクラスタは、実施の形態1においてコーパスデータベース32に登録される所属クラスタと同じである。前処理におけるそれ以外の処理ステップは、実施の形態1と同じでよい。なお、本実施の形態では、クラスタリングを行うことを前提としている。以下、本実施の形態における検索処理について、
図12に示すフローチャートを用いて説明する。なお、
図6,7に示す実施の形態1における処理ステップと同じ処理ステップには、同じステップ番号を付け、説明を適宜省略する。
【0083】
検索文ベクトル生成部24が検索文ベクトルを生成すると(ステップ150,160)、類似文検索処理部26は、優先度の初期値として1を設定する(ステップ201)。続いて、類似文検索処理部26は、検索文の検索文ベクトルを参照し、検索文がn番目に近いクラスタのクラスタIDを特定する(ステップ202)。ここでは、n=1なので、実施の形態1と同様に検索文ベクトルと1番目、すなわち最も距離の近い中心ベクトルに紐付くクラスタのクラスタIDを取得する。n=1のときの処理は、実施の形態1と同じである。従って、次に続く類似文の検索及びハイライト表示の処理(ステップ172~180)は、実施の形態におけるステップ172,173,180と同じとなる。この場合の検索画面の表示内容は、実施の形態1と同じである。
【0084】
ここで、画面表示されている類似文の中にユーザが期待する検索結果が含まれている場合(ステップ203でY)、検索処理は、実施の形態1と同様に終了させればよい。一方、ユーザが期待する検索結果が含まれていない場合(ステップ203でN)、ユーザは、例えば検索画面40から再検索ボタン(図示せず)を選択するなどして、再検索を要求する。類似文検索処理部26は、このユーザからの要求に応じてクラスタの優先順を1つ上げる(ステップ204)。続いて、類似文検索処理部26は、コーパスデータベース32におけるクラスタ情報を参照し、現在の優先度(この例では、n=2番目)にクラスタIDが登録されているかどうかを確認する。
図11に示す設定例では、クラスタIDが登録されているので(ステップ205でY)、ステップ202に戻る。ステップ204において上げた優先度において、クラスタ情報にクラスタIDが登録されていない場合(ステップ205でN)、検索処理部20は、もう検索文にヒットする文、すなわち期待する文の候補となる文がコーパスデータベース32に存在しないなどの旨を画面表示するなどした後、検索処理を終了させる。
【0085】
ステップ202に戻ると、類似文検索処理部26は、検索文の検索文ベクトルを参照し、検索文がn番目に近いクラスタのクラスタIDを特定する(ステップ202)。ここでは、n=2なので、検索文ベクトルが2番目に近い中心ベクトルに紐付くクラスタのクラスタIDを特定する。その後の処理は、すでに説明したので省略する。本実施の形態においては、検索文の類似文の範囲を拡げて、つまり、類似度を下げる可能性は生じるものの類似文の候補の数をより多くすることで、検索文と真に類似する文をより確実にユーザに提供することが可能となる。
【0086】
図13は、本実施の形態における検索画面の表示例を示す図である。基本的には、実施の形態1における検索画面(
図8)と同様の表示内容となる。但し、表示制御部28は、類似文の類似度順が区別できるように、類似文48を優先順に応じて異なる表示形態にて表示する。表示制御部28は、
図13に示すように、優先度順に応じたハイライト表示の違いを説明するガイダンス49を表示する。ガイダンス49では、クラスタの優先度を「類似度順」としてユーザに示している。
図13に示す画面表示例によると、ハイライト表示の異同から、類似文48aは優先順が1番目の類似文に該当し、類似文48bは優先順が2番目の類似文に該当することが容易に判別できる。
【0087】
ところで、本実施の形態では、最も類似しているクラスタ(
図12に示すフローチャートで、n=1のときのクラスタ)だけでなく、検索文が2番目以降に類似しているクラスタ(
図12に示すフローチャートで、n≧2のときのクラスタ)に属する文も類似文として表示することができる。そうすると、前述したように、検索文と真に類似する文をユーザに提示することが可能になるかもしれないが、その一方で、実際には類似していない文を含めて類似文としてユーザに提示することになる。つまり、検索処理部20は、ユーザが期待する検索文の類似文に加えて、多くのゴミとなる文、つまり、非類似文を類似文として検索結果に含めて表示してしまう。これを回避するために、クラスタの優先度に、実施の形態1において説明した文の重み付けを組み合わせて検索文と類似している文を絞り込むようにしてもよい。
【0088】
例えば、検索文が属するクラスタ(つまり、「所属クラスタ」)に属していないものの、所属クラスタに隣接するクラスタ(ここでは「隣接のクラスタ」という)に属する文であって隣接クラスタの中心ベクトルとの距離が相対的に遠い文(所定の閾値以上離れている文)の文ベクトルは、検索文ベクトルと更に離れる可能性はあるものの、所属クラスタの中心ベクトルと隣接クラスタの中心ベクトルの中間当たりに位置する場合、当該文ベクトルに対応する文は、検索文の類似文となる可能性が高いといえる。そこで、検索処理部20は、隣接クラスタに属する文の重み付けを参照して、隣接クラスタに属する文のうち所定の閾値以上離れている文を選択的に類似文としてハイライト表示の対象としてもよい。
【0089】
上記実施の形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス等)を含むものである。
【0090】
また上記実施の形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施の形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【0091】
(付記)
(((1)))
プロセッサを備え、
前記プロセッサは、
ユーザにより入力された1又は複数の文を含む検索文をベクトル化し、
ベクトル化して生成した前記検索文の文ベクトルで、検索範囲となる文書に含まれる各文がベクトル化されて生成される文ベクトル情報を検索することで前記検索文と類似する類似文を特定し、
前記文書を表示する際に前記類似文を前記検索文と類似していない文と区別して表示するよう制御する、
ことを特徴とする情報処理システム。
(((2)))
前記プロセッサは、
前記文書に含まれる各文がそれぞれベクトル化されて生成される文ベクトルに基づき類似する文により形成されるクラスタそれぞれの特徴を示すクラスタ情報と、前記文書に含まれる各文と当該文が属するクラスタとの対応関係を含む対応付け情報と、を含む前記文ベクトル情報を取得し、
前記クラスタ情報を参照して前記検索文が属するクラスタを特定し、
前記対応付け情報を参照して、特定したクラスタに属する文を前記類似文として特定する、
ことを特徴とする(((1)))に記載の情報処理システム。
(((3)))
前記プロセッサは、
前記クラスタ情報に含まれる特徴が当該クラスタの中心ベクトルの場合、前記類似文の文ベクトルと、当該類似文が属するクラスタの中心ベクトルとの距離に応じて前記類似文それぞれに重み付けをし、
前記類似文を当該類似文の重みを判別可能に表示するよう制御する、
ことを特徴とする(((2)))に記載の情報処理システム。
(((4)))
前記プロセッサは、
前記クラスタ情報に含まれる特徴が当該クラスタの中心ベクトルの場合、前記検索文の文ベクトルを前記クラスタの中心ベクトルそれぞれと比較することで、前記検索文が属するべきクラスタに優先付けをし、
前記文書に含まれる各文を当該文が属するクラスタの優先順に応じて表示する、
ことを特徴とする(((2)))又は(((3)))に記載の情報処理システム。
(((5)))
前記プロセッサは、検索範囲となる文書が複数存在する場合、特定した前記類似文に応じて前記複数の文書の表示順を決定することを特徴とする(((1)))から(((4)))のいずれか1つに記載の情報処理システム。
(((6)))
前記プロセッサは、前記検索文と前記類似文それぞれとの類似度に応じて前記複数の文書の表示順を決定することを特徴とする(((5)))に記載の情報処理システム。
(((7)))
前記プロセッサは、前記複数の文書それぞれに含まれる前記類似文の数に応じて前記複数の文書の表示順を決定することを特徴とする(((5)))に記載の情報処理システム。
(((8)))
前記プロセッサは、前記検索文に複数の文が含まれている場合であって、前記複数の文それぞれに前記類似文が存在する場合、前記複数の文それぞれと前記類似文との対応関係を判別可能に表示することを特徴とする(((1)))から(((7)))のいずれか1つに記載の情報処理システム。
(((9)))
前記プロセッサは、前記ユーザが文書を編集している場合、前記ユーザにより指定されなくても所定の条件に合致したタイミングで前記検索文を前記編集中の文書から自動的に選出することを特徴とする(((1)))から(((8)))のいずれか1つに記載の情報処理システム。
(((10)))
コンピュータに、
ユーザにより入力された1又は複数の文を含む検索文をベクトル化する機能、
ベクトル化して生成した前記検索文の文ベクトルで、検索範囲となる文書に含まれる各文がベクトル化されて生成される文ベクトル情報を検索することで前記検索文と類似する類似文を特定する機能、
前記文書を表示する際に前記類似文を前記検索文と類似していない文と区別して表示するよう制御する機能、
を実現させるためのプログラム。
【0092】
(((1)))に記載の発明によれば、文書に含まれる文のうち、ユーザにより入力された検索文と類似する文を区別して表示させることができる。
(((2)))に記載の発明によれば、文書に含まれる文の数が多いときに、文書の中から類似する文を高速に抽出することができる。
(((3)))に記載の発明によれば、検索文との類似度が高いと考えられる類似文を判別可能に表示させることができる。
(((4)))に記載の発明によれば、前記文書に含まれる各文を、検索文との類似度を判別可能に表示させることができる。
(((5)))に記載の発明によれば、検索文による検索結果を、特定した類似文に応じてユーザに便宜的な形態にて表示させることができる。
(((6)))に記載の発明によれば、検索文との類似度の高い文を含む順番に文書を並べて表示させることができる。
(((7)))に記載の発明によれば、検索文と類似する類似文の数の多い順番に文書を並べて表示させることができる。
(((8)))に記載の発明によれば、ユーザは、類似文が検索文に含まれるどの文と類似しているのかを判別可能に表示させることができる。
(((9)))に記載の発明によれば、ユーザが検索文を入力しなくて済む。
(((10)))に記載の発明によれば、文書に含まれる文のうち、ユーザにより入力された検索文と類似する文を区別して表示させることができる。
【符号の説明】
【0093】
2 情報処理装置、10 前処理部、12 文書取得部、14 文ベクトル生成部、16 文ベクトル情報作成部、20 検索処理部、22 検索文取得部、24 検索文ベクトル生成部、26 類似文検索処理部、28 表示制御部、32 コーパスデータベース(DB)、34 文ベクトル情報記憶部。