JP2007304754A - 文字列抽出装置、文字列抽出方法、及びプログラム - Google Patents

文字列抽出装置、文字列抽出方法、及びプログラム Download PDF

Info

Publication number
JP2007304754A
JP2007304754A JP2006131086A JP2006131086A JP2007304754A JP 2007304754 A JP2007304754 A JP 2007304754A JP 2006131086 A JP2006131086 A JP 2006131086A JP 2006131086 A JP2006131086 A JP 2006131086A JP 2007304754 A JP2007304754 A JP 2007304754A
Authority
JP
Japan
Prior art keywords
character string
information
occurrence frequency
character
boundary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006131086A
Other languages
English (en)
Inventor
Yasuhei Iwata
廉平 岩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MUFG Bank Ltd
Original Assignee
Bank of Tokyo Mitsubishi UFJ Trust Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank of Tokyo Mitsubishi UFJ Trust Co filed Critical Bank of Tokyo Mitsubishi UFJ Trust Co
Priority to JP2006131086A priority Critical patent/JP2007304754A/ja
Publication of JP2007304754A publication Critical patent/JP2007304754A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】抽出条件が一定でない場合であっても指定された情報項目の内容を示す情報文字列を抽出する。
【解決手段】指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、情報文字列を抽出する文字列抽出装置であって、情報項目ごとに、情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とを記憶する発生頻度記憶部と、指定された情報項目について、発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の発生頻度に基づいて、文字列データにおける前方文字列及び後方文字列の位置を特定する境界文字列特定部と、境界文字列特定部によって特定された前方文字列及び後方文字列の間にある文字列を情報文字列として抽出する文字列抽出部と、を備える。
【選択図】図1

Description

本発明は、文字列抽出装置、文字列抽出方法、及びプログラムに関する。
インターネットの普及に伴い、インターネットを利用したオンラインバンキングシステム等の利用が急速に進んでいる。このようなシステムを利用するためには、利用者を認証するためのユーザIDやパスワード等の認証情報を入力する必要がある。そして、認証情報はシステムを提供する金融機関等により異なっている。そのため、複数の金融機関等のシステムを利用する場合、各システムのログイン画面等において、そのシステムに応じた認証情報を入力する必要がある。
近年、このような各システムでの認証情報の入力の煩わしさを軽減するためのものとして、アグリゲーションサービスが提供されはじめている。アグリゲーションサービスにおいては、複数の金融機関等にログインするためのURL(Uniform Resource Locator)や認証情報がアグリゲーションサーバに登録される。そして、アグリゲーションサーバは、登録されたURLや認証情報に基づいて、各システムにログインし、各システムから送信されてくるHTML(Hyper Text Markup Language)等のデータを受信する。その後、アグリゲーションサーバは、送信されてきたHTML等のデータの中から、例えば預金口座の残高情報等、利用者に提供するための情報項目の内容を示す情報文字列を抽出する。
このようなHTML等のデータは固定長ではないため、データの先頭からの位置を指定することによって所望のデータを抽出することはできない。そこで、HTML等のデータの中から必要な文字列を抽出する技術として、スクリーン・スクレイピングが知られている。スクリーン・スクレイピングでは、一般的に、抽出したい文字列の前方にある文字列(前方文字列)や後方にある文字列(後方文字列)等の条件を指定することにより、必要な情報項目の内容を示す情報文字列の抽出が行われる(特許文献1)。例えば、ある金融機関のシステムでは、HTMLデータ中の「<Font Size="2">残高:」と「</Font>」との間にあるデータが残高(情報項目)の内容を示す情報文字列であると特定できることがある。このような場合、前方文字列を「<Font Size="2">残高:」、後方文字列を「</Font>」とすることにより、所望の残高情報を抽出することができる。
特開2004−234239号公報
ところで、金融機関等のシステムでは、HTML等の微細な変更が行われる場合がある。例えば、前述した金融機関の残高情報の場合において、前方文字列が「<Font Size="2">預金残高」と変更される場合等である。
抽出したい文字列の前方文字列や後方文字列等の抽出条件が変更されると、文字列を抽出するためのプログラムを、変更された抽出条件に沿うように修正する必要がある。したがって、HTML等の微細な変更が生じる度にプログラムの変更をする必要が生じ、メンテナンスコストが高くなる。また、アグリゲーションサーバの運営者と金融機関等のシステム提供者が異なる場合等においては、HTML等の変更を事前に知ることができないことがある。そのため、HTML等が変更されると、所望のデータを正しく抽出できない場合もある。
本発明は上記課題を鑑みてなされたものであり、抽出条件が一定でない場合であっても指定された情報項目の内容を示す情報文字列を抽出可能な文字列抽出装置、文字列抽出方法、及びプログラムを提供することを目的とする。
上記目的を達成するため、本発明の文字列抽出装置は、指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する文字列抽出装置であって、前記情報項目ごとに、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とを記憶する発生頻度記憶部と、指定された前記情報項目について、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する境界文字列特定部と、前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する文字列抽出部と、を備えることとする。
また、前記文字列抽出装置は、複数の前方文字列及び後方文字列を記憶する境界文字列記憶部と、前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記録する発生頻度算出部と、を更に備えることとしてもよい。
また、前記境界文字列特定部は、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度と、前記情報文字列における所定の文字列規則とに基づいて、前記前方文字列及び前記後方文字列の位置を特定することとしてもよい。
また、前記文字列抽出装置は、前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列を前記境界文字列記憶部に記録する境界文字列更新部を、更に備えることとしてもよい。
また、前記文字列抽出装置は、前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列と、前記前方文字列及び前記後方文字列が特定された時を示す特定時データとを対応付けて前記境界文字列気億部に記録する境界文字列更新部を更に備え、前記発生頻度算出部は、前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列のうち、前記特定時データが所定の期間内にある前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記憶することとしてもよい。
また、前記境界文字列特定部は、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データ中の位置ごとに前方文字列及び後方文字列の位置であるかどうかを示す確度を算出し、前記確度が最高の位置を前方文字列及び後方文字列の位置であると特定することとすることができる。
さらに、前記文字列抽出装置は、前記境界文字列特定部によって算出された前記確度の最高値が所定の閾値より低い場合は、警告データを出力する警告データ出力部を、更に備えることとしてもよい。
また、本発明の文字列抽出方法は、指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する方法であって、前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定し、指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出することとする。
また、本発明のプログラムは、指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出するためのプログラムであって、プロセッサに、前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する機能と、指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する機能と、を実現させるためのものとする。
本発明によれば、抽出条件が一定でない場合であっても指定された情報項目の内容を示す情報文字列を抽出することができる。
==システム構成==
(1)全体構成
図1は、本発明の文字列抽出装置の一実施形態であるアグリゲーションサーバを含んで構成される情報処理システムの構成例を示す図である。システムは、アグリゲーションサーバ10、利用者端末15、及び複数のWebサーバ20A〜20Cを含んで構成されている。そして、アグリゲーションサーバ10、利用者端末15、及びWebサーバ20A〜20Cは、インターネット等のネットワーク30を介して相互に通信可能に接続されている。
アグリゲーションサーバ10は、PCサーバやワークステーション等の情報処理装置であり、複数のWebサーバ20A〜20Cにおける利用者のユーザIDやパスワード等の認証情報を保持している。そして、アグリゲーションサーバ10は、これらの認証情報を用いてWebサーバ20A〜20Cにログインし、Webサーバ20A〜20Cから送信されてくる例えばHTML形式やXML形式等のデータを受信する。その後、アグリゲーションサーバ10は、受信したデータに含まれる、例えば残高情報等の利用者に提供すべき情報項目の内容を示す情報文字列を抽出し、利用者端末15に提供可能なHTML形式等のデータに変換する。
利用者端末15は、パーソナルコンピュータや携帯情報端末等の情報処理装置であり、ネットワーク30を介してHTML形式等のデータを送受信し、受信したデータを画面に表示することができるWebブラウザを備えている。
Webサーバ20A〜20Cは、PCサーバやワークステーション等の情報処理装置であり、利用者端末15やアグリゲーションサーバ10等からの要求に応じて様々な情報をHTML形式等のデータとして送信することができる。例えば、Webサーバ20Aは、A銀行のオンラインバンキングシステムを提供するサーバであり、利用者の預金口座の残高情報等が含まれるHTMLデータを送信することができる。同様に、例えば、Webサーバ20Bは、B銀行のオンラインバンキングシステムを提供するサーバである。また、例えば、Webサーバ20Cは、C証券のオンライントレードシステムを提供するサーバであり、利用者が保有する株式や投資信託等の取得金額や評価金額等が含まれるHTMLデータを送信することができる。
(2)アグリゲーションサーバのハードウェア構成
図2は、アグリゲーションサーバ10のハードウェア構成の一例を示す図である。アグリゲーションサーバ10は、CPU(プロセッサ)40、メモリ41、記憶装置42、通信インタフェース(通信I/F)43、及び記録媒体読取装置44を含んで構成されている。
CPU40は、アグリゲーションサーバ10を統括制御するものであり、メモリ41に格納されたプログラムを実行することにより各種機能を実現する。なお、CPU40がプログラムを実行する際には、記憶装置42に格納されたプログラムが順次メモリ41に読み出される。
メモリ41は、例えばRAM(Random Access Memory)やフラッシュメモリ等の書き込み可能な記憶領域であり、CPU40が実行するプログラムやCPU40が生成したデータ等が一時的に格納される。
記憶装置42は、例えばハードディスク等であり、CPU40が実行するプログラムや各種データの記憶領域として用いられる。CPU40が記憶装置42に格納されたプログラムやデータを読み出す際には、これらのデータがメモリ41に格納される。また、メモリ41に一時的に格納されたデータは、適宜のタイミングで記憶装置42に格納される。なお、メモリ41がフラッシュメモリ等の不揮発性の記憶領域である場合等においては、記憶装置42を備えない構成とすることも可能である。
通信インタフェース43は、アグリゲーションサーバ10をネットワーク30に接続するためのインタフェースであり、例えばイーサネット(登録商標)規格のネットワークカード等である。
記録媒体読取装置44は、CD−ROM等の記録媒体50に記録されているプログラムやデータ等を読み取ってメモリ41や記憶装置42に格納するためのものである。
(4)アグリゲーションサーバの記憶部構成
図3は、アグリゲーションサーバ10が備える記憶部の構成を示す図である。アグリゲーションサーバ10は、認証情報記憶部60、収集データ記憶部61、境界文字列記憶部62、発生頻度記憶部63、スコア記憶部64、情報文字列記憶部65、及び提供データ記憶部66を備えている。なお、これらの記憶部60〜66は、記憶装置42上に実現される。
認証情報記憶部60には、アグリゲーションサービスの利用者ごとに、アグリゲーションサービスを利用するための認証情報と、Webサーバ20A〜20Cから情報を収集するために必要な情報とが対応付けられて記憶されている。アグリゲーションサービスを利用するための認証情報とは、例えば、アグリゲーションサーバ10にログインするためのユーザID・パスワード等である。また、Webサーバ20A〜20Cから情報を収集するために必要な情報とは、例えば、Webサーバ20A〜20Cにより提供されるシステムのURL(Uniform Resource Locator)や、ログインの際に必要となるユーザID・パスワード等の認証情報等である。
収集データ記憶部61には、Webサーバ20A〜20Cから収集されたHTML形式やXML形式等のデータである収集データ(文字列データ)が記憶される。この収集データの中には、例えば預金口座の残高情報等、利用者に提供すべき情報項目の内容を示す情報文字列が含まれている。
境界文字列記憶部62には、収集データの中において情報文字列との境界にある文字列である境界文字列が記憶されている。本実施形態においては、境界文字列のうち、情報文字列の前方にあるものを前方文字列、情報文字列の後方にあるものを後方文字列と称することとする。
図4は、収集データに含まれる境界文字列の一例を示す図である。収集データ70A〜70Dは、認証情報記憶部60に記憶されている、ある利用者の情報に基づいて、例えばWebサーバ10Aから異なるタイミングで収集されたHTML形式等のデータである。収集データ70Aでは、例えば残高情報等の情報項目の内容を示す情報文字列が「500」、前方文字列が「AC」、後方文字列が「DG」となっている。また、収集データ70Bでは、情報文字列が「300」、前方文字列が「AB」、後方文字列が「EF」となっている。また、収集データ70Cでは、情報文字列が「400」、前方文字列が「HA」、後方文字列が「DG」となっている。また、収集データ70Dでは、情報文字列が「2000」、前方文字列が「AB」、後方文字列が「FI」となっている。なお、図4に示した収集データ70A〜70Dにおいては、境界文字列の長さを2としたが、境界文字列の長さは2に限られるものではない。また、前方文字列の長さと後方文字列の長さが同一である必要もない。
図5は、境界文字列記憶部62に記憶される情報の一例を示す図である。ここでは、図4に例示した収集データ70A〜70Dに含まれる境界文字列が記憶されている。図に示すように、境界文字列記憶部62には、収集データ70A〜70Dから抽出された前方文字列及び後方文字列と、収集データ70A〜70DがWebサーバ10Aから収集されたタイミングを示す取得日(特定時データ)とが対応付けられて記憶されている。
発生頻度記憶部63には、残高情報等の情報項目ごとに、境界文字列における各文字の発生頻度が記憶されている。図6は、ある情報項目について、発生頻度記憶部63に記憶される発生頻度の一例を示す図である。ここでは、図5に例示した前方文字列及び後方文字列における各文字の発生確率が記憶されている。つまり、図5に示した4つの前方文字列の1文字目は、「A」、「A」、「H」、「A」となっており、前方文字列の1文字目が「A」となる確率が3/4、「H」となる確率が「1/4」となっている。また、図5に示した4つの前方文字列の2文字目は、「C」、「B」、「A」、「B」となっており、前方文字列の2文字目が「A」となる確率が1/4、「B」となる確率が1/2、「C」となる確率が「1/4」となっている。同様に、後方文字列の1文字目が「D」となる確率が1/2、「E」となる確率が1/4、「F」となる確率が「1/4」となっている。また、後方文字列の2文字目が「F」となる確率が1/4、「G」となる確率が1/2、「I」となる確率が1/4となっている。なお、本実施形態では、発生頻度を示す情報として発生確率を用いているが、発生頻度を示す情報は発生確率に限られるものではない。
スコア記憶部64には、収集データ記憶部61に記憶されている収集データ中の位置ごとに、発生頻度記憶部63に記憶されている発生頻度に基づいて算出された前方文字列及び後方文字列の位置の可能性を示すスコア(確度)が記憶される。
情報文字列記憶部65には、収集データから抽出された情報文字列が記憶される。つまり、図4に示した収集データ70A〜70Dの場合であれば、「500」、「300」、「400」、「2000」が情報文字列記憶部65に記憶される。
提供データ記憶部66には、収集データから抽出された情報文字列を利用者に提供する形式に変換した提供データが記憶される。提供データは、例えば、Webサーバ20A〜20Cから収集されたデータから抽出された残高情報等が、利用者端末15で表示可能なHTML形式等のデータに埋め込まれたものである。つまり、利用者端末15からの要求に応じてこの提供データが利用者端末15に送信されることにより、利用者端末15の画面には、複数の金融機関等における利用者に関する情報が表示されることとなる。
(5)アグリゲーションサーバの機能ブロック構成
図7は、アグリゲーションサーバ10が備える機能ブロックを示す図である。アグリゲーションサーバ10は、データ収集部80、発生頻度算出部81、文字列長決定部82、境界文字列特定部83、文字列抽出部84、境界文字列更新部85、警告データ出力部86、及び提供データ生成部87を備えている。なお、これらの機能ブロック80〜87は、CPU40が記憶装置42に格納されたプログラムを実行することにより実現される。
データ収集部80は、認証情報記憶部60に記憶されているURLやユーザID、パスワード等を用いて、Webサーバ20A〜20Cから預金残高等の情報項目の内容を示す情報文字列が含まれたHTML形式等のデータを取得する。そして、データ収集部80は、取得したデータを収集データ記憶部61に格納する。
発生頻度算出部81は、境界文字列記憶部62に記憶されている前方文字列及び後方文字列を参照し、前方文字列及び後方文字列における各文字の発生頻度を算出する。そして、発生頻度算出部81は、算出した発生頻度を発生頻度記憶部63に記録する。
文字列長決定部82は、情報文字列記憶部65に記憶されている抽出された文字列を参照し、残高情報等の情報項目ごとに、その情報項目の内容を示す情報文字列のデータ長の範囲を決定する。例えば、図8に示すように、情報文字列の文字数の正規分布に従って、情報文字列のデータ長の範囲を決定することができる。図8の例では、情報文字列の最小データ長が2、最大データ長が5と決定されている。
境界文字列特定部83は、指定された情報項目について、発生頻度記憶部63に記憶されている発生頻度に基づいて、収集データ記憶部61に記憶されている収集データ中の位置ごとに前方文字列及び後方文字列のスコアを算出してスコア記憶部64に格納し、スコアが最高の位置を前方文字列及び後方文字列の位置であると特定する。
文字列抽出部84は、境界文字列特定部83によって特定された前方文字列及び後方文字列に挟まれている文字列を、指定された情報項目の内容を示す情報文字列として抽出し、情報文字列記憶部65に格納する。
境界文字列更新部85は、境界文字列特定部83によって特定された前方文字列及び後方文字列を、境界文字列記憶部62に格納する。
警告データ出力部86は、境界文字列特定部83によって算出されたスコアの最高値が所定の閾値より低い場合、警告データを出力する。例えば、預金口座の残高情報を表示するHTMLが大幅に変更された場合、残高情報の前方文字列及び後方文字列も大幅に変更されている可能性がある。そのため、発生頻度記憶部63に記憶されている発生頻度に基づいて前方文字列及び後方文字列の位置を正しく特定することが難しい場合がある。このような場合、境界文字列特定部83によって算出されたスコアが低くなると考えられるため、スコアの最高値が所定の閾値より低い場合には、収集データの形式が大幅に変更されていると判断することができる。なお、警告データの出力方法としては、例えば、アグリゲーションサーバ10の管理者宛にメールを送信する方法や、アグリゲーションサーバ10の所定のファイルにエラーメッセージを出力する方法等、様々な方法を採用することができる。
提供データ生成部87は、文字列抽出部84によって抽出された情報文字列を、利用者端末15に提供可能なHTML形式等のデータに変換し、提供データ記憶部66に格納する。例えば、提供データ生成部87は、Webサーバ20A〜20Cから取得された残高情報等を一覧表示可能なHTML形式のデータに変換することができる。
==動作説明==
(1)動作概要
アグリゲーションサーバ10の動作の概要を説明する。図9は、アグリゲーションサーバ10の動作の一例を示す図である。この例では、前方文字列及び後方文字列のデータ長は2であり、情報文字列のデータ長の範囲は文字列長決定部82によって2〜5と定められていることとする。また、発生頻度算出部81によって算出された前方文字列及び後方文字列における各文字の発生頻度が、発生頻度記憶部63に格納されている状態であるとする。
まず、境界文字列特定部83は、収集データ記憶部61に記憶されている収集データ90を読み出し、適当な位置を前方文字列の開始位置(S1)とする。図9(a)では、「K」が前方文字列の最初の開始位置とされ、前方文字列が「KA」となっている。そして、境界文字列特定部83は、前方文字列の位置に対応する後方文字列の開始位置(S2)を決める。図9(a)では、前方文字列の開始位置(S1)に、前方文字列のデータ長(2)と、情報文字列の最小データ長(2)とを加えた位置が後方文字列の開始位置(S2)となっている。つまり、後方文字列が「00」となっている。そして、境界文字列特定部83は、前方文字列「KA」、後方文字列「00」の組み合わせについて、図6に例示した発生頻度に基づいてスコアを算出する。この場合、前方文字列の「KA」、後方文字列の「00」とも発生確率が0であるため、スコアは0となる。
続いて、境界文字列特定部83は、図9(b)に示すように、後方文字列の開始位置(S2)を1つ後ろにずらしてスコアを算出する。この場合も後方文字列が「00」であるため、スコアは0となる。同様に、境界文字列特定部83は、前方文字列と後方文字列とに挟まれる文字列のデータ長が情報文字列の最大データ長(5)となるまで、後方文字列の開始位置(S2)を1つずつずらしてスコアを算出する。
次に、境界文字列特定部83は、図9(c)に示すように、前方文字列の開始位置(S1)を1つ後ろにずらし、前方文字列と後方文字列とに挟まれる文字列のデータ長が情報文字列の最小データ長(2)となるように後方文字列の開始位置(S2)を定める。このとき、前方文字列は「AB」、後方文字列は「00」となる。そして、前方文字列の1文字目「A」の発生確率が3/4、2文字目「B」の発生確率が「1/2」であるため、前方文字列のスコアは3/4+1/2=5/4となる。なお、後方文字列「00」のスコアは0となるため、前方文字列及び後方文字列の合計スコアは5/4となる。
続いて、境界文字列特定部83は、後方文字列の開始位置(S2)を1つずつ後ろにずらしてスコアを算出していく。そして、図9(d)に示すように、後方文字列を「DG」とする場合、1文字目「D」の発生確率が1/2、2文字目「G」の発生確率が1/2であるため、後方文字列「DG」のスコアは1/2+1/2=1となる。そして、前方文字列「AB」のスコアは5/4であるため、前方文字列及び後方文字列の合計スコアは9/4となる。
このように境界文字列特定部83は、前方文字列の開始位置(S1)及び後方文字列の開始位置(S2)を収集データ90の中で動かしてスコアを求める。そして、例えば、図9(d)に示した開始位置(S1,S2)の時のスコア9/4が最高値であったとすると、境界文字列特定部83は、図9(d)の位置(S1)が前方文字列の開始位置であり、図9(d)の位置(S2)が後方文字列の開始位置であると特定する。つまり、前方文字列が「AB」、後方文字列が「DG」であると特定され、前方文字列「AB」、後方文字列「DG」及び取得日が境界文字列記憶部62に格納される。
そして、文字列抽出部84は、特定された位置の前方文字列「AB」、後方文字列「DG」の間にある文字列「3000C」を情報文字列として抽出し、情報文字列記憶部65に格納する。
このように、前方文字列及び後方文字列の位置を過去の発生頻度に基づいて定めることにより、前方文字列及び後方文字列を予め定めることなく情報文字列を抽出することが可能となる。つまり、前方文字列や後方文字列に微細な変更が加えられた場合であっても、プログラムを変更することなく、過去の傾向に従って情報文字列を抽出することができる。
なお、情報文字列の文字列規則が定められている場合であれば、境界文字列特定部83は、文字列規則を考慮して前方文字列及び後方文字列を特定することも可能である。図9(d)の例において、情報文字列の文字列規則が数値である場合であれば、境界文字列特定部83は、「3000C」の最後にある「C」は情報文字列ではなく後方文字列の一部であると判断し、「CD」が後方文字列であると特定することも可能である。この場合、境界文字列記憶部62には、図10に示すように、前方文字列「AB」、後方文字列「CD」が格納される。そして、文字列抽出部84は、前方文字列「AB」、後方文字列「CD」の間にある文字列「3000」を情報文字列として抽出し、情報文字列記憶部65に格納する。
このような処理が繰り返し実行され、Webサーバ20A〜20Cの収集データから必要な情報文字列が抽出されると、提供データ生成部87は、情報文字列記憶部65に格納されている情報文字列を利用者端末15に提供可能なHTML形式等に変換した提供データを生成し、提供データ記憶部66に格納する。そして、提供データ記憶部66に格納されたデータが利用者端末15に送信されることにより、利用者端末15の画面に、Webサーバ20A〜20Cから取得された残高情報等が表示される。
(2)処理詳細
次に、アグリゲーションサーバ10における文字列抽出処理の詳細について説明する。図11は、文字列抽出処理の一例を示すフローチャートである。
まず、境界文字列特定部83は、情報文字列が含まれるHTML形式等の収集データを収集データ記憶部61から読み出し(S1101)、読み出した収集データのデータ長を定数Zに設定する(S1102)。
そして、境界文字列特定部83は、前方文字列の開始位置を示す変数S1に初期値1を設定し(S1103)、後方文字列の開始位置を示す変数S2に、S1+L+Mを設定する(S1104)。ここで、Lは前方文字列及び後方文字列のデータ長を示す定数であり、Mは文字列長決定部82によって定められた情報文字列の最小データ長である。なお、本実施形態では前方文字列及び後方文字列のデータ長を同一としたが、異なるデータ長とすることもできる。
境界文字列特定部83は、設定された開始位置(S1,S2)における前方文字列及び後方文字列のスコアを求め(S1105)、求めたスコアを開始位置(S1,S2)と対応付けてスコア記憶部64に記録する(S1106)。
続いて、境界文字列特定部83は、後方文字列の開始位置を1つ後ろにずらすために、変数S2に1を加算する(S1107)。そして、境界文字列特定部83は、前方文字列と後方文字列との間のデータ長が情報文字列の最大データ長(N)より長いか(S2>S1+L+N)、もしくは、後方文字列が収集データの最後尾となっているか(S2>Z−L+1)を確認する(S1108)。つまり、後方文字列の開始位置を後ろにずらすことが可能かどうかの確認が行われる。
後方文字列の開始位置を後ろにずらすことが可能な間(S1108:No)、後方文字列の開始位置を1つずつ後ろにずらしながら、各開始位置(S1,S2)におけるスコアが算出され、スコア記憶部64に記録される(S1105〜S1107)。
前方文字列の開始位置S1における、後方文字列の開始位置S2の可変範囲でのスコア算出が完了すると(S1108:Yes)、境界文字列特定部83は、前方文字列の開始位置を1つ後ろにずらすために、変数S1に1を加算する(S1109)。そして、境界文字列特定部83は、収集データの最後尾まで到達したか(S1+2L+M−1>Z)を確認する(S1110)。つまり、前方文字列の開始位置を後ろにずらすことが可能かどうかの確認が行われる。
前方文字列の開始位置を後ろにずらすことが可能な間(S1110:No)、前方文字列の開始位置を1つずつ後ろにずらしながら、各開始位置(S1,S2)におけるスコアが算出され、スコア記憶部64に記録される(S1104〜S1109)。
収集データの全領域におけるスコアの算出が完了すると(S1110:Yes)、境界文字列特定部83は、スコア記憶部64を参照し、スコアが最高の開始位置(S1,S2)が情報文字列の前方文字列及び後方文字列の開始位置であると決定する(S1111)。なお、前述したように、境界文字列特定部83は、スコア記憶部64に記憶されているスコアに加えて、情報文字列の文字列規則をも考慮して前方文字列及び後方文字列の開始位置を決定することもできる。
そして、文字列抽出部84は、境界文字列特定部83によって決定された位置にある前方文字列及び後方文字列の間にある文字列を情報文字列として抽出し、情報文字列記憶部65に記録する(S1112)。また、境界文字列更新部85は、境界文字列特定部83によって決定された位置にある前方文字列及び後方文字列を、境界文字列記憶部62に記録する(S1113)。
さらに、警告データ出力部86は、スコア記憶部64に記憶されているスコアの最高値が所定の値以下である場合は、情報文字列を正しく抽出できていない可能性があることを示す警告データを出力する(S1114)。
なお、図11に示した処理では、収集データの全範囲について、先頭から順にスコアを求めることとしているが、スコアの算出を開始する位置は先頭からでなくてもよいし、収集データの全範囲についてスコアを算出しなくてもよい。例えば、収集データ中の情報文字列の大まかな位置がわかっている場合であれば、その近辺についてのみスコアを算出することとしてもよい。このように、スコアの算出範囲を限定することにより、文字列の抽出に要する時間を削減することができる。
次に、アグリゲーションサーバ10における発生頻度更新処理の詳細について説明する。図12は、発生頻度更新処理の一例を示すフローチャートである。なお、この処理は、例えば境界文字列記憶部62が更新されたタイミング等に実行される。
まず、発生頻度算出部81は、取得日が所定期間(例えば直近1ヶ月)にある前方文字列を境界文字列記憶部62から読み出す(S1201)。そして、発生頻度算出部81は、読み出した前方文字列における各文字の発生確率を求め(S1202)、求めた発生確率を発生頻度記憶部63に記録する(S1203)。
同様に、発生頻度算出部81は、取得日が所定期間にある後方文字列を境界文字列記憶部62から読み出す(S1204)。そして、発生頻度算出部81は、読み出した後方文字列における各文字の発生確率を求め(S1205)、求めた発生確率を発生頻度記憶部63に記録する(S1206)。
このように、境界文字列記憶部62が更新されたタイミング等に発生頻度を更新することにより、発生頻度を前方文字列及び後方文字列の変更に沿ったものとすることができる。これにより、収集データの中における前方文字列及び後方文字列の位置を特定する精度が向上することとなる。
以上、本実施形態のシステム構成及び動作について説明した。本実施形態のアグリゲーションサーバ10では、前方文字列及び後方文字列の発生頻度に基づいて、収集データの中における前方文字列及び後方文字列の位置が特定される。したがって、前方文字列及び後方文字列に微細な変更が加えられた場合であっても、過去の傾向に従って前方文字列及び後方文字列の位置を特定することができる。つまり、抽出条件が一定でない場合であっても対象の文字列を抽出することが可能となる。
また、アグリゲーションサーバ10では、境界文字列記憶部62格納された前方文字列及び後方文字列に基づいて、発生頻度記憶部63に記憶されている発生頻度が更新される。したがって、前方文字列及び後方文字列が変更された場合であっても、境界文字列記憶部62の内容を更新することにより、プログラムを変更することなく、前方文字列及び後方文字列の位置を特定することが可能となる。
また、アグリゲーションサーバ10では、発生頻度記憶部63に記憶されている発生頻度に加えて、情報文字列の文字列規則も考慮したうえで、前方文字列及び後方文字列の位置を特定することが可能である。したがって、前方文字列の末尾部分や後方文字列の先頭部分に情報が追加された場合等に、追加された情報を含めた前方文字列又は後方文字列を特定することができる。すなわち、前方文字列及び後方文字列にこのような変更が加えられた場合に、情報文字列を正しく抽出することが可能になる。
また、アグリゲーションサーバ10では、特定された前方文字列及び後方文字列が境界文字列記憶部62に追加されていく。したがって、前方文字列及び後方文字列の傾向に合わせて発生頻度が更新されることとなり、前方文字列及び後方文字列の特定精度が高まることとなる。
また、アグリゲーションサーバ10では、境界文字列記憶部62に記憶されている前方文字列及び後方文字列のうち、取得日が所定期間内にあるもののみを対象として発生頻度を算出することができる。例えば、前方文字列及び後方文字列に微細な変更が繰り返し行われていった場合、あまり古い前方文字列及び後方文字列を発生頻度の算出対象に含めてしまうと、現在の傾向に沿った発生頻度とならない可能性がある。このような場合に、発生頻度の算出対象とする前方文字列及び後方文字列を所定期間内のものに限定することにより、現在の傾向に沿った発生頻度を算出することが可能となり、文字列の抽出精度を向上させることができる。
また、アグリゲーションサーバ10では、発生頻度に基づいて求められたスコアが所定の閾値より低い場合に警告データを出力することができる。これにより、例えば、アグリゲーションサーバ10の管理者は、収集データの形式が大幅に変更されたこと等を検出することができる。このような場合、管理者は、文字列を正しく抽出できているかを確認し、境界文字列記憶部62に記憶されている前方文字列及び後方文字列を収集データに合わせて変更することも可能である。
なお、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
本発明の文字列抽出装置の一実施形態であるアグリゲーションサーバを含んで構成される情報処理システムの構成例を示す図である。 アグリゲーションサーバのハードウェア構成の一例を示す図である。 アグリゲーションサーバが備える記憶部の構成を示す図である。 収集データに含まれる境界文字列の一例を示す図である。 境界文字列記憶部に記憶される情報の一例を示す図である。 ある情報項目について、発生頻度記憶部に記憶される発生頻度の一例を示す図である。 アグリゲーションサーバが備える機能ブロックを示す図である。 情報文字列の文字数の分布を示す図である。 アグリゲーションサーバの動作の一例を示す図である。 境界文字列記憶部の更新例を示す図である。 文字列抽出処理の一例を示すフローチャートである。 発生頻度更新処理の一例を示すフローチャートである。
符号の説明
10 アグリゲーションサーバ 15 利用者端末
20A〜20C Webサーバ 30 ネットワーク
40 CPU 41 メモリ
42 記憶装置 43 通信インタフェース
44 記録媒体読取装置 50 記録媒体
60 認証情報記憶部 61 収集データ記憶部
62 境界文字列記憶部 63 発生頻度記憶部
64 スコア記憶部 65 情報文字列記憶部
66 提供データ記憶部 80 データ収集部
81 発生頻度算出部 82 文字列長決定部
83 境界文字列特定部 84 文字列抽出部
85 境界文字列更新部 86 警告データ出力部
87 提供データ生成部

Claims (9)

  1. 指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する文字列抽出装置であって、
    前記情報項目ごとに、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とを記憶する発生頻度記憶部と、
    指定された前記情報項目について、前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する境界文字列特定部と、
    前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する文字列抽出部と、
    を備えることを特徴とする文字列抽出装置。
  2. 請求項1に記載の文字列抽出装置であって、
    複数の前方文字列及び後方文字列を記憶する境界文字列記憶部と、
    前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記録する発生頻度算出部と、
    を更に備えることを特徴とする文字列抽出装置。
  3. 請求項1又は2に記載の文字列抽出装置であって、
    前記境界文字列特定部は、
    前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度と、前記情報文字列における所定の文字列規則とに基づいて、前記前方文字列及び前記後方文字列の位置を特定すること、
    を特徴とする文字列抽出装置。
  4. 請求項2又は3に記載の文字列抽出装置であって、
    前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列を前記境界文字列記憶部に記録する境界文字列更新部を、
    更に備えることを特徴する文字列抽出装置。
  5. 請求項2又は3に記載の文字列抽出装置であって、
    前記境界文字列特定部によって特定された前記前方文字列及び前記後方文字列と、前記前方文字列及び前記後方文字列が特定された時を示す特定時データとを対応付けて前記境界文字列記憶部に記録する境界文字列更新部を更に備え、
    前記発生頻度算出部は、
    前記境界文字列記憶部に記憶された複数の前記前方文字列及び前記後方文字列のうち、前記特定時データが所定の期間内にある前記前方文字列及び前記後方文字列に基づいて、前方文字列及び後方文字列における各文字の前記発生頻度を算出して前記発生頻度記憶部に記録すること、
    を特徴とする文字列抽出装置。
  6. 請求項1〜5の何れか一項に記載の文字列抽出装置であって、
    前記境界文字列特定部は、
    前記発生頻度記憶部に記憶された前方文字列及び後方文字列における各文字の前記発生頻度に基づいて、前記文字列データ中の位置ごとに前方文字列及び後方文字列の位置であるかどうかを示す確度を算出し、前記確度が最高の位置を前方文字列及び後方文字列の位置であると特定すること、
    を特徴とする文字列抽出装置。
  7. 請求項6に記載の文字列抽出装置であって、
    前記境界文字列特定部によって算出された前記確度の最高値が所定の閾値より低い場合は、警告データを出力する警告データ出力部を、
    更に備えることを特徴とする文字列抽出装置。
  8. 指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出する方法であって、
    前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定し、
    指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出すること、
    を特徴とする文字列抽出方法。
  9. 指定された情報項目の内容を示す情報文字列が含まれる文字列データの中から、前記情報文字列を抽出するためのプログラムであって、
    プロセッサに、
    前記情報項目ごとに所定の発生頻度記憶部に記憶されている、前記情報文字列の前方の境界にある所定の長さの前方文字列における各文字の発生頻度と、前記情報文字列の後方の境界にある所定の長さの後方文字列における各文字の発生頻度とに基づいて、前記文字列データにおける前方文字列及び後方文字列の位置を特定する機能と、
    指定された前記情報項目について、特定された前記前方文字列及び前記後方文字列の間にある文字列を前記情報文字列として抽出する機能と、
    を実現させるためのプログラム。

JP2006131086A 2006-05-10 2006-05-10 文字列抽出装置、文字列抽出方法、及びプログラム Withdrawn JP2007304754A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006131086A JP2007304754A (ja) 2006-05-10 2006-05-10 文字列抽出装置、文字列抽出方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006131086A JP2007304754A (ja) 2006-05-10 2006-05-10 文字列抽出装置、文字列抽出方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2007304754A true JP2007304754A (ja) 2007-11-22

Family

ID=38838642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006131086A Withdrawn JP2007304754A (ja) 2006-05-10 2006-05-10 文字列抽出装置、文字列抽出方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2007304754A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015118484A (ja) * 2013-12-17 2015-06-25 富士通株式会社 情報提供プログラム、情報提供方法および情報提供装置
JP2015118591A (ja) * 2013-12-19 2015-06-25 富士通株式会社 データ特定プログラム、データ特定方法および情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015118484A (ja) * 2013-12-17 2015-06-25 富士通株式会社 情報提供プログラム、情報提供方法および情報提供装置
JP2015118591A (ja) * 2013-12-19 2015-06-25 富士通株式会社 データ特定プログラム、データ特定方法および情報処理装置

Similar Documents

Publication Publication Date Title
US8191004B2 (en) User feedback correlated to specific user interface or application features
US20120066574A1 (en) System, Apparatus, and Method for Inserting a Media File into an Electronic Document
CN107785021A (zh) 语音输入方法、装置、计算机设备和介质
JP5567067B2 (ja) 特典付与システム、特典付与方法、特典付与装置、特典付与プログラム、特典関連情報表示プログラム及び特典関連情報表示方法
JP6898542B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP2007304754A (ja) 文字列抽出装置、文字列抽出方法、及びプログラム
JP5579140B2 (ja) 文書検索装置及び方法及びプログラム
JP5512737B2 (ja) 話題抽出装置及び話題抽出方法
JP5077300B2 (ja) ショッピングサイトの価格調査方法及び情報処理装置
JP2010102656A (ja) 入力候補推薦方法及び入力候補推薦プログラム
KR101614843B1 (ko) 사회 이슈에 대한 은폐를 탐지하는 방법 및 판단 장치
JP2009265770A (ja) 重要文提示システム
CN105512123A (zh) 用于创建网页特征图像和生成网页书签的方法和装置
JP6551026B2 (ja) 候補語評価装置、候補語評価システム、プログラム及び候補語評価方法
JP4714117B2 (ja) 企業名抽出方法およびプログラム
CN106649642A (zh) 一种歌曲搜索方法、系统及相关设备
JP5686147B2 (ja) 情報処理システム、制御方法及びプログラム
CN111832268A (zh) 信息交互方法、可读存储介质和电子设备
JP5014387B2 (ja) 情報アクセス支援装置および情報アクセス支援方法
JP5682113B2 (ja) 情報表示装置およびプログラム
JP4981647B2 (ja) プラントデータ表示システム
CN113238742B (zh) 一种直流控保页面程序修改回放方法、装置、终端及介质
JP5824415B2 (ja) 住所特徴語抽出装置及び方法及びプログラム
JP5727920B2 (ja) レコメンドコンテンツ出力装置及びレコメンドコンテンツ出力方法
TWI645304B (zh) 用於對應使用者的信用記錄之可攜式文件格式檔案的資料擷取方法與個人信用分析系統

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090804