(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022069790
(43)【公開日】2022-05-12
(54)【発明の名称】情報処理装置、情報処理方法、プログラム
(51)【国際特許分類】
G06F 16/33 20190101AFI20220502BHJP
【FI】
G06F16/33
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020178643
(22)【出願日】2020-10-26
(71)【出願人】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(71)【出願人】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】松田 雄介
(72)【発明者】
【氏名】福田 直之
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175HB03
(57)【要約】 (修正有)
【課題】文書データのカテゴリとフィールド情報を検索スコアの計算に用いて、検索ユーザの意図に近い検索結果を得られるよう検索精度の向上を行うことが可能となる情報処理システム、情報処理装置、情報処理方法及びプログラムを提供する。
【解決手段】情報処理システム(文書検索システム)において、検索処理は、文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶し、フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶する記憶手段と、
前記フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する算出手段と、
を備えることを特徴とする情報処理システム。
【請求項2】
前記算出手段は、前記フィールドに設定された重みと、当該フィールドに含まれる前記検索語の数に基づき、当該文書のスコアを算出することを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記算出手段により算出されたスコアに基づき、前記検索語による検索結果を表示する表手段を備えることを特徴とする請求項1または2に記載の情報処理システム。
【請求項4】
前記表示手段に表示された文書に対する閲覧実績に基づき、当該文書のカテゴリに係るフィールドの重みを調整する調整手段を備えることを特徴とする請求項3に記載の情報処理システム。
【請求項5】
文書からフィールドを抽出する条件の設定を付け付ける受付手段と、
前記受付手段により受け付けた条件に従い、検索対象となる文書からフィールドを抽出するフィールド抽出手段と、
を備えることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
【請求項6】
文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶する記憶手段を備える情報処理システムにおける情報処理方法であって、
前記情報処理システムの算出手段が、前記フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する算出ステップを備えることを特徴とする情報処理方法。
【請求項7】
コンピュータを
文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶する記憶手段と、
前記フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する算出手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【0002】
従来の単語頻度のみによる全文検索では単語の重要度や意味というものが考慮されない。そのため、出現頻度は低いが重要な単語ではヒットしても検索上位に現れなかったり、字面は同じだがニュアンスが異なる単語にヒットした文書が検索結果に現れたりするという問題があった。
【0003】
特許文献1には、文書データのフィールド情報を検索スコアの計算に用いて、ユーザの検索意図に近い検索結果を得るための技術について開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、文書データのフィールド情報を検索スコアの計算に用いて、ユーザの検索意図に近い検索結果を得るための技術が記載されている。
【0006】
しかし、フィールドごとのスコア反映割合を検索のたびにユーザが入力する必要があり、フィールド数が多くなった場合に煩雑である。また、フィールドが事前に文書のメタデータとして用意されていない部分についてはフィールドに格納されない問題がある。さらに文書のカテゴリについての概念がないため、各カテゴリに応じたフィールド情報の抽出やスコア計算を行うことができないという課題がある。
【0007】
そのため、文書データにカテゴリ情報を付与し、カテゴリごとにフィールド抽出情報を定義することが望まれる。
【0008】
そこで、本発明は、文書データのカテゴリとフィールド情報を検索スコアの計算に用いて、検索ユーザの意図に近い検索結果を得られるよう検索精度の向上を行うことを目的とする。
【課題を解決するための手段】
【0009】
本発明の情報処理システムは、文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶する記憶手段と、前記フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する算出手段と、を備えることを特徴とする。
【0010】
本発明の情報処理方法は、文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶する記憶ステップと、前記フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する算出ステップと、を備えることを特徴とする。
【0011】
本発明のプログラムは、コンピュータを、文書のカテゴリ毎に文書に含まれる各フィールドに設定される重みを記憶する記憶手段と、前記フィールドに設定された重みと、当該フィールドと検索語との関係とに基づき、当該文書のスコアを算出する算出手段として機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、文書データのカテゴリとフィールド情報を検索スコアの計算に用いて、検索ユーザの意図に近い検索結果を得られるよう検索精度の向上を行うことが可能となる。
【図面の簡単な説明】
【0013】
【
図1】情報処理システムのシステム構成を示す図である。
【
図2】情報処理装置のハードウェア構成を示す図である。
【
図3】本実施例での処理の流れを示すフローチャートである。
【
図4】本発明の実施形態における、文書登録処理の一例を示すフローチャートである。
【
図5】本発明の実施形態における、フィールド抽出処理の一例を示すフローチャートである。
【
図6】本発明の実施形態における、キーワードによるフィールド抽出処理の一例を示すフローチャートである。
【
図7】本発明の実施形態における、パターンによるフィールド抽出処理の一例を示すフローチャートである。
【
図8】本発明の実施形態における、形態素解析によるフィールド抽出処理の一例を示すフローチャートである。
【
図9】本発明の実施形態における、検索処理の一例を示すフローチャートである。
【
図10】本発明の実施形態における、検索セッション統計情報の更新処理の一例を示すフローチャートである。
【
図11】本発明の実施形態における、フィールド重みの更新処理の一例を示すフローチャートである。
【
図12】本発明の実施形態における、抽出定義一覧画面の一例を示す図である。
【
図13】本発明の実施形態における、抽出定義詳細画面の一例を示す図である。
【
図14】本発明の実施形態における、フィールド名とキーワードの距離についての説明の図である。
【
図15】本発明の実施形態における、フィールド重み更新処理の一例を示す図である。
【
図16】本発明の実施形態における、検索セッション統計情報のテーブルの一例を示す図である。
【
図17】本発明の実施形態における、フィールドスコアの計算の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本発明の実施形態を詳細に説明する。なお、以下に説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の一例である。
【0015】
図1は、本発明の実施形態における文書検索システムのシステム構成の一例を示す図である。本発明における実施形態における文書検索システム2000は、情報処理装置100と、文書DB107、クライアントPC108で構成される。情報処理装置100は、文書登録処理部101、文書検索処理部102、形態素解析辞書103、登録文書インデックス104、抽出定義DB105、検索セッション統計情報106から構成され、外部の文書DB107や文書検索システムに文書を登録する際に使用するクライアントPCとネットワークを介して通信可能に接続されている。
【0016】
文書登録処理部101では、ユーザから受け付けた文書に係る処理を実行する機能部である。具体的には、テキスト抽出処理やカテゴリ付与やフィールドの抽出処理を行い、検索インデックスを作成し、登録文書インデックス104に格納するなどの処理を行う。
【0017】
文書検索処理部102では、ユーザから受けつけた検索語を用いて、インデックス済みの文書を検索する機能部である。ユーザから検索語を受け付けると、インデックス済みの文書から本文スコアとフィールドスコアを計算して、それぞれを合算して検索結果に反映させる処理を行う。
【0018】
形態素解析辞書103は、形態素解析を行う際に使用される辞書である。
【0019】
登録文書インデックス104は、登録対象となる文書から抽出した本文及び各フィールドに対する検索インデックスを格納するDBである。本DBを用いて、検索処理部102による処理が行われる。
【0020】
抽出定義DB105は、カテゴリ毎に定義づけられる抽出定義を記憶しておくDBである。本抽出定義DBに記憶される当該カテゴリの抽出定義として設定された抽出方式により、フィールドの抽出を行う。抽出方式は、キーワードによる抽出を行うか、パターンによる抽出を行うか、形態素解析による抽出などがある。
【0021】
検索セッション統計情報106は、ユーザの検索セッション統計情報を更新するDBである。ユーザの検索セッション統計情報の更新を行い、抽出定義のフィールド重みを更新する際に利用する。
【0022】
文書DB107は、文書が記憶されているDBである。クラウドサービスなどの外部DBも含まれる。
【0023】
クライアントPC108は、ユーザから文書登録を受付ける際に使用される。
【0024】
図2は、本発明の実施形態における情報処理装置のハードウェア構成の一例を示すブロック図である。
【0025】
図2に示すように、情報処理装置は、システムバス200を介してCPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、記憶装置204、入力コントローラ205、音声入力コントローラ206、ビデオコントローラ207、メモリコントローラ208、および通信I/Fコントローラ209が接続される。
【0026】
CPU201は、システムバス200に接続される各デバイスやコントローラを統括的に制御する。
【0027】
ROM202あるいは外部メモリ213は、CPU201が実行する制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、本情報処理方法を実現するためのコンピュータ読み取り実行可能なプログラムおよび必要な各種データ(データテーブルを含む)を保持している。
【0028】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ213からRAM203にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【0029】
入力コントローラ205は、キーボード210や不図示のマウス等のポインティングデバイス等の入力装置からの入力を制御する。入力装置がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
【0030】
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0031】
ビデオコントローラ207は、ディスプレイ212などの外部出力装置への表示を制御する。ディスプレイは本体と一体になったノート型パソコンのディスプレイも含まれるものとする。なお、外部出力装置はディスプレイに限ったものははく、例えばプロジェクタであってもよい。また、前述のタッチ操作を受け付け可能な装置については、入力装置も提供する。
【0032】
なおビデオコントローラ207は、表示制御を行うためのビデオメモリ(VRAM)を制御することが可能で、ビデオメモリ領域としてRAM203の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。
【0033】
メモリコントローラ208は、外部メモリ213へのアクセスを制御する。外部メモリとしては、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、および各種データ等を記憶する外部記憶装置(ハードディスク)、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等を利用可能である。
【0034】
通信I/Fコントローラ209は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信やISDNなどの電話回線、および携帯電話の3G回線を用いた通信が可能である。
【0035】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ212上での表示を可能としている。また、CPU201は、ディスプレイ212上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0036】
本発明を実現するための後述する各種プログラムは、外部メモリ213に記憶されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も外部メモリ213に格納されており、これらについての詳細な説明も後述する。
【0037】
次に
図3を用いて、本願発明における処理の流れについて説明する。
【0038】
ステップS301では、事前設定として、カテゴリ毎のフィールド抽出定義情報(フィールド重みを含む)とデフォルトの抽出定義(カテゴリが設定されていないファイルやフィールド重みセットで指定しなかったフィールドに使う抽出定義)の設定を受け付ける。フィールド抽出定義情報とは、抽出定義詳細画面1300に示すように、カテゴリ毎に、フィールド名と当該フィールドを抽出する方法と抽出定義が対応付けられた情報である。例えば
図13に示す抽出定義情報によれば、「工事概要」というカテゴリの文書については、「事務所」や「病院」といったキーワードにより抽出されるフィールドを「建物用途」というフィールドとして抽出することが可能となる。
【0039】
設定された抽出定義情報は、抽出定義DB105に保存される。
【0040】
ステップS302では、ユーザから受け付けた文書(検索対象文書)に対して、文書登録処理を実行する。文書登録処理では、検索対象文書の本文抽出やカテゴリの付与、検索対象文書のフィールド抽出、本文及びフィールドに対する検索インデックスの構築などが行われる。文書登録処理の詳細については、
図4を用いて後述する。
【0041】
ステップS303では、ユーザから受け付けた検索語に基づき、文書検索処理を実行する。文書検索処理では、ステップS302で構築した検索インデックスを用いた検索処理が行われる。文書検索処理の詳細については、
図9を用いて後述する。
【0042】
次に
図4~
図8のフローチャートを用いて、本発明の実施形態における文書登録処理部が実行する文書登録処理について説明する。
【0043】
図4のフローチャートは、文書登録処理部101において文書を登録する処理を示すフローチャートである。
【0044】
ステップS401では、登録対象となる文書全てに対して処理が終了したかどうかを判定する。処理が終了していれば(S401のYes)該フローチャートの処理を終了し、処理の終了していない文書が残っていれば(S401のNo)ステップS402に進む。
【0045】
ステップS402では該文書に対してテキスト抽出処理を行う。該テキスト抽出処理は一般に開示されている技術により実現されるものであり、どのような技術・方法を用いても構わない。
【0046】
ステップS403では該文書に対するカテゴリ付与を行う。カテゴリとは、その文書がいかなるタイプの文書であるかを分類するために付与され、本実施例であれば工事概要、注文書、議事録などがカテゴリの分類例である。ここでのカテゴリ付与は計算機によって自動で行ってもよいし、ユーザによって手動で行っても構わない。
【0047】
ステップS404ではフィールド抽出処理を行う。フィールド抽出処理については、
図5を使い後述する。
【0048】
ステップS405ではステップS402で抽出したテキスト及びステップS404で抽出した各フィールドに対する検索インデックスの作成を行い登録文書インデックス104に格納する。検索インデックスとは、
図9で示す文書検索処理の処理時に使用する検索インデックスである。
【0049】
図5のフローチャートは、文書からフィールドを抽出する処理を示すフローチャートである。
【0050】
ステップS501では、ステップS403で付与された該文書のカテゴリを取得する。
【0051】
ステップS502では、抽出定義DB105からステップS301で設定された該カテゴリの抽出定義情報を取得する。ステップS501でカテゴリが取得できなかった場合はデフォルトの抽出定義を取得する。
【0052】
ステップS503では、該抽出定義に定義された全てのフィールドに対して抽出処理が終了したかどうかを判断する。終了していれば(S503のYes)該フローチャートを終了し、そうでなければ(S503のNo)処理をステップS504に進める。
【0053】
ステップS504では、該抽出定義情報に設定された処理対象のフィールドの抽出方式に応じて、処理を分岐する。例えば、
図13の例では、「住所」のフィールドについては形態素解析により抽出することを意味している。抽出方式が「キーワード」であればステップS505に、「パターン」であればステップS506に、「形態素解析」であればステップS507に処理を進める。
【0054】
ステップS505では、キーワードによる抽出処理を行う。キーワードによる抽出処理の詳細は、
図6のフローチャートを用いて後述する。
【0055】
ステップS506では、パターンによる抽出処理を行う。パターンによる抽出処理の詳細は、
図7のフローチャートを用いて後述する。
【0056】
ステップS507では、形態素解析による抽出処理を行う。形態素解析による抽出処理の詳細は、
図8のフローチャートを用いて後述する
ステップS508では、抽出されたフィールドを該文書のフィールドとして記録しておく。このとき、該抽出定義情報のフィールド名と関連付けて記録する。
【0057】
図6のフローチャートは、文書からキーワード方式でフィールドを抽出する処理を示すフローチャートである。
【0058】
ステップS601では、該抽出定義の全てのキーワードを処理したかどうかを判断する。全て処理していれば(S601のYes)該フローチャートを終了し、そうでなければ(S601のNo)処理をステップS602に進める。
【0059】
ステップS602では、該抽出定義から未処理のキーワードを取得する。
【0060】
ステップS603では、該文書に対するキーワードマッチを実行する。このキーワードマッチにはどのような手法を用いても構わない。
【0061】
ステップS604では、該文書に該キーワードが存在するかどうかを判断する。存在しない場合(S604のNo)処理をステップS601に進め、存在する場合(S604のYes)処理をステップS605に進める。
【0062】
ステップS605では、存在キーワードの近くにフィールド名が存在するかどうかを判定する。キーワードによる抽出処理に関する抽出定義は、
図13に示すように、フィールド名とキーワードとが対応付けて登録されたものである。検出されたキーワードの近くに、当該キーワードに対応付けられたフィールド名が存在する場合(ステップS605:YES)は処理をステップS606に進め、存在しない場合(ステップS605:NO)は処理をステップS601に戻す。
【0063】
ここで、キーワード(Value)とフィールド名(Key)の距離について、
図14を用いて具体的に説明する。
【0064】
図13のようにフィールド名「建物用途」には事務所、病院、飲食店、駐車場、ホテルの5つのキーワードが対応付けられているため、
図14に示す文書において抽出されるキーワードは、V1「病院」、V2「事務所」、V3「駐車場」となる。このうちV1とV2はキーであるK1「建物用途」と同じ行にあり、距離的に近いと言える。一方でV3はK1と5行離れており、距離的には遠く、「建物用途」とは異なる文脈で使用されていると考えられる。したがって、キーワード抽出の際にはこのキーワードとフィールド名の距離を考慮し、遠いものを抽出対象としないようにすることで誤抽出を防ぐことができる。
【0065】
【0066】
ステップS606では、ステップS605で抽出されたキーワードを該文書のフィールドの値として記録する。
【0067】
図7は、正規表現パターンによるフィールドの抽出処理を示すフローチャートである。
【0068】
ステップS701では、抽出定義情報に設定された正規表現パターンを取得する。正規表現パターンの例としては、
図13のフィールド名1302の関連法令であれば、抽出定義1304の「.+(法|条例)」となる。これは、「法」または「条例」が後方一致する文字列を検出するための正規表現であり、この条件によれば例えば、「建築基準法」「騒音対策条例」などが抽出可能となる。
【0069】
ステップS702では、該文書に対してステップS701で取得した正規表現のパターンマッチを行う。
【0070】
ステップS703では、ステップS702でマッチした部分全てについて処理が行われたかどうかを判断する。全てのパターンで処理が行われた場合(S703のYes)該フローチャートの処理を終了し、そうでない場合(S703のNo)ステップS704へ処理を進める。
【0071】
ステップS704では、マッチした部分を該文書のフィールドの値として記録する。また、グループや名前付き前方参照といった正規表現の機能を用いてマッチした部分の一部をフィールドの値として使ってもよい。
【0072】
図8は、形態素解析で得られた品詞によるフィールドの抽出処理を示すフローチャートである。
【0073】
ステップS801では、抽出定義を取得する。例えば、本実施例であれば、
図13のフィールド名1302の住所の抽出定義1304に定められる品詞の並びを取得する。この場合であれば、抽出定義は[名詞-固有名詞-地域]の並びで定められている。つまり、これは、名詞の中の固有名詞の中の地域カテゴリに属する単語の並びを抽出することを意味し、「東京都港区港南」といった文字列が抽出される。
【0074】
ステップS802では、該文書に形態素解析を実行する。
【0075】
ステップS803では、ステップS801で取得した抽出定義に合致する品詞の並びがあるかどうかを判断する。品詞の並びがない場合(S803のNo)該フローチャートの処理を終了し、そうでない場合(S803のYes)処理をステップS804に進める。
【0076】
ステップS804では、マッチした部分を該文書のフィールドの値として記録する。
【0077】
続けて、
図9、
図17を用いて、本発明の実施形態における文書検索処理部が実行する処理について説明する。
【0078】
図9は、検索処理部102において、ユーザからの検索語を入力として受けとり、インデックス済みの文書を検索する処理を示すフローチャートである。
【0079】
ステップS901では、ユーザからの検索語を取得する。
【0080】
ステップS902では、インデックス済みの全文書に対して文書スコアが未計算の文書が存在するかどうかを判断する。文書スコアが未計算の文書が存在する場合(S902のYes)処理をステップS903に進め、そうでない場合(S902のNo)処理をステップS908に進める。
【0081】
ステップS903では、文書スコア未計算の文書を取得する。
【0082】
ステップS904では、該文書の本文に対する検索スコアを計算する。検索スコアとは、検索語との関連度合いを数値で表した値である。本文に対する検索スコアを、本文スコアと呼ぶ。なお、本実施例においては、本文スコアは公知の検索スコア算出方法により算出される値とする。
【0083】
ステップS905では、フィールドスコアが未計算のフィールドが存在するかどうかを判断する。存在する場合(S905のYes)処理をステップS806に進め、そうでない場合(S905のNo)処理をステップS907に進める。
【0084】
ステップS906では、フィールドスコア未計算のフィールドを取得し、該フィールドに対する検索スコアを計算する。このスコアをフィールドスコアと呼ぶ。
【0085】
フィールドスコアの計算の方法の一例を、
図17を用いて説明する。ユーザから「AAA株式会社 大阪」という検索語を受け付けた場合について説明する。。
【0086】
図17Aは、大阪府警担当者議事録というタイトルの文書を示した図で、当該文書をフィールド毎に分け、各フィールドの値と重みが対応付けられている。
図17Bは、○○プロジェクト概要というタイトルの文書を示した図で、
図17Aと同様に、フィールド毎に値と重みとが対応付けてある。なお、重みは、当該文書のカテゴリによって定まる値である。なお、
図17において各フィールドの値として示している内容は、説明の為に抽出定義に合致しない文字列も含めて示しているが、ステップS506、ステップS604、ステップS704で説明した通り、各フィールドの値として登録されるのは、抽出定義に合致した文字列である。
【0087】
まず、検索語の出現回数をフィールド毎にカウントする。
【0088】
図17Aの文書であれば、タイトルフィールド1803には「大阪」は1回出現、人名フィールド1804には「大阪」は0回出現、本文フィールド1705には「大阪」は3回出現している。そして、各フィールドでの検索語の出現回数をフィールド毎に設定されている重みとをかけてフィールドスコアを求める。
【0089】
タイトルフィールド1803に設定されている重みは1806に示すように2で大阪は1回出現なので、1×2=2となる。同様に、人名フィールド1804は0×5=0、本文フィールド1805は3×1=3となる。これらの合計値(2+0+3=5)が「大阪府警担当者議事録」という文書のフィールドスコアとして算出される。
【0090】
同様に
図17Bの、○○プロジェクト概要.PDFのフィールドスコアを計算すると、会社名フィールドで、検索語AAA株式会社が1回出現しているので1×5=5、住所フィールドで大阪が1回出現しているので1×5=5、本文フィールドでAAA株式会社と大阪がそれぞれ1回ずつ出現しているので2×1=2となる。これらの合計値(5+5+2=12)が○○プロジェクト概要.PDFのフィールドスコアとして算出される。
【0091】
ステップS907では、ステップS904で算出した該文書の本文スコアと、ステップS906で算出した該文書のフィールドスコアを合算する。この値を文書スコアと呼ぶ。
【0092】
なお、本実施例においては、本文スコアとフィールドスコアとを合算したスコアを文書スコアとしたが、各フィールドの重みを考慮したスコアであるフィールドスコアのみを用いても良い。
【0093】
ステップS908では、文書スコアの降順で検索結果をユーザに示す。なお、本実施例では検索語との関連性が強い文書の文書スコアが高くなる計算方法を用いたため、降順で検索結果をユーザに示したが、検索語との関連性が強い文書の文書スコアが小さくなる算出方法を用いる場合は、昇順により表示する。すなわち、検索語との関連性が強い文書が検索結果の上位に表示されるようソートして表示する。
【0094】
以上のように、抽出定義情報で「人名」や「会社名」や「住所」など、当該カテゴリの文書を特徴付けるフィールドに対して大きな重みを設定し、設定されたフィールド毎の重みを考慮して検索スコアを算出することで、検索語が同じ数だけ含まれる文書であっても、よりユーザ(検索者)の意図に合った(ユーザが探し求めている)文書を上位に表示することが可能となる。
【0095】
ステップS909では、検索セッション統計情報更新処理を行う。
図10のフローチャートを用いて後述する。
【0096】
ステップS910では、フィールド重み更新処理を行う。
図11のフローチャートを用いて後述する。
【0097】
図10は、ユーザの検索セッションでの統計情報を更新する処理を示すフローチャートである。なお、検索セッションとはユーザが検索結果を取得して、該検索結果を破棄するまでの期間のことを言う。
【0098】
ステップS1001では、検索セッション統計情報テーブル
図15の1400の初期化を行う。該検索結果に含まれる全ての文書情報について、文書ID、カテゴリを設定しセッション閲覧数を0に設定する。
【0099】
ステップS1002では、検索セッションが終了しているかどうかを判断する。終了している場合(S1002のYes)該フローチャートの処理を終了し、そうでない場合(S1002のNo)ステップS1003に処理を進める。
【0100】
ステップS1003では、ユーザが検索結果の文書を選択したかどうかを判断する。選択していない場合(S1003のNo)処理をステップS1002に進め、そうでない場合(S903のYes)は処理をステップS1004に進める。
【0101】
ステップS1004では、ユーザが選択した文書の情報を取得する。
【0102】
ステップS1005では、検索セッション統計情報テーブルの該文書のエントリを更新する。この場合、該テーブルのセッション閲覧数に1を加える。
【0103】
図11は、検索セッション統計情報を利用して抽出定義のフィールド重みを更新する処理を示すフローチャートである。検索の情報に応じてフィールド重みを更新していくことで、より検索精度が向上していくことが見込まれる。
【0104】
ステップS1101では、検索セッション統計情報テーブル
図15の1400を取得する。なお、ここで取得するのは検索セッションの終了した検索セッション統計情報テーブルのみである。
【0105】
ステップS1102では、ヒット文書のカテゴリごとに閲覧数を集計する。ヒット文書とは、検索処理部により検索された文書である。検索の結果ヒットした文書をユーザが閲覧したかを集計することで、次回の検索精度を上げるために利用される。
【0106】
ステップS1103では、ステップS1102で集計したカテゴリの中に未処理のカテゴリがあるかどうかを判断する。未処理のカテゴリがある場合(S1103のYes)処理をステップS1004に進め、そうでない場合(S1103のNo)処理をステップS1109に進める。
【0107】
ステップS1104では、未処理のカテゴリの抽出定義を取得する。
【0108】
ステップS1105では、検索語に含まれる未処理のフィールド情報(当該カテゴリの抽出定義として設定されたフィールドのうち、検索語として用いられたワードが該当するフィールドであって、未処理のフィールド)があるかどうかを判断する。未処理のフィールド情報がある場合(S1105のYes)処理をステップS1106へ進め、そうでない場合(S1105のNo)処理をステップS1103に進める。
【0109】
ステップS1106では、該カテゴリのセッション閲覧数が0より大きいかどうかを判断する。0より大きい場合(S1106のYes)処理をステップS1107に進め、そうでない場合(S1106のNo)処理をステップS1108に進める。
【0110】
ステップS1107では、該カテゴリのセッション閲覧数が0より大きく、該フィールドが検索に貢献できたと考え、該フィールドのフィールド重みを(セッション閲覧数)×0.01だけ加算する。この計算式はあくまでも一例であり、その他の計算方法を用いても構わない。
【0111】
ステップS1108では、該カテゴリのセッション閲覧数が0であり、該フィールドが検索に貢献していないと考え、該フィールドのフィールド重みを0.01だけ減算する。この計算式はあくまでも一例であり、その他の計算方法を用いても構わない。
【0112】
ステップS1109では、不要となった該検索セッション統計情報テーブルを破棄する。
【0113】
ここで、
図11を用いて、フィールド重み更新処理の一例を説明する。まず、検索語に「住所」と「建物用途」を含む検索語が使われたとし、検索セッション終了時の検索セッション統計情報テーブルが
図16の1400であったとする。また、カテゴリ「工事概要」「注文書」「議事録」の抽出定義がそれぞれ、1500、1600、1700であったとする。またフィールド重み更新式はセッション閲覧数が0より大きい場合は(セッション閲覧数)×0.01を加算、0の場合は0.01の減算とする。この場合、テーブル1300より検索結果のカテゴリごとのセッション閲覧数は、工事概要が2、注文書と議事録が0となる。工事概要のフィールド重みの更新は、フィールド「住所」(
図16の1501)と「建物用途」(
図16の1502)が両方とも定義されていることから、2×0.01=0.02が加算され、更新後のフィールド重みはそれぞれ3.02と2.02となる。注文書のフィールド重みの更新は「住所」(
図16の1601)のみが定義されていることから、0.01の減算となり、更新後のフィールド重みは0.09となる。議事録のフィールド重みの更新は「住所」「建物用途」ともに定義されていないため行われない。
【0114】
図12は、現在定義されている抽出定義の確認と、追加、削除を行う画面である。抽出定義一覧画面1200は抽出定義追加ボタン1201、一括削除ボタン1202、チェックボックス1203、編集ボタン1204、個別削除ボタン1205からなる。
【0115】
抽出定義追加ボタン1201は、押下することで抽出定義詳細画面(
図13)に遷移し、新規に抽出定義を作成するためのものである。
【0116】
一括削除ボタン1202は、押下することでチェックボックス1203が有効になっている全ての抽出定義を一括削除するものである。
【0117】
チェックボックス1203は、有効にすることで一括削除ボタン1202を用いて一括削除を行えるようにするためのものである。
【0118】
編集ボタン1204は、押下することで抽出定義詳細画面(
図13)に遷移し、選択した抽出定義を編集するためのものである。
【0119】
個別削除ボタン1205は、押下することで選択した抽出定義を削除するためのものである。
【0120】
図13は、抽出定義の詳細の追加、確認、編集を行う画面である。抽出定義詳細画面1300は、カテゴリ名テキストボックス1301、フィールド名テキストボックス1302、抽出方式プルダウンリスト1303、抽出定義テキストボックス1304、フィールド重みテキストボックス1305、フィールド削除ボタン1306、抽出定義フィールド追加ボタン1307からなる。
【0121】
なお、抽出定義一覧画面1100の抽出定義追加ボタン1101を押下して本画面に遷移した場合は、カテゴリ名テキストボックス1301は空欄で、フィールド名テキストボックス1302、抽出方式プルダウンリスト1303、抽出定義テキストボックス1304、フィールド重みテキストボックス1305は初期状態では表示されていない。また、抽出定義一覧画面1200の編集ボタンから本画面に遷移した場合、該抽出定義の内容がカテゴリ名テキストボックス1301、フィールド名テキストボックス1302、抽出方式プルダウンリスト1303、抽出定義テキストボックス1304、フィールド重みテキストボックス1305に表示される。
【0122】
カテゴリ名テキストボックス1301は、この抽出定義につける名称を設定するためのものである。
【0123】
フィールド名テキストボックス1302は、フィールドの名称を設定するためのものである。
【0124】
抽出方式プルダウンリスト1303は、抽出方式を選択するためのものである。ここでは「キーワード」「パターン」「形態素解析」から選択する。
【0125】
抽出定義テキストボックス1304は、抽出の定義を設定するためのものである。抽出方式が「キーワード」の場合は抽出するキーワードのリスト、「パターン」の場合は正規表現パターン、「形態素解析」の場合は抽出したい形態素の並びを設定する。
【0126】
フィールド重みテキストボックス1305は、フィールド重みを設定するためのものである。
【0127】
フィールド削除ボタン1306は、押下することで該フィールドの抽出定義を削除するためのものである。
【0128】
抽出定義フィールド追加ボタン1307は、押下することで空欄のフィールド名テキストボックス1302、抽出方式プルダウンリスト1303、抽出定義テキストボックス1304、フィールド重みテキストボックス1305、フィールド削除ボタン1306が最下行に追加され新しいフィールドの定義ができるようになる。
【0129】
このようにして、カテゴリごとに抽出定義を設定することにより検索精度の向上が見込まれる。例えば、登録文書内の建築設計書の工事概要と注文書を比較した場合、工事概要の住所(建設場所)の情報は地形や適用される自治体の条例が異なるなど非常に重要な項目であるが、注文書の住所は特に重要な情報でないため、工事概要ではフィールド重みを高め(例えば3)に、注文書では低め(例えば0.1)に設定することで、同じフィールドでのカテゴリごと重要度の違いを表現できる。このように設定することで、住所で検索を行った場合、検索スコアが高めになる工事概要が検索結果上位に、検索スコアが低めになる注文書は検索下位に表示されることが見込め、検索ユーザの意図に沿った検索結果となりやすい。
【0130】
仮にカテゴリごとにフィールド重みを設定しなかった場合、住所で検索した場合、どのカテゴリの文書でも住所を重視するよう設定した場合、工事概要と注文書の両方が検索結果に混在することになり利便性が低下すると考えられる。
【0131】
図15の検索セッション統計情報テーブル1400は、検索セッションの統計情報を保持するためのテーブルであり、文書ID1401、カテゴリ1402、セッション閲覧数1403の項目からなる
文書ID1401には、検索でヒットした文書を特定するための項目であり、ヒットした文書のIDが登録される。
【0132】
カテゴリ1402には、該文書のカテゴリが登録される。
【0133】
セッション閲覧数1403には、ユーザが検索セッション中に該文書を閲覧した回数を記録する。
【0134】
以上、本実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0135】
また、本発明におけるプログラムは、
図3~
図11に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は
図3~
図11の処理方法をコンピュータが実行可能なプログラムが記憶されている。
【0136】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0137】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0138】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0139】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0140】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0141】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0142】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0143】
2000 文書検索システム
100 情報処理装置
101 文書登録処理部
102 文書検索処理部
103 形態素解析辞書
104 登録文書インデックス
105 抽出定義DB
106 検索セッション統計情報
107 文書DB
108 クライアントPC