(57)【要約】【課題】適正に構造化された情報を原情報から抽出できる。【解決手段】情報抽出装置１０は、属性の異なる複数の情報を含む文字列（情報配列）をウェブページ９０から複数抽出する表構造抽出部２２を備える。情報抽出装置１０は、複数の文字列の個々の情報毎に、属性用語辞書２８に予め設定された個々の属性との一致度合いを表す確信度を各々計算する確信度計算部を備える。情報抽出装置１０は、複数の文字列の個々の情報毎に、属性の種類数を次元とし、確信度を成分とするベクトルを設定するベクトル設定部２４を備える。情報抽出装置１０は、異なる情報配列に属しかつベクトルが類似する情報の文字列中の順番が揃うように、１つ以上の文字列を操作するシフト操作部３８を備える。【選択図】図１
2017068799.tif 000002
【特許請求の範囲】
【請求項１】
属性の異なる複数の情報を含む情報配列を原情報から複数抽出する抽出部と、
複数の前記情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算する確信度計算部と、
複数の前記情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定するベクトル設定部と、
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中の順番が揃うように、１つ以上の前記情報配列を操作する操作部と、
を備える情報抽出装置。
【請求項２】
前記操作部は、１つ以上の前記情報配列の操作として、空白情報の挿入、および、複数の情報の順番の並べ替えの少なくとも一方を行う請求項１に記載の情報抽出装置。
【請求項３】
前記操作部は、個々の前記情報配列に属する複数の情報の数が揃うように、１つ以上の前記情報配列を操作する請求項１または請求項２に記載の情報抽出装置。
【請求項４】
コンピュータにより、
属性の異なる複数の情報を含む情報配列を原情報から複数抽出し、
複数の前記情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算し、
複数の前記情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定し、
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中の順番が揃うように、１つ以上の前記情報配列を操作する、
ことを含む処理を実行させる情報抽出方法。
【請求項５】
コンピュータに、
属性の異なる複数の情報を含む情報配列を原情報から複数抽出し、
複数の前記情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算し、
複数の前記情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定し、
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中の順番が揃うように、１つ以上の前記情報配列を操作する、
ことを含む処理を実行させる情報抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報抽出装置、情報抽出方法、及び情報抽出プログラムに関する。
【背景技術】
【０００２】
ウェブページに含まれるデータのような非構造化データを表構造（いわゆる表）の形式に自動的に変換して抽出する技術の一例として、各々が複数の文字列を含む複数の情報列をウェブページから表として抽出する技術が知られている。例えば、複数の属性と文字列との対応関係が登録された属性辞書を用いて各文字列に属性を付与し、各情報列を表の列とし、また各属性を表の行として各セルに文字列を格納した表を抽出する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３２５２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、各情報列に含まれる要素（文字列）の数が一定でない場合、一部の文字列に誤った属性が付与されることがあり、適正に構造化された情報をウェブページから抽出することが困難であった。
【０００５】
本開示の技術は一つの側面として、適正に構造化された情報を原情報から抽出できることを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、情報抽出装置は、属性の異なる複数の情報を含む情報配列を原情報から複数抽出する抽出部を備える。また、情報抽出装置は、複数の情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算する確信度計算部を備える。また、情報抽出装置は複数の情報配列の個々の情報毎に、属性の種類数を次元とし、確信度を成分とするベクトルを設定するベクトル設定部を備える。また、情報抽出装置は、異なる情報配列に属しかつベクトルが類似する情報の情報配列中の順番が揃うように、１つ以上の情報配列を操作する操作部を備える。
【発明の効果】
【０００７】
一つの側面として、適正に構造化された情報を原情報から抽出できる、という効果を有する。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る情報抽出装置の一例の構成を表すブロック図である。
【図２】本実施形態に係る情報抽出装置として機能するコンピュータの概略構成を示すブロック図である。
【図３】本実施形態の情報抽出装置で実行される情報抽出処理全体の一例のフローチャートである。
【図４】中間テーブル初期化処理の一例のフローチャートである。
【図５】本実施形態の情報抽出装置の表構造抽出部による情報の抽出を説明するための図である。
【図６】属性確信度計算処理の一例のフローチャートである。
【図７】本実施形態の確信度計算部による確信度の計算を説明するための図である。
【図８】中間テーブルに対して本実施形態のベクトル設定部が設定した各列のベクトルの平均値を示す図である。
【図９】特異点検出処理の一例のフローチャートである。
【図１０】中間テーブルの各セルを本実施形態のベクトル分類部により分類した分類結果を示す図である。
【図１１】特異点候補選出処理の一例のフローチャートである。
【図１２】Ver.０の中間テーブルから選出された特異点候補を示す図である。
【図１３】特異点候補絞込処理の一例のフローチャートである。
【図１４】セルのシフト処理の一例のフローチャートである。
【図１５】シフト方向・シフト量決定処理の一例のフローチャートである。
【図１６】シフト方向・シフト量決定処理を説明する図である。
【図１７】シフト範囲決定用テーブルへの記入を説明する図である。
【図１８】シフト範囲決定処理の一例のフローチャートである。
【図１９】シフト処理の一例のフローチャートである。
【図２０】シフト操作部３８が実行するシフト処理を説明する図である。
【図２１】シフト操作部３８が実行するシフト処理を説明する図である。
【図２２】再び情報抽出処理のステップＳ１０２を実行してベクトル設定部が、バージョンが１の中間テーブルの各列にベクトルの平均を設定した状態を示す図である。
【図２３】再び情報抽出処理のステップＳ１０４の特異点検出処理のステップＳ３０２でベクトル分類部が算出した類似度に基づいて各セルを分類した状態を示す図である。
【図２４】属性の種類毎に対応する列の選択を説明する図である。
【図２５】図２４に示した中間テーブルから抽出した抽出情報の一例であるテーブルを示す図である。
【図２６】情報に含まれる属性（文字列）が少ない場合の情報抽出処理を説明する図である。
【図２７】情報に含まれる属性（文字列）が少ない場合の情報抽出処理を説明する図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して開示の技術の一例を詳細に説明する。
【００１０】
まず、本実施形態の情報抽出装置について説明する。図１に示すように、本実施形態の情報抽出装置１０は、入力部２０、表構造抽出部２２、ベクトル設定部２４、確信度計算部２６、ベクトル類似度計算部３２、及びベクトル分類部３４を備える。また、本実施形態の情報抽出装置１０は、シフト情報決定部３６、シフト操作部３８、及び出力部４０を備える。さらに、本実施形態の情報抽出装置１０には、属性用語辞書２８及び中間テーブル３０が記憶される。
【００１１】
入力部２０には、ＨＴＭＬ（HyperText Markup Language）ファイル６が入力される。具体例として本実施形態では、入力部２０は、ウェブページからネットワーク等（図示省略）を介してＨＴＭＬファイル６を抽出して表構造抽出部２２に出力する。入力部２０が、ＨＴＭＬファイル６を取得するタイミングは、特に限定されず、例えば、所定のタイミングや、外部の端末装置等から情報抽出処理を行うように指示を受けた場合等に取得すればよい。
【００１２】
ＨＴＭＬファイル６には、規則的に配置された文字列（テキスト部分）を含む複数の情報が含まれている。
【００１３】
本実施形態の表構造抽出部２２は、開示の技術の抽出部の一例であり、ＨＴＭＬファイル６から属性の異なる複数の情報の一例として文字列を含む情報配列を複数抽出する。また、表構造抽出部２２は、各情報配列を表の行（または列）に沿って並べた表（以下、「テーブル」という）を作成する。
【００１４】
属性の異なる複数の情報を含む情報配列を原情報から複数抽出する抽出部と、
【００１５】
複数の前記情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算する確信度計算部と、
【００１６】
複数の前記情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定するベクトル設定部と、
【００１７】
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中
【００１８】
確信度計算部２６は、各セルの文字列が属性用語辞書２８に登録された属性と一致しているか否かを表す確信度を計算する。なお、本実施形態において「属性」は文字列を分類するために設けられており、文字列が表す語句の意味に応じて各文字列の属性が予め定められている。属性用語辞書２８には、属性と文字列との対応関係が予め登録されている。また、属性用語辞書２８は表として抽出する情報の分野毎に予め用意されている。情報の分野としては、例えば、「イベント」や「商品」等が挙げられる。
【００１９】
ベクトル設定部２４は、セル毎に、属性の種類の数を次元とし、確信度を成分としたベクトルを設定する。
【００２０】
ベクトル類似度計算部３２は、テーブル全体について、各セル同士のベクトルの類似度を計算する。
【００２１】
ベクトル分類部３４は、類似度が近いベクトル同士が同じ分類となるように前記セルを分類する。分類方法は特に限定されないが本実施形態では、具体例としてクラスタリングを用いている。
【００２２】
シフト情報決定部３６は、ベクトル分類部３４が行った分類に基づいて、テーブル内のセルを情報毎に移動（シフト）させる範囲と方向を決定する。
【００２３】
シフト操作部３８は、開示の技術の操作部の一例であり、シフト情報決定部３６が決定した範囲と方向にセルをシフトさせる。セルをシフトさせた後のテーブルは中間テーブル３０として記憶される。なお、本実施形態の情報抽出装置１０では、セルをシフトさせる操作を繰り返して複数のバージョンの異なる中間テーブル３０を作成して、記憶する。
【００２４】
出力部４０は、中間テーブル３０から抽出した情報（テーブル）を出力する。なお、上述したように複数の中間テーブル３０が記憶されているため、複数の中間テーブル３０の中から中間テーブル３０を選択し、選択した中間テーブル３０から抽出したテーブルを出力する。出力部４０が、テーブルを出力する方法や出力先は特に限定されない。例えば、ネットワーク（図示省略）等を介してユーザが利用する端末装置（図示省略）に表示されるように等に出力してもよい。
【００２５】
なお、情報抽出装置１０は、例えば図２に示すコンピュータ５０で実現することができる。より具体的には、情報抽出装置１０はサーバとして機能するコンピュータ５０で実現することができる。コンピュータ５０は、ＣＰＵ（Central Processing Unit）５２、メモリ５４、不揮発性の記憶部５６、及びＩ／Ｆ（Interface）５８を備える。ＣＰＵ５２、メモリ５４、記憶部５６、及びＩ／Ｆ５８は、バス５９を介して互いに接続されている。Ｉ／Ｆ５８には、外部装置が接続され、外部装置からＨＴＭＬ（HyperText Markup Language）ファイル６が入力される。
【００２６】
記憶部５６はＨＤＤ（Hard Disk Drive）やフラッシュメモリ等によって実現できる。記憶媒体としての記憶部５６には、コンピュータ５０を情報抽出装置１０として機能させるための情報抽出プログラム６０が記憶されている。ＣＰＵ５２は、情報抽出プログラム６０を記憶部５６から読み出してメモリ５４に展開し、情報抽出プログラム６０が有するプロセスを実行する。
【００２７】
情報抽出プログラム６０は、入力プロセス６２、表構造抽出プロセス６４、ベクトル設定プロセス６６、及び確信度計算プロセス６８を有する。また、情報抽出プログラム６０は、ベクトル類似度計算プロセス７０、ベクトル分類プロセス７２、シフト情報決定プロセス７４、シフト操作プロセス７６、及び出力プロセス７８を有する。ＣＰＵ５２は、入力プロセス６２を実行することで、入力部２０として動作する。また、ＣＰＵ５２は、表構造抽出プロセス６４を実行することで、表構造抽出部２２として動作する。また、ＣＰＵ５２は、ベクトル設定プロセス６６を実行することで、ベクトル設定部２４として動作する。また、ＣＰＵ５２は、確信度計算プロセス６８を実行することで、確信度計算部２６として動作する。また、ＣＰＵ５２は、ベクトル類似度計算プロセス７０を実行することで、ベクトル類似度計算部３２として動作する。また、ＣＰＵ５２は、ベクトル分類プロセス７２を実行することで、ベクトル分類部３４として動作する。また、ＣＰＵ５２は、シフト情報決定プロセス７４を実行することで、シフト情報決定部３６として動作する。また、ＣＰＵ５２は、シフト操作プロセス７６を実行することで、シフト操作部３８として動作する。また、ＣＰＵ５２は、出力プロセス７８を実行することで、出力部４０として動作する。
【００２８】
これにより、情報抽出プログラム６０を実行したコンピュータ５０が、情報抽出装置１０として機能する。
【００２９】
また、記憶部５６は、属性用語辞書２８が記憶される属性用語辞書記憶領域８０及び中間テーブル３０が記憶される中間テーブル記憶領域８２を有する。
【００３０】
なお、コンピュータ５０は、いわゆるデスクトップ型のパーソナルコンピュータに限定されない。コンピュータ５０は、ラップトップ型のパーソナルコンピュータであってもよいし、タブレット端末やスマートフォンに代表されるＰＤＡ（Personal Digital Assistants：携帯情報端末装置）等であってもよい。
【００３１】
なお、情報抽出装置１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００３２】
次に、本実施形態に係る情報抽出装置１０の作用について説明する。以下では一例として情報の分野が「イベント」である情報を表として抽出する場合について説明する。
【００３３】
図３に示した情報抽出処理は、入力部２０がウェブページからＨＴＭＬファイル６を取得した場合等に情報抽出装置１０で実行される。上述したように入力部２０は、ＨＴＭＬファイル６を表構造抽出部２２に出力する。
【００３４】
ステップＳ１００で情報抽出装置１０は、中間テーブル初期化処理を行う。図４に示す中間テーブル初期化処理のステップＳ２００で、表構造抽出部２２が、ウェブページから取得したＨＴＭＬファイル６から表構造の形式で抽出した情報を中間テーブル３０として格納する。一例として、図５に示したウェブページ９０には、情報群９０１〜９０４の４つの情報群が含まれている。情報群９０１〜９０４は、ウェブページ９０に同じレイアウトで並んでおり、属性の異なる複数の情報（文字列）を含んでいる。
【００３５】
表構造抽出部２２は、ＨＴＭＬファイル６を解析してタグの種類や、タグの繰り返しパターンを利用して中間テーブル３０を抽出する。タグの種類の具体例としては、＜table＞タグ等が挙げられる。また、タグの繰り返しパターンの具体例としては、＜div＞＜h3＞〜<a＞〜＜span＞・・・＜div＞＜h3＞〜＜a＞〜＜span＞・・・、等が挙げられる。
【００３６】
図５に示した具体例では、中間テーブル３０の各行が１つの情報群に対応し、中間テーブル３０の列が個々の情報（文字列）の属性に対応する。そのため、中間テーブル３０の行の数は、ＨＴＭＬファイル６に含まれる情報群の数に対応する。一方、列の数は、個々の情報群に含まれる情報（文字列）の数である。従って、中間テーブル３０は、同一種類の属性に対応する列が存在する場合もある。
【００３７】
図５に示した具体例では、情報群９０１は、中間テーブル３０の行１に格納される。情報群９０１から抽出された４つの文字列がＡ列〜Ｄ列にそれぞれ格納される。また、情報群９０２は、中間テーブル３０の行２に格納される。情報群９０２から抽出された４つの文字列がＡ列〜Ｄ列にそれぞれ格納される。また、情報群９０３は、中間テーブル３０の行３に格納される。情報群９０３から抽出された５つの文字列がＡ列〜Ｅ列にそれぞれ格納される。また、情報群９０４は、中間テーブル３０の行４に格納される。情報群９０４から抽出された４つの文字列がＡ列〜Ｄ列にそれぞれ格納される。
【００３８】
図５に示した中間テーブル３０の行３（情報群９０３）は、他の行と比べて１列分セルが多い。具体的には、Ｂ列のセルに「無料イベント」の文字列（属性）が含まれるため、他の情報（行）と比べて、Ｂ列以降のセルが右方向にシフトしている。
【００３９】
次のステップＳ２０２でベクトル設定部２４は、未処理のセルが有るか否か判定する。未処理のセルが有る場合は肯定判定となり、ステップＳ２０４へ移行する。
【００４０】
ステップＳ２０４でベクトル設定部２４は、中間テーブル３０のセルのうち未処理のセルの中から１つを処理対象のセルとして設定する。
【００４１】
次のステップＳ２０６でベクトル設定部２４及び確信度計算部２６は、属性用語辞書２８に基づいて各セルの文字列が属性に一致しているか否かを表す属性確信度を計算する属性確信度計算処理を実行する。
【００４２】
図６に示すステップＳ２５０で、ベクトル設定部２４は、処理対象のセルのベクトルを０に初期化する。本実施形態では、中間テーブル３０のセルには属性の種類を次元とし、確信度を成分としたベクトルが設定される。本実施形態では、詳細は後述するが、属性の種類を「タイトル」、「住所」、及び「日時」の３つとしているため、（タイトルらしさ、住所らしさ、日時らしさ）を表す要素ベクトルを含む３次元のベクトルが設定される。
【００４３】
次のステップＳ２５２で確信度計算部２６は、分野がイベントである属性用語辞書２８の中に、未処理の属性用語辞書２８が有るか否か判定する。未処理の属性用語辞書２８が有る場合、肯定判定となりステップＳ２５４へ移行する。
【００４４】
ステップＳ２５４で確信度計算部２６は、未処理の属性用語辞書２８の中から１つを選択する。なお、属性用語辞書２８が１つしか無い場合は、ステップＳ２５２及びＳ２５４を省略してもよい。
【００４５】
次のステップＳ２５６で確信度計算部２６は、属性用語辞書２８のキーワードが上記処理対象のセルの文字列にマッチするか否か判定する。図７には、確信度計算部２６による確信度の計算を説明するための図を示す。図７に示した属性用語辞書２８には、属性として、イベントの「タイトル」、「住所」、及び「日時」の３種類が含まれている。本実施形態の属性用語辞書２８には、属性毎にキーワードが記憶されており、該キーワードにはスコアが対応付けられている。スコアは、属性の内容等に応じて付与されているが、付与方法は特に限定されず、例えば、属性の内容に近い（属性の内容をより表している）キーワードほど高くなるように付与してもよい。
【００４６】
図７に示した具体例では、処理対象のセルが行１・Ａ列の場合、「見本市・展示会」の「展示会」及び「市」の部分が属性用語辞書２８とマッチする。この場合、ステップＳ２５６で肯定判定となりステップＳ２５８へ移行する。
【００４７】
ステップＳ２５８で確信度計算部２６は、属性用語辞書２８のスコアをベクトルの属性に応じて属性確信度（ベクトルの成分）に加算する。本ステップにより、図７に示した具体例では、行１・Ａ列のセルには、（タイトルらしさ、住所らしさ、日時らしさ）＝（３，１，０）のベクトルが設定される。
【００４８】
一方、処理対象のセルが図７に示した具体例の行１・Ｃ列のセルの場合等は、属性用語辞書２８のキーワードとマッチしないため、ステップＳ２５６で否定判定となり、ステップＳ２５２に戻る。
【００４９】
ステップＳ２５２で、未処理の属性用語辞書２８が無い場合は否定判定となり本属性確信度計算処理を終了する。
【００５０】
中間テーブル初期化処理では、このようにしてステップＳ２０６の属性確信度計算処理が終了すると、ステップＳ２０２に戻る。
【００５１】
ステップＳ２０２で未処理のセルが無い場合は、否定判定となり本中間テーブル初期化処理を終了し、情報抽出処理のステップＳ１０２へ移行する。
【００５２】
ステップＳ１０２で情報抽出装置１０のベクトル設定部２４が、中間テーブル３０の各列のベクトルの平均値（以下、単に「平均」という）を設定する。図８には、中間テーブル３０に対してベクトル設定部２４が設定した各列のベクトルの平均が示されている。なお、本実施形態では、１回の情報抽出処理の実行において複数の中間テーブル３０が生成されるため、生成した中間テーブル３０の履歴を保存するために中間テーブル３０にバージョン番号を設定する。ここでは、バージョン番号「０」（「Ver.0」）が設定される。
【００５３】
次のステップＳ１０４で情報抽出装置１０は、中間テーブル３０の中から特異点となるセルを検出する特異点検出処理を実行する。
【００５４】
図９に示すステップＳ３００で、ベクトル類似度計算部３２は、中間テーブル３０内のベクトルの平均も含めたベクトルの類似度を算出する。ベクトルの類似度の算出方法は特に限定されず、コサイン類似度等既存の指標を用いることができる。
【００５５】
次のステップＳ３０２でベクトル分類部３４は、算出した類似度に基づいて各セルを分類する。セルの分類方法は特に限定されないが、本実施形態ではクラスタリングにより各セルを分類する。なお、クラスタリングの方法も特に限定されず、例えば、k-means法等が挙げられる。上記ステップＳ３００で類似度を算出したことにより、既存のクラスタリング技術を用いてセルの分類が可能になる。
【００５６】
分類数（クラスタリング数）は特に限定されないが、ベクトルの次元数（属性の数）及び中間テーブル３０の列数に近い数が好ましい。なお、ベクトルの次元数と中間テーブル３０の列数とが大きく異なる場合は、予め定められたいずれか一方（例えば、ベクトルの次元数）に近い数としてもよいし、ベクトルの次元数と中間テーブル３０の列数の中間値としてもよい。
【００５７】
図１０には、中間テーブル３０の各セルを分類した分類結果の一例を示す。なお、図１０では、分類数が４つ（分類Ｉ〜分類ＩＶ）の場合を示している。情報抽出装置１０には、分類後結果が中間テーブル３０として保存される。
【００５８】
次のステップＳ３０４でシフト情報決定部３６は、中間テーブル３０における特異点となるセルの候補を選出する特異点候補選出処理を実行する。
【００５９】
図１１に示すステップＳ３３２で、シフト情報決定部３６は、特異点の候補の集合を空集合に初期化する。そして次のステップＳ３３４でシフト情報決定部３６は、未処理のセルが有るか否か判定する。未処理のセル（特異点の候補となるか否か未判定のセル）が有る場合は肯定判定となり、ステップＳ３３４へ移行する。ステップＳ３３４でシフト情報決定部３６は、未処理のセルの中から１つを選択する。
【００６０】
本実施形態では、処理対象のセルが属する列の平均と分類が異なるセルを特異点の候補として選択する。そのため、次のステップＳ３３６でシフト情報決定部３６は、選択したセルの分類が同列のベクトルの平均の分類と異なるか否か判定する。セルの分類が同列のベクトルの平均の分類と異なる場合は肯定判定となり、ステップＳ３３８へ移行する。ステップＳ３３８でシフト情報決定部３６は、当該セルを特異点の候補に追加した後、ステップＳ３３２に戻る。また、ステップＳ３３６で否定判定となった場合もステップＳ３３２に戻る。
【００６１】
ステップＳ３３２で未処理のセルが無い場合は、否定判定となり本特異点候補選出処理を終了する。一例として図１２には、Ver.０の中間テーブル３０から選出された特異点候補としてＡ列の行２、行３、及び行４のセル、Ｂ列の行３のセル、Ｃ列の行１及び行３のセル、及びＤ列の行３のセルが各々選出された結果を示す。
【００６２】
このようにして特異点検出処理のステップＳ３０４の特異点候補選出処理が終了するとステップＳ３０６へ移行する。
【００６３】
ステップＳ３０６でシフト情報決定部３６は、特異点候補選出処理により選出された特異点候補が１個以下であるか否か判定する。特異点候補が１個以下である場合は当該特異点候補が特異点となるため、肯定判定となった場合は、本特異点検出処理を終了する。
【００６４】
一方、特異点候補が１個より多い（２個以上）の場合は否定判定となり、ステップＳ３０８へ移行する。ステップＳ３０８でシフト情報決定部３６は、特異点候補絞込処理を実行する。
【００６５】
図１３に示すステップＳ３５０で、シフト情報決定部３６は、出力用の、絞込み後の特異点の候補の集合を空集合に初期化する。そして次のステップＳ３５２でシフト情報決定部３６は、列毎にベクトルの平均と同じ分類のセル数をカウントする。図１２に示した中間テーブル３０のＡ列では「１」、Ｂ列では「３」、Ｃ列では「２」、Ｄ列では「３」、Ｅ列では「１」がそれぞれカウントされる。なお、特異点候補が存在しない列については上記カウントを行わなくてもよい。
【００６６】
次のステップＳ３５４でシフト情報決定部３６は、未処理の特異点候補が有るか否か判定する。未処理の特異点候補が有る場合は肯定判定となり、ステップＳ３５６へ移行する。ステップＳ３５６でシフト情報決定部３６は、未処理の特異点候補から選択した特異点候補のセルが存在する列が上記カウント数が最大の列であれば、当該特異点候補を絞込み後の特異点候補の集合に加えた後、ステップＳ３５４に戻る。図１２に示した中間テーブル３０では、Ｂ列及びＤ列のカウント数が最大であるため、Ｂ列及びＤ列にセルが存在する特異点候補が絞込み後の特異点候補となる。そのため、ここでは行３・Ｂ列のセル及び行３Ｄ列のセルが特異点候補として絞り込まれる。
【００６７】
一方、未処理の特異点候補が無い場合はステップＳ３５４で否定判定となり、本特異点候補絞込処理を終了する。絞り込まれた特異点候補が特異点検出処理において特異点として検出される。そのため、特異点検出処理では、このようにしてステップＳ３０８の特異点候補絞込処理が終了すると、本特異点検出処理を終了する。なお、出力用の、絞込み後の特異点の候補の集合は、検出結果としてシフト操作部３８に出力される。
【００６８】
情報抽出処理では、ステップＳ１０４の特異点検出処理が終了するとステップＳ１０６へ移行する。
【００６９】
ステップＳ１０６で情報抽出装置１０のシフト操作部３８は、特異点が検出されたか否か判定する。検出されなかった場合は否定判定となりステップＳ１１２へ移行する。一方、検出された場合は肯定判定となりステップＳ１０８へ移行する。
【００７０】
ステップＳ１０８で情報抽出装置１０のシフト操作部３８は、セルのシフト処理を実行する。
【００７１】
図１４に示すステップＳ４００で、シフト操作部３８は、中間テーブル３０においてセルをシフトさせるシフト方向及びシフト量を決定するシフト方向・シフト量決定処理を実行する。図１５にシフト方向・シフト量決定処理のステップＳ４３０で、シフト操作部３８は、シフト範囲決定用テーブルを空に初期化する。
【００７２】
次のステップＳ４３２でシフト操作部３８は、検出した特異点が含まれる行（情報）の各セルについて、分類が同一のベクトルの平均と同じ列に移動するために必要なシフト方向及びシフト量をシフト範囲決定用テーブルに記入する。図１６に示した中間テーブル３０では、上記特異点検出処理で検出した特異点である、行３・Ｂ列のセル及び行３・Ｄ列のセル両者が含まれる行３の各セルについて必要なシフト方向及びシフト量をシフト範囲決定用テーブルに記入する。
【００７３】
図１７に示すようにシフト範囲決定用テーブル９８には、「セル」及び「シフト量」が記入される。なお、「セル」は、セルが位置する行及び列を表している。また、シフト量は、中間テーブル３０において右方向に移動する場合は正（プラス）の値を示し、左方向に移動する場合は負（マイナス）の値を示す。また、シフト量は、シフトするセル（列）の数で表される。
【００７４】
図１６に示した中間テーブル３０の行３では、Ｃ列のセルのベクトルと同一のベクトルの平均がＢ列に存在する。また、Ｅ列のセルのベクトルと同一のベクトルの平均がＤ列及びＥ列に存在する。そのため、図１７に示すようにＣ３のセルはシフト量が「−１」、Ｅ３のセルはシフト量が「−１」及び「０」としてシフト範囲決定用テーブルに記入される。
【００７５】
次のステップＳ４３４でシフト操作部３８は、シフト方向及びシフト量が最頻値となる組に絞り込む。図１７に示したシフト範囲決定用テーブル９８では、シフト量の最頻値は「−１」である。そのため、シフト量が「−１」となる２つの組み合わせ（Ｃ３のセルでシフト量が「−１」及びＥ３のセルでシフト量が「−１」の組み合わせ）に絞り込む。
【００７６】
次のステップＳ４３６でシフト操作部３８は、シフト後の列の類似度が最も高い（ベクトルが類似するセルの数が最も多い）組に絞り込んだ後、本シフト方向・シフト量決定処理を終了する。図１７に示したシフト範囲決定用テーブル９８では、Ｃ３のセルもＥ３のセルも「−１」シフトさせた場合、各列において３つのセルとベクトルが一致する。そのため、図１７に示したシフト範囲決定用テーブル９８では、Ｃ３のセルでシフト量が「−１」及びＥ３のセルでシフト量が「−１」の組み合わせに絞り込まれる。なお、本実施形態では、このよう絞り込んだ結果、複数のセルがシフト範囲決定用テーブル９８に残った場合は、いずれか一つのセルを選択する。絞り込んだ結果に応じて、シフト方向及びシフト量が決定する。図１７に示したシフト範囲決定用テーブル９８では、シフト方向は左、シフト量は「１」に決定される。
【００７７】
このようにしてセルのシフト処理のステップＳ４００のシフト方向・シフト量決定処理が終了するとステップＳ４０２へ移行する。
【００７８】
ステップＳ４０２でシフト操作部３８は、中間テーブル３０においてセルをシフトさせるシフト範囲（シフトするセル）を決定するシフト範囲決定処理を実行する。
【００７９】
図１８に示すステップＳ４５０で、シフト操作部３８は、決定したシフト方向が左であるか否か判定する。シフト方向が左の場合は、肯定判定となりステップＳ４５２へ移行する。
【００８０】
ステップＳ４５２でシフト操作部３８は、シフト範囲を、シフト方向・シフト量決定処理で決定した（絞り込んだ結果の）セル及びその右側にある全てのセルを含む範囲と決定した後、本シフト範囲決定処理を終了する。従って、図１６に示した中間テーブル３０では、行３のＣ列、Ｄ列、及びＥ列がシフト範囲として決定される。
【００８１】
一方、ステップＳ４５０で否定判定となった場合、すなわち、決定したシフト方向が右の場合は、否定判定となりステップＳ４５４へ移行する。
【００８２】
ステップＳ４５４でシフト操作部３８は、シフト範囲を、シフト方向・シフト量決定処理で決定した（絞り込んだ結果の）セル及びその左側にある全てのセルを含む範囲と決定した後、本シフト範囲決定処理を終了する。
【００８３】
このようにしてセルのシフト処理のステップＳ４０２のシフト範囲決定処理が終了するとステップＳ４０４へ移行する。
【００８４】
ステップＳ４０４でシフト操作部３８は、中間テーブル３０においてセルをシフトさせるシフト操作処理を実行した後、本セルのシフト処理を終了する。図１９に示すステップＳ４７０で、シフト操作部３８は、シフト先に他のセルが有るか否か判定する。一例として、図２０に示した中間テーブル３０では、行３のＢ列にセルが存在している。そのため、この場合は肯定判定となりステップＳ４７４へ移行する。
【００８５】
ステップＳ４７４でシフト操作部３８は、シフトさせたいセル以外の行のセルを、決定したシフト方向と逆方向にシフトさせた後、本シフト処理を終了する。このようにシフト先にセルが有る場合、セルをシフトさせてしまうと、シフト先に有るセルの情報が失われることになる。そのためシフトさせたいセル以外の行を逆方向にシフトさせる。この場合、各行におけるシフト範囲は、本来予定していたシフト先のセルの列から上記逆方向の列に設定されている全てのセルである。図２１に示すように、中間テーブル３０の行１、行２、及び行４の各Ｂ列〜Ｄ列のセルを、１つ（１列）右方向にシフトさせる。上記の、シフトさせたいセル以外の行を逆方向にシフトさせることは、開示の技術における空白の情報の挿入の一例である。
【００８６】
一方、シフト先に他のセルが無い場合は、ステップＳ４７０で否定判定となりステップＳ４７２へ移行する。シフト先に他のセルが無い場合とは、シフト範囲が、中間テーブル３０における端部の列を含む場合である。このような場合、上記と異なり、シフト範囲のセルをシフトさせてもセルの情報が失われることがない。
【００８７】
そのためステップＳ４７２でシフト操作部３８は、シフト範囲のセルを決定したシフト方向及びシフト量でシフトさせた後、本シフト操作処理を終了する。なお、シフト先の位置が中間テーブル３０外となる場合は、不足する分の列を中間テーブル３０に追加する。この場合の処理も、開示の技術における空白の情報の挿入の一例である。
【００８８】
このようにしてセルのシフト処理のステップＳ４０４のシフト操作処理が終了すると本シフト処理が終了する。
【００８９】
また、情報抽出処理では、ステップＳ１０８のシフト処理が終了すると、ステップＳ１１０へ移行する。
【００９０】
ステップＳ１１０で情報抽出装置１０の出力部４０は、中間テーブル３０として、同じ内容のテーブルが有るか否か判定する。本実施形態の情報抽出装置１０では、上記ステップＳ１０２〜Ｓ１０８を繰り返し、繰り返す毎にバージョンを更新して新たな中間テーブル３０を作成して記憶する。処理を繰り返す際、既に作成済みのバージョンの中間テーブル３０と同様の内容の中間テーブル３０を作成してしまうことがある。このような場合、中間テーブル３０において特異点が検出されない状態にならず、既に作成済みのバージョンの中間テーブル３０を作成する処理を繰り返すことになる（いわゆる無限ループ）。そのため、ステップＳ１１０では、中間テーブル３０として同じ内容のテーブルが有るか否か判定する。
【００９１】
ステップＳ１１０で否定判定となった場合は、ステップＳ１０２に戻り、上記ステップＳ１０２〜Ｓ１０８を繰り返す。上述のようにバージョンが０の中間テーブル３０の作成後、ステップＳ１０２に戻った場合は、バージョンが１（Ver.1）の中間テーブル３０を作成する。
【００９２】
図２２には、再びステップＳ１０２を実行してベクトル設定部２４が、バージョンが１の中間テーブル３０の各列にベクトルの平均を設定した状態を示す。また、図２３には、再びステップＳ１０４の特異点検出処理のステップＳ３０２（図９参照）でベクトル分類部３４が算出した類似度に基づいて各セルを分類した状態を示す。上述した場合と同様（図１０参照）に、図２３に示すように中間テーブル３０の各セルを４つ（分類Ｉ〜分類ＩＶ）に分類する。
【００９３】
一方、ステップＳ１１０で肯定判定となった場合は、本情報抽出処理を終了すべく、ステップＳ１１２へ移行する。
【００９４】
ステップＳ１１２で出力部４０は、中間テーブル３０から抽出したテーブルを抽出情報８として所定の出力先に出力した後、本情報抽出処理を終了する。なお、抽出情報８として出力する情報は、中間テーブル３０そのもので有ってもよいが、本実施形態の出力部４０では、属性の種類に応じて中間テーブル３０から抽出した情報（セル）をテーブルとして出力する。
【００９５】
まず、出力部４０は、中間テーブル３０において属性の種類毎に対応する列を選択する。
【００９６】
一例として図２４に示すように出力部４０は、属性の種類毎に、中間テーブル３０における全ての列のベクトルの平均の中で最もベクトルの類似度が大きい列を選択する。なお、ここでは、ベクトルの各成分の値が大きいほど、類似度が高いことを意味している。図２４に示した中間テーブル３０では、Ａ列〜Ｅ列のうち、タイトルとの類似度が最も大きい（タイトルらしさを表すベクトル要素の値が大きい）列はＤ列である。そのため、Ｄ列を属性がタイトルの列として選択する。同様に出力部４０は、Ｃ列を属性が住所の列として選択し、Ｅ列を属性が日時の列として選択する。
【００９７】
出力部４０は、情報抽出装置１０に記憶されている全てのバージョンの中間テーブル３０において、上記のようにして属性の種類毎に対応する列を選択する。
【００９８】
そして出力部４０は、全てのバージョンの中から出力対象の中間テーブル３０を選択する。中間テーブル３０の選択方法は、特に限定されないが、例えば、上記したように属性の種類毎に対応する列を選択した方法と同様にすればよい。すなわち、各属性（住所、タイトル、及び日時）の成分が最も高い（類似度が大きい）中間テーブル３０を選択すればよい。
【００９９】
さらに、出力部４０は、選択した中間テーブル３０から、各属性の種類に応じた情報（セル）を抽出したテーブルを作成して抽出情報８として情報抽出装置１０の外部に出力する。図２５には、図２４に示した中間テーブル３０から抽出した抽出情報８の一例であるテーブルを示す。図２５に示した抽出情報８は、図２４に示した中間テーブル３０のＣ列、Ｄ列、及びＥ列の各セルがテーブルとして抽出された状態を示している。
【０１００】
以上説明したように、本実施形態の情報抽出装置１０は、属性の異なる複数の情報を含む文字列（情報配列）をウェブページ９０から複数抽出する表構造抽出部２２を備える。また、情報抽出装置１０は、複数の文字列の個々の情報毎に、属性用語辞書２８に予め設定された個々の属性との一致度合いを表す確信度を各々計算する確信度計算部を備える。また、情報抽出装置１０は、複数の文字列の個々の情報毎に、属性の種類数を次元とし、確信度を成分とするベクトルを設定するベクトル設定部２４を備える。また、情報抽出装置１０は、異なる情報配列に属しかつベクトルが類似する情報の文字列中の順番が揃うように、１つ以上の文字列を操作するシフト操作部３８を備える。
【０１０１】
このように本実施形態の情報抽出装置１０では、ウェブページから抽出した情報に含まれる属性（文字列）に過不足が有り、中間テーブル３０のセルがずれてしまい属性ずれが発生した場合に、属性ずれを解消することができる。
【０１０２】
従って、本実施形態の情報抽出装置１０によれば、適正に構造化された情報を原情報から抽出できることができる。
【０１０３】
なお、本実施形態では、抽出する情報の分野が「イベント」の場合について説明したが抽出する情報の分野は本実施形態に限らない。抽出したい情報の分野に応じた属性用語辞書２８を用いて情報抽出処理を行えばよい。
【０１０４】
また、本実施形態では、中間テーブル３０の行に情報の種類（情報群９０１〜９０４）が対応し、列に属性が対応する場合について説明したが、行及び列は逆であってもよく、何れとするかは特に限定されない。
【０１０５】
また、本実施形態では、原情報がウェブページである場合について説明したが、原情報は、ウェブページに限定されない。
【０１０６】
また、上記実施形態では、表構造抽出部２２が複数の情報配列を表として抽出する場合について説明したが、シフト操作部３８による操作後の複数の情報配列を表の各セルに設定して表を完成させてもよい。その際、情報配列は表の行に沿って並べてもよいし表の列に沿って並べてもよい。
【０１０７】
また、上記実施形態では、表を作成する場合について説明したがこれに限定されるものでもない。例えば、不定形フォーマットの名刺を読み取り、ＯＣＲ（Optical Character Recognition）で文字等を抽出してＤＢ（Database）に登録する場合に、読み取った情報を項目毎に配列する際にも適用可能である。
【０１０８】
また、情報配列に属する情報の典型例は文字列だが、文字列以外の情報が混在していてもよい。一例として、不定形フォーマットの名刺を読み取り、ＯＣＲで文字等を抽出してＤＢに登録する態様において、情報配列の中に会社のロゴマークなどを表す画像が含まれている場合等が考えられる。なお、画像を情報配列に属する情報として扱う場合は、確信度計算部２６は、属性と画像との対応関係が予め登録されている属性用語辞書２８を用いて、画像解析を行うことにより確信度を計算すればよい。
【０１０９】
また、上記実施形態では、表内の同一列のセル同士のベクトルを比較して特異点、すなわち移動対象のセルを検出していたが、これに限定されるものではない。例えば表の各列毎に、予め属性を設定し、設定した属性に対応する基準ベクトルを設定しておき、各セル毎に、現在の列に設定された基準ベクトルとの類似度に基づいて、移動対象のセルか否かを判定するようにしてもよい。この場合、事前に設定した属性の順序に情報が並ぶ表が作成できる。
【０１１０】
また、本実施形態では、情報群９０３に含まれる属性（文字列）が多い場合について詳細に説明したが、少ない場合も同様に情報抽出処理を行うことにより、属性ずれを解消することができる。例えば、図２６に示したように行３において属性が不足している場合について説明する。図２６に示した中間テーブル３０からは、特異点としてＢ列のセルが検出され、シフト範囲としてＢ列及びＣ列のセルが決定される。この場合、図２７に示すように、行３におけるシフト範囲の各セルを右方向にシフトさせることにより、属性ずれを解消することができる。上記の右方向へのシフトは図２６に示すＤ３の空白のセルが、図２７ではＢ３へ移動しており、開示の技術における複数の情報の順番の並べ換えの一例である。
【０１１１】
また、例えば、右端の列が備考欄になっている表等、情報配列に属する情報の数は一定でなくてもよい。この場合は、他の情報配列とベクトルが類似しない情報を右端に並べ替えてもよい。
【０１１２】
また、上記では、情報抽出プログラム６０がコンピュータ５０の記憶部５６に予め記憶（インストール）されている状態を説明した。しかしながら、情報抽出プログラム６０を記憶媒体に記録された形態で提供することも可能である。記憶媒体としては、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、及びＵＳＢ（Universal Serial Bus）メモリ等が挙げられる。
【０１１３】
以上の上記実施形態に関し、更に以下の付記を開示する。
【０１１４】
（付記１）
属性の異なる複数の情報を含む情報配列を原情報から複数抽出する抽出部と、
前記複数の情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算する確信度計算部と、
前記複数の情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定するベクトル設定部と、
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中の順番が揃うように、１つ以上の前記情報配列を操作する操作部と、
を備える情報抽出装置。
【０１１５】
（付記２）
前記操作部は、１つ以上の前記情報配列の操作として、空白情報の挿入、および、複数の情報の順番の並べ替えの少なくとも一方を行う付記１に記載の情報抽出装置。
【０１１６】
（付記３）
前記操作部は、個々の前記情報配列に属する複数の情報の数が揃うように、１つ以上の前記情報配列を操作する付記１または付記２に記載の情報抽出装置。
【０１１７】
（付記４）
コンピュータにより、
属性の異なる複数の情報を含む情報配列を原情報から複数抽出し、
前記複数の情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算し、
前記複数の情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定し、
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中の順番が揃うように、１つ以上の前記情報配列を操作する、
ことを含む処理を実行させる情報抽出方法。
【０１１８】
（付記５）
前記操作は、１つ以上の前記情報配列の操作として、空白情報の挿入、および、複数の情報の順番の並べ替えの少なくとも一方を行う付記４に記載の情報抽出方法。
【０１１９】
（付記６）
前記操作は、個々の前記情報配列に属する複数の情報の数が揃うように、１つ以上の前記情報配列を操作する付記４または付記５に記載の情報抽出方法。
【０１２０】
（付記７）
コンピュータに、
属性の異なる複数の情報を含む情報配列を原情報から複数抽出し、
前記複数の情報配列の個々の情報毎に、属性辞書に予め設定された個々の属性との一致度合いを表す確信度を各々計算し、
前記複数の情報配列の個々の情報毎に、前記属性の種類数を次元とし、前記確信度を成分とするベクトルを設定し、
異なる前記情報配列に属しかつ前記ベクトルが類似する情報の前記情報配列中の順番が揃うように、１つ以上の前記情報配列を操作する、
ことを含む処理を実行させる情報抽出プログラム。
【０１２１】
（付記８）
前記操作は、１つ以上の前記情報配列の操作として、空白情報の挿入、および、複数の情報の順番の並べ替えの少なくとも一方を行う付記７に記載の情報抽出プログラム。
【０１２２】
（付記９）
前記操作は、個々の前記情報配列に属する複数の情報の数が揃うように、１つ以上の前記情報配列を操作する付記７または付記８に記載の情報抽出プログラム。
【符号の説明】
【０１２３】
１０  情報抽出装置
２２  表構造抽出部
２４  ベクトル設定部
２６  確信度計算部
２８  属性用語辞書
３０  中間テーブル
３２  ベクトル類似度計算部
３４  ベクトル分類部
３６  シフト情報決定部
５０  コンピュータ
５２  ＣＰＵ
５４  メモリ
５６  記憶部
６０  情報抽出プログラム
【図１】
2017068799.tif 000003
【図２】
2017068799.tif 000004
【図３】
2017068799.tif 000005
【図４】
2017068799.tif 000006
【図５】
2017068799.tif 000007
【図６】
2017068799.tif 000008
【図７】
2017068799.tif 000009
【図８】
2017068799.tif 000010
【図９】
2017068799.tif 000011
【図１０】
2017068799.tif 000012
【図１１】
2017068799.tif 000013
【図１２】
2017068799.tif 000014
【図１３】
2017068799.tif 000015
【図１４】
2017068799.tif 000016
【図１５】
2017068799.tif 000017
【図１６】
2017068799.tif 000018
【図１７】
2017068799.tif 000019
【図１８】
2017068799.tif 000020
【図１９】
2017068799.tif 000021
【図２０】
2017068799.tif 000022
【図２１】
2017068799.tif 000023
【図２２】
2017068799.tif 000024
【図２３】
2017068799.tif 000025
【図２４】
2017068799.tif 000026
【図２５】
2017068799.tif 000027
【図２６】
2017068799.tif 000028
【図２７】
2017068799.tif 000029