(57)【要約】【課題】抽出条件が一定でない場合であっても指定された情報項目の内容を示す情報文字列を抽出する。【解決手段】指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、情報文字列を抽出する文字列抽出装置であって、情報項目ごとに、情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とを記憶する発生頻度記憶部と、指定された情報項目について、発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の発生頻度に基づいて、文字列データにおける前方文字列及び後方文字列の位置を特定する境界文字列特定部と、境界文字列特定部によって特定された前方文字列及び後方文字列の間にある文字列を情報文字列として抽出する文字列抽出部と、を備える。【選択図】図１
2007304754.tif 000002
【特許請求の範囲】
【請求項１】
指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する文字列抽出装置であって、
前記情報項目ごとに、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とを記憶する発生頻度記憶部と、
指定された前記情報項目について、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する境界文字列特定部と、
前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する文字列抽出部と、
を備えることを特徴とする文字列抽出装置。
【請求項２】
請求項１に記載の文字列抽出装置であって、
複数の前方文字列及び後方文字列を記憶する境界文字列記憶部と、
前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記録する発生頻度算出部と、
を更に備えることを特徴とする文字列抽出装置。
【請求項３】
請求項１又は２に記載の文字列抽出装置であって、
前記境界文字列特定部は、
前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度と、前記情報文字列における所定の文字列規則とに基づいて、前記前方文字列及び前記後方文字列の位置を特定すること、
を特徴とする文字列抽出装置。
【請求項４】
請求項２又は３に記載の文字列抽出装置であって、
前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列を前記境界文字列記憶部に記録する境界文字列更新部を、
更に備えることを特徴する文字列抽出装置。
【請求項５】
請求項２又は３に記載の文字列抽出装置であって、
前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列と、前記前方文字列及び前記後方文字列が特定された時を示す特定時データとを対応付けて前記境界文字列記憶部に記録する境界文字列更新部を更に備え、
前記発生頻度算出部は、
前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列のうち、前記特定時データが所定の期間内にある前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記録すること、
を特徴とする文字列抽出装置。
【請求項６】
請求項１〜５の何れか一項に記載の文字列抽出装置であって、
前記境界文字列特定部は、
前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データ中の位置ごとに前方文字列及び後方文字列の位置であるかどうかを示す確度を算出し、前記確度が最高の位置を前方文字列及び後方文字列の位置であると特定すること、
を特徴とする文字列抽出装置。
【請求項７】
請求項６に記載の文字列抽出装置であって、
前記境界文字列特定部によって算出された前記確度の最高値が所定の閾値より低い場合は、警告データを出力する警告データ出力部を、
更に備えることを特徴とする文字列抽出装置。
【請求項８】
指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する方法であって、
前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定し、
指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出すること、
を特徴とする文字列抽出方法。
【請求項９】
指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出するためのプログラムであって、
プロセッサに、
前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する機能と、
指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列抽出装置、文字列抽出方法、及びプログラムに関する。
【背景技術】
【０００２】
インターネットの普及に伴い、インターネットを利用したオンラインバンキングシステム等の利用が急速に進んでいる。このようなシステムを利用するためには、利用者を認証するためのユーザＩＤやパスワード等の認証情報を入力する必要がある。そして、認証情報はシステムを提供する金融機関等により異なっている。そのため、複数の金融機関等のシステムを利用する場合、各システムのログイン画面等において、そのシステムに応じた認証情報を入力する必要がある。
【０００３】
近年、このような各システムでの認証情報の入力の煩わしさを軽減するためのものとして、アグリゲーションサービスが提供されはじめている。アグリゲーションサービスにおいては、複数の金融機関等にログインするためのＵＲＬ（Uniform Resource Locator）や認証情報がアグリゲーションサーバに登録される。そして、アグリゲーションサーバは、登録されたＵＲＬや認証情報に基づいて、各システムにログインし、各システムから送信されてくるＨＴＭＬ（Hyper Text Markup Language）等のデータを受信する。その後、アグリゲーションサーバは、送信されてきたＨＴＭＬ等のデータの中から、例えば預金口座の残高情報等、利用者に提供するための情報項目の内容を示す情報文字列を抽出する。
【０００４】
このようなＨＴＭＬ等のデータは固定長ではないため、データの先頭からの位置を指定することによって所望のデータを抽出することはできない。そこで、ＨＴＭＬ等のデータの中から必要な文字列を抽出する技術として、スクリーン・スクレイピングが知られている。スクリーン・スクレイピングでは、一般的に、抽出したい文字列の前方にある文字列（前方文字列）や後方にある文字列（後方文字列）等の条件を指定することにより、必要な情報項目の内容を示す情報文字列の抽出が行われる（特許文献１）。例えば、ある金融機関のシステムでは、ＨＴＭＬデータ中の「<Font Size="2">残高：」と「</Font>」との間にあるデータが残高（情報項目）の内容を示す情報文字列であると特定できることがある。このような場合、前方文字列を「<Font Size="2">残高：」、後方文字列を「</Font>」とすることにより、所望の残高情報を抽出することができる。
【特許文献１】特開２００４−２３４２３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、金融機関等のシステムでは、ＨＴＭＬ等の微細な変更が行われる場合がある。例えば、前述した金融機関の残高情報の場合において、前方文字列が「<Font Size="2">預金残高」と変更される場合等である。
【０００６】
抽出したい文字列の前方文字列や後方文字列等の抽出条件が変更されると、文字列を抽出するためのプログラムを、変更された抽出条件に沿うように修正する必要がある。したがって、ＨＴＭＬ等の微細な変更が生じる度にプログラムの変更をする必要が生じ、メンテナンスコストが高くなる。また、アグリゲーションサーバの運営者と金融機関等のシステム提供者が異なる場合等においては、ＨＴＭＬ等の変更を事前に知ることができないことがある。そのため、ＨＴＭＬ等が変更されると、所望のデータを正しく抽出できない場合もある。
【０００７】
本発明は上記課題を鑑みてなされたものであり、抽出条件が一定でない場合であっても指定された情報項目の内容を示す情報文字列を抽出可能な文字列抽出装置、文字列抽出方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の文字列抽出装置は、指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する文字列抽出装置であって、前記情報項目ごとに、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とを記憶する発生頻度記憶部と、指定された前記情報項目について、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する境界文字列特定部と、前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する文字列抽出部と、を備えることとする。
【０００９】
また、前記文字列抽出装置は、複数の前方文字列及び後方文字列を記憶する境界文字列記憶部と、前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記録する発生頻度算出部と、を更に備えることとしてもよい。
【００１０】
また、前記境界文字列特定部は、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度と、前記情報文字列における所定の文字列規則とに基づいて、前記前方文字列及び前記後方文字列の位置を特定することとしてもよい。
【００１１】
また、前記文字列抽出装置は、前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列を前記境界文字列記憶部に記録する境界文字列更新部を、更に備えることとしてもよい。
【００１２】
また、前記文字列抽出装置は、前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列と、前記前方文字列及び前記後方文字列が特定された時を示す特定時データとを対応付けて前記境界文字列気億部に記録する境界文字列更新部を更に備え、前記発生頻度算出部は、前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列のうち、前記特定時データが所定の期間内にある前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記憶することとしてもよい。
【００１３】
また、前記境界文字列特定部は、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データ中の位置ごとに前方文字列及び後方文字列の位置であるかどうかを示す確度を算出し、前記確度が最高の位置を前方文字列及び後方文字列の位置であると特定することとすることができる。
【００１４】
さらに、前記文字列抽出装置は、前記境界文字列特定部によって算出された前記確度の最高値が所定の閾値より低い場合は、警告データを出力する警告データ出力部を、更に備えることとしてもよい。
【００１５】
また、本発明の文字列抽出方法は、指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する方法であって、前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定し、指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出することとする。
【００１６】
また、本発明のプログラムは、指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出するためのプログラムであって、プロセッサに、前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する機能と、指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する機能と、を実現させるためのものとする。
【発明の効果】
【００１７】
本発明によれば、抽出条件が一定でない場合であっても指定された情報項目の内容を示す情報文字列を抽出することができる。
【発明を実施するための最良の形態】
【００１８】
＝＝システム構成＝＝
（１）全体構成
図１は、本発明の文字列抽出装置の一実施形態であるアグリゲーションサーバを含んで構成される情報処理システムの構成例を示す図である。システムは、アグリゲーションサーバ１０、利用者端末１５、及び複数のＷｅｂサーバ２０Ａ〜２０Ｃを含んで構成されている。そして、アグリゲーションサーバ１０、利用者端末１５、及びＷｅｂサーバ２０Ａ〜２０Ｃは、インターネット等のネットワーク３０を介して相互に通信可能に接続されている。
【００１９】
アグリゲーションサーバ１０は、ＰＣサーバやワークステーション等の情報処理装置であり、複数のＷｅｂサーバ２０Ａ〜２０Ｃにおける利用者のユーザＩＤやパスワード等の認証情報を保持している。そして、アグリゲーションサーバ１０は、これらの認証情報を用いてＷｅｂサーバ２０Ａ〜２０Ｃにログインし、Ｗｅｂサーバ２０Ａ〜２０Ｃから送信されてくる例えばＨＴＭＬ形式やＸＭＬ形式等のデータを受信する。その後、アグリゲーションサーバ１０は、受信したデータに含まれる、例えば残高情報等の利用者に提供すべき情報項目の内容を示す情報文字列を抽出し、利用者端末１５に提供可能なＨＴＭＬ形式等のデータに変換する。
【００２０】
利用者端末１５は、パーソナルコンピュータや携帯情報端末等の情報処理装置であり、ネットワーク３０を介してＨＴＭＬ形式等のデータを送受信し、受信したデータを画面に表示することができるＷｅｂブラウザを備えている。
【００２１】
Ｗｅｂサーバ２０Ａ〜２０Ｃは、ＰＣサーバやワークステーション等の情報処理装置であり、利用者端末１５やアグリゲーションサーバ１０等からの要求に応じて様々な情報をＨＴＭＬ形式等のデータとして送信することができる。例えば、Ｗｅｂサーバ２０Ａは、Ａ銀行のオンラインバンキングシステムを提供するサーバであり、利用者の預金口座の残高情報等が含まれるＨＴＭＬデータを送信することができる。同様に、例えば、Ｗｅｂサーバ２０Ｂは、Ｂ銀行のオンラインバンキングシステムを提供するサーバである。また、例えば、Ｗｅｂサーバ２０Ｃは、Ｃ証券のオンライントレードシステムを提供するサーバであり、利用者が保有する株式や投資信託等の取得金額や評価金額等が含まれるＨＴＭＬデータを送信することができる。
【００２２】
（２）アグリゲーションサーバのハードウェア構成
図２は、アグリゲーションサーバ１０のハードウェア構成の一例を示す図である。アグリゲーションサーバ１０は、ＣＰＵ（プロセッサ）４０、メモリ４１、記憶装置４２、通信インタフェース（通信Ｉ／Ｆ）４３、及び記録媒体読取装置４４を含んで構成されている。
【００２３】
ＣＰＵ４０は、アグリゲーションサーバ１０を統括制御するものであり、メモリ４１に格納されたプログラムを実行することにより各種機能を実現する。なお、ＣＰＵ４０がプログラムを実行する際には、記憶装置４２に格納されたプログラムが順次メモリ４１に読み出される。
【００２４】
メモリ４１は、例えばＲＡＭ（Random Access Memory）やフラッシュメモリ等の書き込み可能な記憶領域であり、ＣＰＵ４０が実行するプログラムやＣＰＵ４０が生成したデータ等が一時的に格納される。
【００２５】
記憶装置４２は、例えばハードディスク等であり、ＣＰＵ４０が実行するプログラムや各種データの記憶領域として用いられる。ＣＰＵ４０が記憶装置４２に格納されたプログラムやデータを読み出す際には、これらのデータがメモリ４１に格納される。また、メモリ４１に一時的に格納されたデータは、適宜のタイミングで記憶装置４２に格納される。なお、メモリ４１がフラッシュメモリ等の不揮発性の記憶領域である場合等においては、記憶装置４２を備えない構成とすることも可能である。
【００２６】
通信インタフェース４３は、アグリゲーションサーバ１０をネットワーク３０に接続するためのインタフェースであり、例えばイーサネット（登録商標）規格のネットワークカード等である。
【００２７】
記録媒体読取装置４４は、ＣＤ−ＲＯＭ等の記録媒体５０に記録されているプログラムやデータ等を読み取ってメモリ４１や記憶装置４２に格納するためのものである。
【００２８】
（４）アグリゲーションサーバの記憶部構成
図３は、アグリゲーションサーバ１０が備える記憶部の構成を示す図である。アグリゲーションサーバ１０は、認証情報記憶部６０、収集データ記憶部６１、境界文字列記憶部６２、発生頻度記憶部６３、スコア記憶部６４、情報文字列記憶部６５、及び提供データ記憶部６６を備えている。なお、これらの記憶部６０〜６６は、記憶装置４２上に実現される。
【００２９】
認証情報記憶部６０には、アグリゲーションサービスの利用者ごとに、アグリゲーションサービスを利用するための認証情報と、Ｗｅｂサーバ２０Ａ〜２０Ｃから情報を収集するために必要な情報とが対応付けられて記憶されている。アグリゲーションサービスを利用するための認証情報とは、例えば、アグリゲーションサーバ１０にログインするためのユーザＩＤ・パスワード等である。また、Ｗｅｂサーバ２０Ａ〜２０Ｃから情報を収集するために必要な情報とは、例えば、Ｗｅｂサーバ２０Ａ〜２０Ｃにより提供されるシステムのＵＲＬ（Uniform Resource Locator）や、ログインの際に必要となるユーザＩＤ・パスワード等の認証情報等である。
【００３０】
収集データ記憶部６１には、Ｗｅｂサーバ２０Ａ〜２０Ｃから収集されたＨＴＭＬ形式やＸＭＬ形式等のデータである収集データ（文字列データ）が記憶される。この収集データの中には、例えば預金口座の残高情報等、利用者に提供すべき情報項目の内容を示す情報文字列が含まれている。
【００３１】
境界文字列記憶部６２には、収集データの中において情報文字列との境界にある文字列である境界文字列が記憶されている。本実施形態においては、境界文字列のうち、情報文字列の前方にあるものを前方文字列、情報文字列の後方にあるものを後方文字列と称することとする。
【００３２】
図４は、収集データに含まれる境界文字列の一例を示す図である。収集データ７０Ａ〜７０Ｄは、認証情報記憶部６０に記憶されている、ある利用者の情報に基づいて、例えばＷｅｂサーバ１０Ａから異なるタイミングで収集されたＨＴＭＬ形式等のデータである。収集データ７０Ａでは、例えば残高情報等の情報項目の内容を示す情報文字列が「５００」、前方文字列が「ＡＣ」、後方文字列が「ＤＧ」となっている。また、収集データ７０Ｂでは、情報文字列が「３００」、前方文字列が「ＡＢ」、後方文字列が「ＥＦ」となっている。また、収集データ７０Ｃでは、情報文字列が「４００」、前方文字列が「ＨＡ」、後方文字列が「ＤＧ」となっている。また、収集データ７０Ｄでは、情報文字列が「２０００」、前方文字列が「ＡＢ」、後方文字列が「ＦＩ」となっている。なお、図４に示した収集データ７０Ａ〜７０Ｄにおいては、境界文字列の長さを２としたが、境界文字列の長さは２に限られるものではない。また、前方文字列の長さと後方文字列の長さが同一である必要もない。
【００３３】
図５は、境界文字列記憶部６２に記憶される情報の一例を示す図である。ここでは、図４に例示した収集データ７０Ａ〜７０Ｄに含まれる境界文字列が記憶されている。図に示すように、境界文字列記憶部６２には、収集データ７０Ａ〜７０Ｄから抽出された前方文字列及び後方文字列と、収集データ７０Ａ〜７０ＤがＷｅｂサーバ１０Ａから収集されたタイミングを示す取得日（特定時データ）とが対応付けられて記憶されている。
【００３４】
発生頻度記憶部６３には、残高情報等の情報項目ごとに、境界文字列における各文字の発生頻度が記憶されている。図６は、ある情報項目について、発生頻度記憶部６３に記憶される発生頻度の一例を示す図である。ここでは、図５に例示した前方文字列及び後方文字列における各文字の発生確率が記憶されている。つまり、図５に示した４つの前方文字列の１文字目は、「Ａ」、「Ａ」、「Ｈ」、「Ａ」となっており、前方文字列の１文字目が「Ａ」となる確率が３／４、「Ｈ」となる確率が「１／４」となっている。また、図５に示した４つの前方文字列の２文字目は、「Ｃ」、「Ｂ」、「Ａ」、「Ｂ」となっており、前方文字列の２文字目が「Ａ」となる確率が１／４、「Ｂ」となる確率が１／２、「Ｃ」となる確率が「１／４」となっている。同様に、後方文字列の１文字目が「Ｄ」となる確率が１／２、「Ｅ」となる確率が１／４、「Ｆ」となる確率が「１／４」となっている。また、後方文字列の２文字目が「Ｆ」となる確率が１／４、「Ｇ」となる確率が１／２、「Ｉ」となる確率が１／４となっている。なお、本実施形態では、発生頻度を示す情報として発生確率を用いているが、発生頻度を示す情報は発生確率に限られるものではない。
【００３５】
スコア記憶部６４には、収集データ記憶部６１に記憶されている収集データ中の位置ごとに、発生頻度記憶部６３に記憶されている発生頻度に基づいて算出された前方文字列及び後方文字列の位置の可能性を示すスコア（確度）が記憶される。
【００３６】
情報文字列記憶部６５には、収集データから抽出された情報文字列が記憶される。つまり、図４に示した収集データ７０Ａ〜７０Ｄの場合であれば、「５００」、「３００」、「４００」、「２０００」が情報文字列記憶部６５に記憶される。
【００３７】
提供データ記憶部６６には、収集データから抽出された情報文字列を利用者に提供する形式に変換した提供データが記憶される。提供データは、例えば、Ｗｅｂサーバ２０Ａ〜２０Ｃから収集されたデータから抽出された残高情報等が、利用者端末１５で表示可能なＨＴＭＬ形式等のデータに埋め込まれたものである。つまり、利用者端末１５からの要求に応じてこの提供データが利用者端末１５に送信されることにより、利用者端末１５の画面には、複数の金融機関等における利用者に関する情報が表示されることとなる。
【００３８】
（５）アグリゲーションサーバの機能ブロック構成
図７は、アグリゲーションサーバ１０が備える機能ブロックを示す図である。アグリゲーションサーバ１０は、データ収集部８０、発生頻度算出部８１、文字列長決定部８２、境界文字列特定部８３、文字列抽出部８４、境界文字列更新部８５、警告データ出力部８６、及び提供データ生成部８７を備えている。なお、これらの機能ブロック８０〜８７は、ＣＰＵ４０が記憶装置４２に格納されたプログラムを実行することにより実現される。
【００３９】
データ収集部８０は、認証情報記憶部６０に記憶されているＵＲＬやユーザＩＤ、パスワード等を用いて、Ｗｅｂサーバ２０Ａ〜２０Ｃから預金残高等の情報項目の内容を示す情報文字列が含まれたＨＴＭＬ形式等のデータを取得する。そして、データ収集部８０は、取得したデータを収集データ記憶部６１に格納する。
【００４０】
発生頻度算出部８１は、境界文字列記憶部６２に記憶されている前方文字列及び後方文字列を参照し、前方文字列及び後方文字列における各文字の発生頻度を算出する。そして、発生頻度算出部８１は、算出した発生頻度を発生頻度記憶部６３に記録する。
【００４１】
文字列長決定部８２は、情報文字列記憶部６５に記憶されている抽出された文字列を参照し、残高情報等の情報項目ごとに、その情報項目の内容を示す情報文字列のデータ長の範囲を決定する。例えば、図８に示すように、情報文字列の文字数の正規分布に従って、情報文字列のデータ長の範囲を決定することができる。図８の例では、情報文字列の最小データ長が２、最大データ長が５と決定されている。
【００４２】
境界文字列特定部８３は、指定された情報項目について、発生頻度記憶部６３に記憶されている発生頻度に基づいて、収集データ記憶部６１に記憶されている収集データ中の位置ごとに前方文字列及び後方文字列のスコアを算出してスコア記憶部６４に格納し、スコアが最高の位置を前方文字列及び後方文字列の位置であると特定する。
【００４３】
文字列抽出部８４は、境界文字列特定部８３によって特定された前方文字列及び後方文字列に挟まれている文字列を、指定された情報項目の内容を示す情報文字列として抽出し、情報文字列記憶部６５に格納する。
【００４４】
境界文字列更新部８５は、境界文字列特定部８３によって特定された前方文字列及び後方文字列を、境界文字列記憶部６２に格納する。
【００４５】
警告データ出力部８６は、境界文字列特定部８３によって算出されたスコアの最高値が所定の閾値より低い場合、警告データを出力する。例えば、預金口座の残高情報を表示するＨＴＭＬが大幅に変更された場合、残高情報の前方文字列及び後方文字列も大幅に変更されている可能性がある。そのため、発生頻度記憶部６３に記憶されている発生頻度に基づいて前方文字列及び後方文字列の位置を正しく特定することが難しい場合がある。このような場合、境界文字列特定部８３によって算出されたスコアが低くなると考えられるため、スコアの最高値が所定の閾値より低い場合には、収集データの形式が大幅に変更されていると判断することができる。なお、警告データの出力方法としては、例えば、アグリゲーションサーバ１０の管理者宛にメールを送信する方法や、アグリゲーションサーバ１０の所定のファイルにエラーメッセージを出力する方法等、様々な方法を採用することができる。
【００４６】
提供データ生成部８７は、文字列抽出部８４によって抽出された情報文字列を、利用者端末１５に提供可能なＨＴＭＬ形式等のデータに変換し、提供データ記憶部６６に格納する。例えば、提供データ生成部８７は、Ｗｅｂサーバ２０Ａ〜２０Ｃから取得された残高情報等を一覧表示可能なＨＴＭＬ形式のデータに変換することができる。
【００４７】
＝＝動作説明＝＝
（１）動作概要
アグリゲーションサーバ１０の動作の概要を説明する。図９は、アグリゲーションサーバ１０の動作の一例を示す図である。この例では、前方文字列及び後方文字列のデータ長は２であり、情報文字列のデータ長の範囲は文字列長決定部８２によって２〜５と定められていることとする。また、発生頻度算出部８１によって算出された前方文字列及び後方文字列における各文字の発生頻度が、発生頻度記憶部６３に格納されている状態であるとする。
【００４８】
まず、境界文字列特定部８３は、収集データ記憶部６１に記憶されている収集データ９０を読み出し、適当な位置を前方文字列の開始位置（Ｓ１）とする。図９（ａ）では、「Ｋ」が前方文字列の最初の開始位置とされ、前方文字列が「ＫＡ」となっている。そして、境界文字列特定部８３は、前方文字列の位置に対応する後方文字列の開始位置（Ｓ２）を決める。図９（ａ）では、前方文字列の開始位置（Ｓ１）に、前方文字列のデータ長（２）と、情報文字列の最小データ長（２）とを加えた位置が後方文字列の開始位置（Ｓ２）となっている。つまり、後方文字列が「００」となっている。そして、境界文字列特定部８３は、前方文字列「ＫＡ」、後方文字列「００」の組み合わせについて、図６に例示した発生頻度に基づいてスコアを算出する。この場合、前方文字列の「ＫＡ」、後方文字列の「００」とも発生確率が０であるため、スコアは０となる。
【００４９】
続いて、境界文字列特定部８３は、図９（ｂ）に示すように、後方文字列の開始位置（Ｓ２）を１つ後ろにずらしてスコアを算出する。この場合も後方文字列が「００」であるため、スコアは０となる。同様に、境界文字列特定部８３は、前方文字列と後方文字列とに挟まれる文字列のデータ長が情報文字列の最大データ長（５）となるまで、後方文字列の開始位置（Ｓ２）を１つずつずらしてスコアを算出する。
【００５０】
次に、境界文字列特定部８３は、図９（ｃ）に示すように、前方文字列の開始位置（Ｓ１）を１つ後ろにずらし、前方文字列と後方文字列とに挟まれる文字列のデータ長が情報文字列の最小データ長（２）となるように後方文字列の開始位置（Ｓ２）を定める。このとき、前方文字列は「ＡＢ」、後方文字列は「００」となる。そして、前方文字列の１文字目「Ａ」の発生確率が３／４、２文字目「Ｂ」の発生確率が「１／２」であるため、前方文字列のスコアは３／４＋１／２＝５／４となる。なお、後方文字列「００」のスコアは０となるため、前方文字列及び後方文字列の合計スコアは５／４となる。
【００５１】
続いて、境界文字列特定部８３は、後方文字列の開始位置（Ｓ２）を１つずつ後ろにずらしてスコアを算出していく。そして、図９（ｄ）に示すように、後方文字列を「ＤＧ」とする場合、１文字目「Ｄ」の発生確率が１／２、２文字目「Ｇ」の発生確率が１／２であるため、後方文字列「ＤＧ」のスコアは１／２＋１／２＝１となる。そして、前方文字列「ＡＢ」のスコアは５／４であるため、前方文字列及び後方文字列の合計スコアは９／４となる。
【００５２】
このように境界文字列特定部８３は、前方文字列の開始位置（Ｓ１）及び後方文字列の開始位置（Ｓ２）を収集データ９０の中で動かしてスコアを求める。そして、例えば、図９（ｄ）に示した開始位置（Ｓ１，Ｓ２）の時のスコア９／４が最高値であったとすると、境界文字列特定部８３は、図９（ｄ）の位置（Ｓ１）が前方文字列の開始位置であり、図９（ｄ）の位置（Ｓ２）が後方文字列の開始位置であると特定する。つまり、前方文字列が「ＡＢ」、後方文字列が「ＤＧ」であると特定され、前方文字列「ＡＢ」、後方文字列「ＤＧ」及び取得日が境界文字列記憶部６２に格納される。
【００５３】
そして、文字列抽出部８４は、特定された位置の前方文字列「ＡＢ」、後方文字列「ＤＧ」の間にある文字列「３０００Ｃ」を情報文字列として抽出し、情報文字列記憶部６５に格納する。
【００５４】
このように、前方文字列及び後方文字列の位置を過去の発生頻度に基づいて定めることにより、前方文字列及び後方文字列を予め定めることなく情報文字列を抽出することが可能となる。つまり、前方文字列や後方文字列に微細な変更が加えられた場合であっても、プログラムを変更することなく、過去の傾向に従って情報文字列を抽出することができる。
【００５５】
なお、情報文字列の文字列規則が定められている場合であれば、境界文字列特定部８３は、文字列規則を考慮して前方文字列及び後方文字列を特定することも可能である。図９（ｄ）の例において、情報文字列の文字列規則が数値である場合であれば、境界文字列特定部８３は、「３０００Ｃ」の最後にある「Ｃ」は情報文字列ではなく後方文字列の一部であると判断し、「ＣＤ」が後方文字列であると特定することも可能である。この場合、境界文字列記憶部６２には、図１０に示すように、前方文字列「ＡＢ」、後方文字列「ＣＤ」が格納される。そして、文字列抽出部８４は、前方文字列「ＡＢ」、後方文字列「ＣＤ」の間にある文字列「３０００」を情報文字列として抽出し、情報文字列記憶部６５に格納する。
【００５６】
このような処理が繰り返し実行され、Ｗｅｂサーバ２０Ａ〜２０Ｃの収集データから必要な情報文字列が抽出されると、提供データ生成部８７は、情報文字列記憶部６５に格納されている情報文字列を利用者端末１５に提供可能なＨＴＭＬ形式等に変換した提供データを生成し、提供データ記憶部６６に格納する。そして、提供データ記憶部６６に格納されたデータが利用者端末１５に送信されることにより、利用者端末１５の画面に、Ｗｅｂサーバ２０Ａ〜２０Ｃから取得された残高情報等が表示される。
【００５７】
（２）処理詳細
次に、アグリゲーションサーバ１０における文字列抽出処理の詳細について説明する。図１１は、文字列抽出処理の一例を示すフローチャートである。
【００５８】
まず、境界文字列特定部８３は、情報文字列が含まれるＨＴＭＬ形式等の収集データを収集データ記憶部６１から読み出し（Ｓ１１０１）、読み出した収集データのデータ長を定数Ｚに設定する（Ｓ１１０２）。
【００５９】
そして、境界文字列特定部８３は、前方文字列の開始位置を示す変数Ｓ１に初期値１を設定し（Ｓ１１０３）、後方文字列の開始位置を示す変数Ｓ２に、Ｓ１＋Ｌ＋Ｍを設定する（Ｓ１１０４）。ここで、Ｌは前方文字列及び後方文字列のデータ長を示す定数であり、Ｍは文字列長決定部８２によって定められた情報文字列の最小データ長である。なお、本実施形態では前方文字列及び後方文字列のデータ長を同一としたが、異なるデータ長とすることもできる。
【００６０】
境界文字列特定部８３は、設定された開始位置（Ｓ１，Ｓ２）における前方文字列及び後方文字列のスコアを求め（Ｓ１１０５）、求めたスコアを開始位置（Ｓ１，Ｓ２）と対応付けてスコア記憶部６４に記録する（Ｓ１１０６）。
【００６１】
続いて、境界文字列特定部８３は、後方文字列の開始位置を１つ後ろにずらすために、変数Ｓ２に１を加算する（Ｓ１１０７）。そして、境界文字列特定部８３は、前方文字列と後方文字列との間のデータ長が情報文字列の最大データ長（Ｎ）より長いか（Ｓ２＞Ｓ１＋Ｌ＋Ｎ）、もしくは、後方文字列が収集データの最後尾となっているか（Ｓ２＞Ｚ−Ｌ＋１）を確認する（Ｓ１１０８）。つまり、後方文字列の開始位置を後ろにずらすことが可能かどうかの確認が行われる。
【００６２】
後方文字列の開始位置を後ろにずらすことが可能な間（Ｓ１１０８：Ｎｏ）、後方文字列の開始位置を１つずつ後ろにずらしながら、各開始位置（Ｓ１，Ｓ２）におけるスコアが算出され、スコア記憶部６４に記録される（Ｓ１１０５〜Ｓ１１０７）。
【００６３】
前方文字列の開始位置Ｓ１における、後方文字列の開始位置Ｓ２の可変範囲でのスコア算出が完了すると（Ｓ１１０８：Ｙｅｓ）、境界文字列特定部８３は、前方文字列の開始位置を１つ後ろにずらすために、変数Ｓ１に１を加算する（Ｓ１１０９）。そして、境界文字列特定部８３は、収集データの最後尾まで到達したか（Ｓ１＋２Ｌ＋Ｍ−１＞Ｚ）を確認する（Ｓ１１１０）。つまり、前方文字列の開始位置を後ろにずらすことが可能かどうかの確認が行われる。
【００６４】
前方文字列の開始位置を後ろにずらすことが可能な間（Ｓ１１１０：Ｎｏ）、前方文字列の開始位置を１つずつ後ろにずらしながら、各開始位置（Ｓ１，Ｓ２）におけるスコアが算出され、スコア記憶部６４に記録される（Ｓ１１０４〜Ｓ１１０９）。
【００６５】
収集データの全領域におけるスコアの算出が完了すると（Ｓ１１１０：Ｙｅｓ）、境界文字列特定部８３は、スコア記憶部６４を参照し、スコアが最高の開始位置（Ｓ１，Ｓ２）が情報文字列の前方文字列及び後方文字列の開始位置であると決定する（Ｓ１１１１）。なお、前述したように、境界文字列特定部８３は、スコア記憶部６４に記憶されているスコアに加えて、情報文字列の文字列規則をも考慮して前方文字列及び後方文字列の開始位置を決定することもできる。
【００６６】
そして、文字列抽出部８４は、境界文字列特定部８３によって決定された位置にある前方文字列及び後方文字列の間にある文字列を情報文字列として抽出し、情報文字列記憶部６５に記録する（Ｓ１１１２）。また、境界文字列更新部８５は、境界文字列特定部８３によって決定された位置にある前方文字列及び後方文字列を、境界文字列記憶部６２に記録する（Ｓ１１１３）。
【００６７】
さらに、警告データ出力部８６は、スコア記憶部６４に記憶されているスコアの最高値が所定の値以下である場合は、情報文字列を正しく抽出できていない可能性があることを示す警告データを出力する（Ｓ１１１４）。
【００６８】
なお、図１１に示した処理では、収集データの全範囲について、先頭から順にスコアを求めることとしているが、スコアの算出を開始する位置は先頭からでなくてもよいし、収集データの全範囲についてスコアを算出しなくてもよい。例えば、収集データ中の情報文字列の大まかな位置がわかっている場合であれば、その近辺についてのみスコアを算出することとしてもよい。このように、スコアの算出範囲を限定することにより、文字列の抽出に要する時間を削減することができる。
【００６９】
次に、アグリゲーションサーバ１０における発生頻度更新処理の詳細について説明する。図１２は、発生頻度更新処理の一例を示すフローチャートである。なお、この処理は、例えば境界文字列記憶部６２が更新されたタイミング等に実行される。
【００７０】
まず、発生頻度算出部８１は、取得日が所定期間（例えば直近１ヶ月）にある前方文字列を境界文字列記憶部６２から読み出す（Ｓ１２０１）。そして、発生頻度算出部８１は、読み出した前方文字列における各文字の発生確率を求め（Ｓ１２０２）、求めた発生確率を発生頻度記憶部６３に記録する（Ｓ１２０３）。
【００７１】
同様に、発生頻度算出部８１は、取得日が所定期間にある後方文字列を境界文字列記憶部６２から読み出す（Ｓ１２０４）。そして、発生頻度算出部８１は、読み出した後方文字列における各文字の発生確率を求め（Ｓ１２０５）、求めた発生確率を発生頻度記憶部６３に記録する（Ｓ１２０６）。
【００７２】
このように、境界文字列記憶部６２が更新されたタイミング等に発生頻度を更新することにより、発生頻度を前方文字列及び後方文字列の変更に沿ったものとすることができる。これにより、収集データの中における前方文字列及び後方文字列の位置を特定する精度が向上することとなる。
【００７３】
以上、本実施形態のシステム構成及び動作について説明した。本実施形態のアグリゲーションサーバ１０では、前方文字列及び後方文字列の発生頻度に基づいて、収集データの中における前方文字列及び後方文字列の位置が特定される。したがって、前方文字列及び後方文字列に微細な変更が加えられた場合であっても、過去の傾向に従って前方文字列及び後方文字列の位置を特定することができる。つまり、抽出条件が一定でない場合であっても対象の文字列を抽出することが可能となる。
【００７４】
また、アグリゲーションサーバ１０では、境界文字列記憶部６２格納された前方文字列及び後方文字列に基づいて、発生頻度記憶部６３に記憶されている発生頻度が更新される。したがって、前方文字列及び後方文字列が変更された場合であっても、境界文字列記憶部６２の内容を更新することにより、プログラムを変更することなく、前方文字列及び後方文字列の位置を特定することが可能となる。
【００７５】
また、アグリゲーションサーバ１０では、発生頻度記憶部６３に記憶されている発生頻度に加えて、情報文字列の文字列規則も考慮したうえで、前方文字列及び後方文字列の位置を特定することが可能である。したがって、前方文字列の末尾部分や後方文字列の先頭部分に情報が追加された場合等に、追加された情報を含めた前方文字列又は後方文字列を特定することができる。すなわち、前方文字列及び後方文字列にこのような変更が加えられた場合に、情報文字列を正しく抽出することが可能になる。
【００７６】
また、アグリゲーションサーバ１０では、特定された前方文字列及び後方文字列が境界文字列記憶部６２に追加されていく。したがって、前方文字列及び後方文字列の傾向に合わせて発生頻度が更新されることとなり、前方文字列及び後方文字列の特定精度が高まることとなる。
【００７７】
また、アグリゲーションサーバ１０では、境界文字列記憶部６２に記憶されている前方文字列及び後方文字列のうち、取得日が所定期間内にあるもののみを対象として発生頻度を算出することができる。例えば、前方文字列及び後方文字列に微細な変更が繰り返し行われていった場合、あまり古い前方文字列及び後方文字列を発生頻度の算出対象に含めてしまうと、現在の傾向に沿った発生頻度とならない可能性がある。このような場合に、発生頻度の算出対象とする前方文字列及び後方文字列を所定期間内のものに限定することにより、現在の傾向に沿った発生頻度を算出することが可能となり、文字列の抽出精度を向上させることができる。
【００７８】
また、アグリゲーションサーバ１０では、発生頻度に基づいて求められたスコアが所定の閾値より低い場合に警告データを出力することができる。これにより、例えば、アグリゲーションサーバ１０の管理者は、収集データの形式が大幅に変更されたこと等を検出することができる。このような場合、管理者は、文字列を正しく抽出できているかを確認し、境界文字列記憶部６２に記憶されている前方文字列及び後方文字列を収集データに合わせて変更することも可能である。
【００７９】
なお、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【００８０】
【図１】本発明の文字列抽出装置の一実施形態であるアグリゲーションサーバを含んで構成される情報処理システムの構成例を示す図である。
【図２】アグリゲーションサーバのハードウェア構成の一例を示す図である。
【図３】アグリゲーションサーバが備える記憶部の構成を示す図である。
【図４】収集データに含まれる境界文字列の一例を示す図である。
【図５】境界文字列記憶部に記憶される情報の一例を示す図である。
【図６】ある情報項目について、発生頻度記憶部に記憶される発生頻度の一例を示す図である。
【図７】アグリゲーションサーバが備える機能ブロックを示す図である。
【図８】情報文字列の文字数の分布を示す図である。
【図９】アグリゲーションサーバの動作の一例を示す図である。
【図１０】境界文字列記憶部の更新例を示す図である。
【図１１】文字列抽出処理の一例を示すフローチャートである。
【図１２】発生頻度更新処理の一例を示すフローチャートである。
【符号の説明】
【００８１】
１０  アグリゲーションサーバ            １５  利用者端末
２０Ａ〜２０Ｃ  Ｗｅｂサーバ            ３０  ネットワーク
４０  ＣＰＵ                            ４１  メモリ
４２  記憶装置                          ４３  通信インタフェース
４４  記録媒体読取装置                  ５０  記録媒体
６０  認証情報記憶部                    ６１  収集データ記憶部
６２  境界文字列記憶部                  ６３  発生頻度記憶部
６４  スコア記憶部                      ６５  情報文字列記憶部
６６  提供データ記憶部                  ８０  データ収集部
８１  発生頻度算出部                    ８２  文字列長決定部
８３  境界文字列特定部                  ８４  文字列抽出部
８５  境界文字列更新部                  ８６  警告データ出力部
８７  提供データ生成部
【図１】
2007304754.tif 000003
【図２】
2007304754.tif 000004
【図３】
2007304754.tif 000005
【図４】
2007304754.tif 000006
【図５】
2007304754.tif 000007
【図６】
2007304754.tif 000008
【図７】
2007304754.tif 000009
【図８】
2007304754.tif 000010
【図９】
2007304754.tif 000011
【図１０】
2007304754.tif 000012
【図１１】
2007304754.tif 000013
【図１２】
2007304754.tif 000014