(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-03
(45)【発行日】2022-08-12
(54)【発明の名称】オープンデータを効率的に構造化し補正する方法及びプログラム
(51)【国際特許分類】
G06F 16/951 20190101AFI20220804BHJP
G06F 16/21 20190101ALI20220804BHJP
【FI】
G06F16/951
G06F16/21
(21)【出願番号】P 2021010352
(22)【出願日】2021-01-26
【審査請求日】2021-01-26
(73)【特許権者】
【識別番号】720010198
【氏名又は名称】株式会社XAION DATA
(72)【発明者】
【氏名】佐藤 泰秀
(72)【発明者】
【氏名】石崎 優人
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2001-325284(JP,A)
【文献】特開2012-099138(JP,A)
【文献】特開2000-207407(JP,A)
【文献】特開2017-146924(JP,A)
【文献】特開2006-139599(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
情報処理装置が、ネットワークアドレスにより指定されたデータとそのデータ内で推定されるネットワークアドレスにより指定されたデータからテキストデータを収集する
ステップと、
前記テキストデータを整形する
ステップと、
前記整形により整形されたテキストデータから最適な抽出手法を自動的に選択することにより必要な情報を抽出する
ステップと、
前記情報の各々を一時的記憶領域に実装された構造化処理用データベースを使用して付加情報を追加することにより構造化をする
ステップと、
前記構造化により構造化がなされた情報を一時的記憶領域に実装された補正処理用データベースを使用して補正する
ステップと、を少なくとも実行することを特徴とする情報処理方法。
【請求項2】
情報処理装置が、ネットワークアドレスにより指定されたデータとそのデータ内で推定されるネットワークアドレスにより指定されたデータのデータタイプを判別する
ステップと、
前記データタイプに適した方法により前記データからテキストデータを収集する
ステップと、
前記収集により収集されたデータを整形する
ステップと、
前記整形により整形されたデータから最適な抽出手法を自動的に選択することにより必要な情報を抽出する
ステップと、
前記抽出により抽出された情報の各々を一時的記憶領域に実装された構造化処理用データベースを使用して付加情報を追加することにより情報の構造化をする
ステップと、
前記構造化により構造化がなされた情報を一時的記憶領域に実装された補正処理用データベースを使用して補正する
ステップと、を少なくとも実行することを特徴とする情報処理方法。
【請求項3】
前記データタイプが音声、動画または文書ファイルのいずれかである請求項2に記載の情報処理方法。
【請求項4】
前記構造化をする
ステップにおいて、前記構造化処理用データベースに存在しない新たな語句が前記情報内に存在した場合は、前記語句を前記構造化処理用データベースに登録する
ステップを実行する請求項1から請求項3のいずれかに記載の情報処理方法。
【請求項5】
前記一時的記憶領域に実装された構造化処理用データベースまたは補正処理用データベースに保持されているデータ中に人物に関するデータがある場合は、データの統合をすると同時に人物の氏名を匿名化する
ステップを実行することを特徴とする請求項1から請求項4のいずれかに記載の情報処理方法。
【請求項6】
前記一時的記憶領域に実装された構造化処理用データベースおよび補正処理用データベースに保持されているデータが自動的に暗号化され、データのマッチング、データの統合およびデータの補正をする時にのみ複合化される
ステップを実行することを特徴とする請求項1から請求項5のいずれかに記載の情報処理方法。
【請求項7】
請求項1から請求項6のいずれかに記載の情報処理方法をコンピュータ上で実行することを特徴としたプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上に点在しているアクセスが制限されていない、いわゆるオープンデータから必要とする情報を抽出し、効率的に構造化および補正処理をする技術に関するものである。
【背景技術】
【0002】
従来、所望の情報をオープンデータから選別して収集するには、ブラウザによりウェブサイトを1つ1つ閲覧しながら手作業で情報を収集、蓄積しなければならなかった。
【0003】
この課題に対し、自動的にオープンデータから所望の情報を収集する解決手段を記載している以下先行技術文献がある。
【0004】
特許文献1:ウェブサイトから自動的に表形式またはデータベース形式の情報を抽出する。
特許文献2:複数のウェブサイトから定義ファイルまたは辞書ファイルにより所望の情報を抽出してXML形式で出力する。
特許文献3:ウェブデータから機械学習により作成された構造化モデルにより構造化された情報を抽出する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2008-102773号公報
【文献】特開2010-15202号公報
【文献】特開2016-181069号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1は、ウェブサイト上の表形式またはデータベース形式の情報のみを抽出の対象としており、それ以外のデータ形式には対応していない。
【0007】
特許文献2は、ウェブサイトから情報を抽出する際に、定義ファイルまたは辞書ファイルにより予め用意されている情報だけが抽出の対象となり、また、出力されるデータがXML形式に限定されている。
【0008】
特許文献3は、ウェブサイトから抽出した情報を構造化する際に、予め作成された教師データに基づく構造化モデル情報が用意されている必要があり、また、構造化された情報に一貫性や最適化が必要な場合であっても補正等がなされず、そのため、情報の構造化がなされてはいるが、データの整合性が取れない等の理由により、その情報の利活用までには至らないという問題がある。
【0009】
また、特許文献1~3のいずれについても、抽出する対象となるデータはすべてテキスト(文字)データであり、その他の種類のデータから所望の情報を抽出し、その情報を構造化し、さらに補正する手段は提供されていない。
【0010】
本発明は、このような事情を考慮して創作されたものであり、ネットワーク上に点在しているアクセスが制限されていない、各種フォーマットのオープンデータから情報を抽出し、抽出した情報を機械学習等の処理により自動的に構造化し、構造化したデータの補正を行う情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
前記の目的を達成するため、本発明は、ネットワークアドレスにより指定されたデータとそのデータ内で推定されるネットワークアドレスにより指定されたデータからテキストデータを収集する手段と、前記テキストデータを整形する手段と、前記整形により整形されたテキストデータから最適な抽出手法を自動的に選択することにより必要な情報を抽出する手段と、前記情報の各々を一時的記憶領域に実装された構造化処理用データベースを使用して付加情報を追加することにより構造化をする手段と、前記構造化により構造化がなされた情報を一時的記憶領域に実装された補正処理用データベースにより補正する手段と、を備えることを特徴としている。
【発明の効果】
【0012】
本発明に係る情報処理方法およびプログラムによれば、ネットワーク上に点在する様々な形式のデータから所望の情報を抽出し、高速に構造化および補正することを効率的に行うことができ、これらの処理により生成された情報は、その後さらなる加工を施すことなく利活用することが容易に可能となる。
【図面の簡単な説明】
【0013】
【
図3】本発明の機能および処理構成を示す図である。
【
図4】本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程を示すフローチャートを示す図である。
【
図5】本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程で作成されるディレクトリ構造またはサイトマップ等の一例を示す図である。
【
図6】本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程で作成される整形されたテキストデータの一例を示す図である。
【
図7】本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1のインメモリデータベースの作成処理工程を示す図である。
【
図8】本発明の第二の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程を示す図である。
【
図9】本発明の第三の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程を示す図である。
【発明を実施するための形態】
【0014】
発明を実施するための第一の形態について、図面を参照しながら詳細に説明をする。
【0015】
[第一実施形態]
図1は、本発明の第一の実施形態の情報処理方法およびプログラムに係るシステムの全体構成を示す図である。
【0016】
[システム全体構成]
図1において、情報処理装置1は、通信ネットワークNを通じて複数のコンテンツサーバ2(1~n(nは整数))に接続される。
【0017】
通信ネットワークNは、電気信号により相互にデータの交換ができるものであればよく、インターネット、モバイルネットワークやローカルエリアネットワークであっても構わない。通信ネットワークNとの接続は、有線であるか無線であるかを問わない。
【0018】
コンテンツサーバ2は、情報処理装置1のリクエストに応じて、各種コンテンツ(データ)を提供する。提供されるコンテンツ(データ)は、例えば、テキストファイル、HTMLファイル、画像ファイル、動画ファイル、音声ファイル等である。
【0019】
また、コンテンツサーバ2は、通信ネットワークに接続できる機能とコンテンツ(データ)を蓄積できる機能があればよく、いわゆるサーバの機能を有している必要はない。
【0020】
[ハードウェア構成]
図2は、本発明の第一の実施形態に係る情報処理装置1のハードウェア構成を示す図である。
【0021】
情報処理装置1は、演算処理をするCPU(Central Processor Unit)10、一時的にデータやプログラムを記憶するRAM(RANDOM ACCESS MEMORY)11、データやプログラムを格納する記憶装置12、およびネットワーク接続用の通信インターフェース13を含む。また、情報処理装置1は、バス等を介して入力装置14および出力装置15に接続されている。
【0022】
情報処理装置1の各コンポーネントは、それぞれ複数あっても構わないし、物理的に分散していても、仮想的に分散していても構わない。また、互いに有線で接続されていてもよいし、無線で接続される構成となっていてもよい。
【0023】
CPU10は、RAM11や記憶装置12からプログラム等を読み込み、各種命令を実行することにより、情報処理装置1の全体を制御し、また、後述する各部の機能を実現する。
【0024】
RAM11は、起動中のアプリケーションデータや入力されたデータを一時的に記憶しておく記憶媒体で、CPU10がより高速にアクセスできるキャッシュメモリが含まれていてもよい。また、後述するインメモリデータベースは、RAM11上に実装されるデータベースであり、ハードディスク等に実装されるデータベースに比べ、より高速でリアルタイムなデータの検索や照合を可能にする。
【0025】
記憶装置12は、本発明の機能を実行するプログラム及び後述する構造化データ保持部により蓄積される構造化データ、辞書データ等を記憶する。なお、記憶装置12は、その媒体、読込みおよび書込み方式が一つに限定されるものではなく、例えば、磁気的ハードディスク、光学ディスクやソリッドステートドライブのいずれであってもよい。
【0026】
通信インターフェース13は、通信ネットワークNを介してコンテンツサーバ2と接続できるようにするためのインターフェースであり、通信方式は、有線であるか無線であるかを問わない。
【0027】
入力装置14は、例えばマウス、キーボードやタッチパネル等で実現され、入力操作に用いられる。出力装置15は、例えばディスプレイで実現され、文字、画像、音声等の出力を確認するために用いられる。
【0028】
[機能および処理構成]
図3は、本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1の機能および処理を表す構成図である。なお、本構成の各部は、ソフトウェアで実現される機能および処理を実行する単位を表すものであり、例えば、プログラム言語による命令群、メソッド、クラスまたはライブラリ等であって各々の機能および処理を実行する集合が表されているものと考えてよい。
【0029】
情報処理装置1は、データ取得部20、ディレクトリ構造抽出部21、データクレンジング部22、データ構造部23、構造化データ保持部24、インメモリデータベース25によって構成される。
【0030】
データ取得部20は、ネットワークアドレスをインプットとして受け付け、アドレス先にあるウェブページを構成しているマークアップ言語等をテキストデータとして取得する。
【0031】
ディレクトリ構造抽出部21は、取得した前記テキストデータから派生するネットワークアドレスを把握し、ディレクトリ構造を構築する。
【0032】
データクレンジング部22は、前記テキストデータを加工処理し易くするために、余分な文字を除く等の整形を実行する。
【0033】
データ構造部23は、前記データクレンジング部により整形された前記テキストデータから、必要となる情報を抽出し、抽出した各情報にタグ(付加情報)を付与することにより構造化する。
【0034】
構造化データ保持部24は、構造化した前記テキストデータを保存する。また、後述するマッチングまたは統合処理のためにインメモリデータベース25にロードして使用する各種データを蓄積する。
【0035】
インメモリデータベース25は、後述するマッチングまたは統合処理をするために、RAM11に一時的に記憶される辞書データおよび構造化がなされた既存データ等のデータテーブルを含むデータベースである。
【0036】
図4は、本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程を示すフローチャートである。
【0037】
ステップS1(URL読込み)は、インプットされるURL(Uniform Resource Locator)等のネットワーク上のアドレスにより、ウェブサイトのトップページのロケーション(例えば、「http://www.abc.com/」)にアクセスする。なお、インプットされるURLは、その都度手入力されてもよいし、リスト化されたURLの1番上から順番にインプットされる仕様としてもよい。また、リスト化されるURLは、ブラウザの履歴情報から自動的に抽出されてもよいし、検索エンジンによるキーワード検索を利用し、検索結果の上位から自動的にURLを抽出する等の仕様としてもよい。
【0038】
ステップS2(テキストデータ取得)は、前記トップページに位置づけられるブラウザにより表示可能なファイル(例えば「.htm」または「.html」ファイル。以下「ウェブページ」という。)を構成しているHTML(Hyper Text Markup Language)等のマークアップ言語等をテキストデータとして取得する。
【0039】
ステップS3(ディレクトリ構造抽出)は、前記テキストデータに含まれるHTMLタグ等(例えば、<A>~</A>)を分析し、前記トップページから派生するリンク(URL等のアドレス)の中から、ウェブページが1つ以上存在するディレクトリを選択し、ルートディレクトリであるトップページを中心に構成されるディレクトリ構造またはサイトマップ等を構築する(
図5)。また、この際に、以下のようなディレクトリテーブルを作成する。
【0040】
[例]ディレクトリテーブル
ルートディレクトリ|ディレクトリ |読込フラグ
abc.com |company |1
abc.com |contact |0
abc.com |service |0
abc.com |fbook.jp/abc|0
【0041】
以上ディレクトリテーブルの「読込フラグ」属性は、ディレクトリに存在するウェブページの全てについてステップS15までの処理が行われた場合に「1」等の初期値(例ではゼロ)とは異なる値が入力され、次のディレクトリに移動し、全てのディレクトリに値が入力されるまでステップS1からの処理を繰り返す。なお、ディレクトリはディレクトリシステムのいわゆるフォルダに該当するものに限らず、以上例にあるようにリンク先の外部サイトを示す場合もある。
【0042】
ステップS4(データ種類判別)は、前記ディレクトリ構造を構成する各ディレクトリ下に音声または動画ファイルもしくはドキュメントファイルがある場合には、そのデータの種類を判別する。なお、以下では音声または動画ファイルもしくはドキュメントファイルが無かった場合(ステップS5:NO)のフローを記載し、存在した場合(ステップS5:YES)の処理は、後述する第二実施形態および第三実施形態で記載する。
【0043】
ステップS6(データクレンジング)は、その後の構造化処理のインプットデータを用意するために、いわゆるローデータであるテキストデータ取得ステップS2で取得されたテキストデータを整形するパース処理をする。具体的には、HTMLタグ等および意味のない空白記号等を除去し、意味のある単語の組み合わせや文のみとし、それらの順序の並び替えを行う(
図6)。
【0044】
ステップS7(文を形態素に分割)は、前記パース処理をしたテキストデータを構成する文を分かち書きし、形態素(意味をもつ表現要素の最小単位)に分割する。
【0045】
ステップS8(品詞を抽出)は、前記形態素を品詞分けし、組み合わせにより単語として成立し得る品詞を抽出する。
【0046】
ステップS9(品詞の結合パターンを自動生成)は、品詞と品詞を組み合わせた新しい単語または前記辞書データに登録されていない単語を自動で構造化処理の対象とするために、品詞間でのチャンキング(文章語句構成要素の分割または結合処理)を自動で行い、品詞の結合を実行し、その結果のパターンの中で頻出する可能性が高いパターンを用語として認識し構造化処理の対象とする。そして、前記用語が前記インメモリデータベースに存在するか否かを検索し、存在しなかった場合は、
図7ステップS27の選別用データベースに追加する(ステップS10 NO)。その後、前記用語が前記インメモリデータベースに登録(
図7ステップS29)されるか否かは、後述するインメモリデータベースの作成処理工程で説明する。前記用語が前記インメモリデータベースに存在する場合は、ステップS11に進む(ステップS10 YES)。
【0047】
結合した品詞による前記用語に限らず、結合をしていない前記品詞についても、頻出する可能性が高い品詞を用語として認識し構造化処理の対象とする。そして、前記インメモリデータベースに存在するか否かを検索し、存在しなかった場合は、前記選別用データベースに追加する(ステップS10 NO)。その後、前記用語が前記インメモリデータベースに登録(
図7ステップS29)されるか否かは、後述するインメモリデータベースの作成処理工程で説明する。前記用語が前記インメモリデータベースに存在する場合は、ステップS11に進む(ステップS10 YES)。
【0048】
ステップS11(インメモリデータベースとのマッチング)は、前記品詞(ステップS9により前記用語と認識したものを含む)の各々と前記インメモリデータベース(以上で前記選別用データベースに追加された後、前記インメモリデータベースに登録された用語等も含む)にロードされた既存のデータテーブル(例えば、以下データテーブル1)を構成する属性と値のペアを高速でマッチング処理する。ここで、前記インメモリデータベースのマッチングについては、完全一致の場合以外だけではなく類似性にも対応できるように、出現頻度に基づいた統計的モデルまたは機械学習モデルに基づき、収集した情報内容の中で一般的な用語として使用されているかまたは重要度の高い用語として使用されているかを判断し、重要度の高い用語のみを抽出する(キーワード抽出)。前記モデルは、各単語の文脈による出現回数と各単語をベクトル表現に置き換えた上での距離等の計算(意味の類似性と関係性等が導かれる。)を基に生成される。例えば、求人ウェブページに記載される特徴データを抽出する場合には、「福利厚生」や「社会保険」という用語は、求人情報における待遇に関する付加情報として使われるため出現頻度が高い。したがって、待遇情報を抽出するという情報収集テーマでは好適であるため「福利厚生」等は除外する必要はない。しかし、求人の要件としての職能(スキル)情報を抽出するという情報収集テーマでは不適であるため、前記モデルに基づいた抽出方法を利用することで「福利厚生」等を除外する処理をすることができる。
【0049】
[例]データテーブル1
企 業 名 |電 話 番 号 |商 品
ABC株式会社|xxx-xxxx|リンゴ
【0050】
マッチングされる前記品詞は、前記ディスプレイテーブルのルートディレクトリを示すネットワークアドレスがABC株式会社に属するものと確認されている場合、例えば、既存データである以上データテーブル1に示されている「企業名:ABC株式会社」のデータセットとマッチングが実行される。例えば、「果物」という名詞は、以上データテーブル1の「リンゴ」とマッチするという判断がなされる。この判断は、カテゴリーとそれに属する要素を登録した辞書データを使ってもよいし、「果物」と「果物」の前後の文脈の意味解析により判断してもよい。
【0051】
ステップS12(タグ情報付加)は、前記品詞にマッチしたと判断されたデータテーブルの値に対応する属性を前記名詞の付加情報としてタグ付けし、データテーブルに新たなデータセットとして入力する。前記データテーブル1を例にし、それを可視化すると以下データテーブル2のようになる。
【0052】
[例]データテーブル2
|企 業 名 |電 話 番 号 |商 品
既存|ABC株式会社|xxx-xxxx|リンゴ
新規|ABC株式会社| |果物
【0053】
なお、前記データセットの属性または値とはマッチしない新たな属性または値と推定される品詞が検出されるときがある。その場合は、データ表現パターンの正規表現および、データ属性度の類似を判別するためのモデルを用いる。このモデルはK-means法、LSTM(Long Short-Term Memory)およびCBOW(Countinuous Bag-of-Words)手法等の機械学習に基づいた言語データが同一であるか否かの判別をするためのモデルを用いて、属性解析を実施する。例えば、
図6のテキストデータでは、「企業概要」という表現が会社関連のウェブページでは頻出しかつ意味のある単語であると判断するため、「企業概要」が構造化を行うための属性情報と把握することができる。そして、企業概要に従属するデータであってデータセットにない値(「加工販売」「アットホーム」等)が、属性である企業概要に対応する値であると把握することが可能となり、データセットに新たな属性および値として入力される(以下データテーブル3)。また、「加工販売」、「アットホーム」が、辞書データや属性解析により、例えば、それぞれ「業種」、「社風」の属性の値と判断される場合には、以下データテーブル4のように入力され得る。
【0054】
[例]データテーブル3
|企 業 名 |電話番号|商品|会 社 概 要
新規|ABC株式会社| |果物|加工販売、アットホーム
【0055】
[例]データテーブル4
|企 業 名 |電話番号|商品|業 種|社風
新規|ABC株式会社| |果物|加工販売|アットホーム
【0056】
以上のタグ情報を付加する処理により、各情報の属性等が判別できるようになり、データの視認性、加工性および利活用性が向上する。しかし、データセット同士で重複すると考えられる属性または値が存在し、情報としての一貫性が保たれない場合が考えられる。
【0057】
ステップS13(統合(名寄せ))は、前記タグ情報付加により構造化がなされた新規データと既存データとの統合を名寄せにより行う。前記既存データは構造化データ保持部24に保存されており、効率的なマッチングのため構造化データ保持部24からインメモリデータベース25にロードされ、新規データの1つまたは複数の属性および値をキーとして、対応する既存データの属性および値との比較および統合を実行し、統合されたデータは構造化データ保持部24に保存される。比較対象となる属性の決定方法は、比較を行う属性群を事前に手動で設定する方法または自動クラスタリング方法の2種類を用いることができる。手動で設定する場合には、比較対象となる属性を選択する(例:「企業概要」比較項目;会社名,電話番号,商品)。いずれの方法においても、比較対象となる属性が選択され、比較と同一性の判断が行われる。
【0058】
例えば、「電話番号」について統合を行う場合には、比較するデータ属性は、「代表電話番号」や「電話」等様々な記述形態が分散して現れる。これらの記述形態を「電話番号」と識別するために、データ表現パターンの正規表現および、データ属性度の類似を判別するためのモデルを用いる。このモデルはK-means法、LSTMおよびCBOW手法等の機械学習を用いた言語データを同一の用語であるか否かの判別をするためのモデルを組み合わせたものである。比較対象の属性に対応する値についても同様な手法により比較および統合が実行される。なお、属性の同一性が確認された場合であっても、値の同一性が確認されない場合もあり得る。その場合は、複数の属性の同一性が確認される場合またはデータ内容により主キー(インデックスとなり得る値を保持する)と考えられる属性の同一性が確認されることにより新規データと既存データがデータセットとして同一と判断される場合には、一の属性が複数の値を持つことも許容される。
【0059】
前記統合(名寄せ)の具体例を以下に示す。データテーブル5とデータテーブル6のデータセットが前記統合の処理によりデータテーブル7またはデータテーブル8に示されるデータセットになる。なお、データテーブル5とデータテーブル6は便宜上、別のデータテーブルとして表しているが、同一のデータテーブルのデータセットであってもよい。
【0060】
[例]データテーブル5
|企 業 名 |電 話 番 号 |商 品
既存|ABC株式会社|xxx-xxxx|リンゴ
[例]データテーブル6
|企 業 名 |代表電話番号 |商 品
新規|ABC株式会社| |果物
【0061】
[例]データテーブル7
|企 業 名 |電 話 番 号 |商 品
統合|ABC株式会社|xxx-xxxx|果物
【0062】
[例]データテーブル8
|企 業 名 |電 話 番 号 |商 品
統合|ABC株式会社|xxx-xxxx|果物、リンゴ
【0063】
データセットの属性や値の重複が存在している場合には、従来、これを目視により排除していたが、前記統合(名寄せ)により、自動的にこの問題を解決することができ、一貫性が保たれたデータは、その後のデータの利活用における問題を低減できる。例えば、企業情報を保持するデータセットの値として重複する電話番号やメールアドレスが無いことにより、BtoBマーケティングを実行する場面において、システムエラーやヒューマンエラー等を誘発しない等の効果が期待できる。
【0064】
なお、例えば、情報収集テーマが求人等である場合には、個人情報保護の観点から、前記統合(名寄せ)を実行すると同時に、人物名を匿名に置換する処理をすることも可能である。例えば、人物名をアルファベットまたは数値もしくはそれらの組み合わせで表記にすることが考えられるが、ある人物を特定できないようにすればよく、匿名化の方法はこれに限られない。
【0065】
ステップS14(構造化データ保存)は、前記統合(名寄せ)により統合された前記データセットを保持する前記データテーブルを構造化データ保持部24に保存する。なお、堅牢なセキュリティの観点から、前記保存をする際に、前記データテーブルまたは前記データテーブルに含まれるデータを自動的に暗号化する処理をすることも可能である。暗号化の手法は問わないが、1つの手法だけである必要はなく、複数の手法を用いてもよい。暗号化され保存されたデータ等は、読み込み時(必要となる時)に自動的に復号化される。また、暗号化されたデータ等を複製および圧縮し、自動的にバックアップを作成する機能を追加してもよい。
【0066】
ステップS15は、テキストデータが取得された前記ウェブページが属しているディレクトリにおいて、前記ウェブページが最後のウェブページであるか否かを判断する。最後のウェブページではない場合には、NOに分岐しステップS2の処理工程に戻る。最後のウェブページであった場合には、YESに分岐し次のステップS16に進む。
【0067】
ステップS16は、前記ディレクトリが最後のディレクトリであるか否かを判断する。最後のディレクトリではない場合には、NOに分岐しステップS2の処理工程に戻る。最後のディレクトリであった場合には、YESに分岐し処理を終了する。
【0068】
図7は、本発明の第一の実施形態の情報処理方法およびプログラムに係る情報処理装置1のインメモリデータベースの作成処理工程を示すフローチャートである。なお、インメモリデータベースは、一定量のデータの蓄積から生成される教師データ等の集合体ではなく、新語、用語等およびそれらと同時に使われる語句の集合体である。また、予め作成することは可能であるが、予め作成する必要はない。
【0069】
インメモリデータベースの作成処理工程は、ステップS20からステップS26まで、上述した情報処理装置1の処理工程のステップS1からステップS3およびステップS6からステップS9と同様である。これら2つの処理工程は、同時並行して別々に実行されてもよいし、情報処理装置1の処理工程がインメモリデータベースの作成処理工程を代替して実行されてもよい。
【0070】
以下、ステップS20からステップS26までの説明は割愛し、その後の処理工程を説明する。
【0071】
ステップS27(選別用データベースに登録)は、選別用データベースにインメモリデータベースに登録する候補となる用語等を登録する工程である。選別用データベースはインメモリデータベースと同様にRAM11に一時的に記憶されることを想定している。
【0072】
選別用データベースに登録されるパターンは、2つある。直上のステップS26(品詞の結合パターンを自動生成)の処理後に登録されるパターンと
図4の情報処理装置1の処理工程ステップS10でNOに分岐した場合である。
【0073】
ステップS28(最適手法の選択)は、前記選別用データベースに登録された用語を使用または利用して前記インメモリデータベース25に格納される各データテーブルを構築する際に用いられる手法を選択する。選択する手法としては、例えば、機械学習手法、統計的手法や深層学習手法等であって、これらの手法の中から精度向上のために最適な手法をケースバイケースで選択するアンサンブル手法を利用する。
【0074】
機械学習手法を例にあげると、自然言語処理系の機械学習手法である形態素解析技術等を用いてテキストデータを単語単位に分解し、解析対象のデータ全体における用語やデータの出現回数および出現パターンをカウントおよび分析し、単語とその出現頻度を示した辞書データと属性判別モデルを生成する。
【0075】
また、統計的手法を例にあげると、各ウェブページを構成するテキスト群の中で、語句の出現頻度に基づいた意味解析を実施する。例えば、求人ウェブサイトを構成するウェブページの1つにおいて、「求人名:エンジニアポジション募集」という表現がある場合には、求人名という表現が求人関連のウェブページでは頻出しかつ意味のある語句であると判断するため、求人名が構造化を行うための属性情報と把握することができる。そして、求人名に従属するデータが、属性である求人名に対応する値(この場合「エンジニアポジション募集」)であると把握することが可能となり、属性と値の1つのパターンとして学習される。
【0076】
深層学習手法を用いた方法では、例えば、CBOW手法等を用いて、解析対象のデータがインプットされる入力層の単語単位のコンテンツ情報の偏りを把握し、コンテンツの主要な内容を言葉のまとまり単位で把握させる。また、単語単位の認識に対しては、新語、造語、専門用語や業界用語に追従させるために、予め作成された専用辞書データの利用と単語間での自動的なチャンキングを実施し、頻出する可能性が高い用語を自動的に辞書データ等に追加していく。例えば、仮想と通貨は通常分離した単語であるが、仮想通貨という偶然並ぶことのない単語が頻出する場合には、仮想通貨は一つの用語として認識させることができる。
【0077】
ステップS29(インメモリデータベースに登録)は、前記最適な手法による選別または生成された辞書データ、モデル、パターンまたは新語等をインメモリデータベースに登録し、処理を終了する。但し、ステップS27において、前記選別用データベースに登録されるパターンが、
図4の情報処理装置1の処理工程ステップS10でNOに分岐した場合であるときには、処理は終了せずに、
図4の情報処理装置1の処理工程ステップS11に遷移する。なお、堅牢なセキュリティの観点から、前記登録をする際に、辞書データ、モデル、パターンまたは新語等もしくはそれらに含まれるデータを自動的に暗号化する処理をすることも可能である。暗号化の手法は問わないが、1つの手法だけである必要はなく、複数の手法を用いてもよい。暗号化され登録されたデータ等は、読み込み時(必要となる時)に自動的に復号化される。また、暗号化されたデータ等を複製および圧縮し、自動的にバックアップを作成する機能を追加してもよい。
【0078】
以上のように構築されたインメモリデータベースは、
図4の情報処理装置1の処理工程ステップS11でマッチングに使用される。前記インメモリデータベースを使用することにより、データの高速かつテーマに沿ったマッチングと言語の流行り廃れ等に対応した高度な構造化を実行することが可能となる。
【0079】
[第二実施形態]
第二実施形態は、構造化の対象となるデータがドキュメントファイルに含まれる場合の例である。
【0080】
第二実施形態および後述する第三実施形態については、構成(システム全体構成、ハードウェア構成、機能および処理構成)が第一実施形態の構成と同様であるため、それらは割愛する。
【0081】
図8は、本発明の第二の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程を示すフローチャートである。なお、ステップS30までは、第一実施形態の情報処理装置1の処理工程(
図4)のステップS1からステップS4と同様であるため、それらの説明は割愛し、その後の処理工程を説明する。
【0082】
ステップS30(ドキュメントタイプの判別)は、第一実施形態に係る
図4のステップS4(データ種類判別)でドキュメントファイルが検出され、ステップS5においてYESに分岐した場合において、前記ドキュメントファイルがその後の処理の対象となり得るか否か、主にファイル拡張子によりドキュメントタイプを判別する。前記ドキュメントタイプが文書、表計算、プレゼンテーション、PDF、XMLのいずれかであった場合には、ステップS32に進み(ステップS31 YES)、それ以外の場合にはステップS35(テキストの構造化)に遷移する(ステップS31 NO)。
【0083】
ステップS32は、文書、表計算、プレゼンテーション、PDFまたはXMLタイプの前記ドキュメントファイルのデータにテーブル(表)形式のデータが存在するか否かを検出する。前記テーブル形式のデータが確認された場合には、次のステップS33に進み(YES)、それ以外の場合にはステップS35(通常テキストの構造化)に遷移する(NO)。
【0084】
ステップS33(テーブル等の抽出)は、前記ドキュメントファイルからテーブル形式のデータをテーブル形式のままの状態で抽出する。データは、通常、以下データテーブル9または10のようなフォーマットで抽出される。
【0085】
[例]データテーブル9
項番|企 業 名 |資 本 金|
1|ABC株式会社|100万円|
【0086】
[例]データテーブル10
項 番|1
企業名|ABC株式会社
資本金|100万円
【0087】
ステップS34(テーブル等の構造化)は、データの従属関係(属性と値)を把握し、インデックスとなり得るデータを検出および設定することにより、行または列毎にデータをまとめ、データセットを作成し、構造化を完了する。
【0088】
構造化の方法には2つある。(1)インメモリデータベースを利用する方法と(2)第一実施形態で説明した統計的手法を利用する方法である。
【0089】
(1)の方法ではまず、前記テーブル形式のデータの最初の行または最初の列に入力されているデータの各々とインメモリデータベースを構成する各データテーブルの属性列または属性行に入力されている各々のデータをマッチングする。そして、前記最初の行または前記最初の列のいずれかでマッチしたデータの出現回数が多いほうをそれぞれ属性行または属性列とする。
【0090】
属性行を設定した場合には、前記テーブル形式のデータを行毎にデータセットとしてまとめ、属性列を設定した場合には、データを列毎にデータセットとしてまとめることにより、データを構造化する。
【0091】
前記データを行毎にまとめる場合、列毎にまとめる場合、いずれも場合も以下の例のようなフォーマットでデータを構造化する。
[例]データテーブル11
項番:1,会社名:A社,資本金:100万円
項番:2,会社名:B社,資本金:1億円
・・:・・・・・
【0092】
以上データテーブル11「項番」に属する値は、第一実施形態において説明した機械学習手法を使用して出現パターンや文字種を分析することにより、数字の連続であり、各値が一意であることが分かる。よって、属性「項番」とその値をインデックスとして設定する。なお、インデックスとして設定する値が検出されない場合には、データセットの先頭に属性(例えば「項番」)と1から始まる連続する数値等を追加することも可能である。
【0093】
(2)の方法では、前記ドキュメントファイルを構成するテキスト群の中で、第一実施形態の場合と同様に語句の出現頻度に基づいた意味解析を実施する。
【0094】
例えば、前記ドキュメントファイルが企業のIR関連資料である場合には、「会社名」「資本金」といった単語が頻出しかつ資料との関連性があると判断する。したがって、例えば、以上データテーブル9では、最初の行が属性の集合であると判断できる。また、「項番」という単語の意味からすると、「項番」という属性に対応する値は、その右方向に並ぶ「会社名」や「資本金」ではなく、下方向に並ぶ数値である可能性が高いことからも最初の行に属性があることを確認できる。
【0095】
属性である「項番」を先頭にして行毎にデータセットがあることを判別した後は、(1)の方法の場合と同様に前記データを行毎にまとめ、データテーブル11と同様の形式で前記データを構造化する。なお、最初の列が属性の集合であると判断した場合の処理も同様である。
【0096】
ステップS35(テキストの構造化)は、行毎にまたは列毎にまとめる前記テーブル形式のデータが存在しなくなった場合もしくは前記テーブル形式のデータが最初から存在しなかった場合に、前記テーブル形式のデータ以外の一般のテキスト部分について構造化を行う。前記テキスト部分の構造化は、第一実施形態と同様の方法(ステップS6~ステップS12)で行う。なお、前記テキスト部分が存在しなかった場合は、テキストの構造化処理は行わない。
【0097】
前記テキスト部分の構造化を完了すると第一実施形態に係る
図4ステップS13(統合(名寄せ))の処理工程に遷移し、その後の処理工程は、第一実施形態と同様である。
【0098】
[第三実施形態]
第三実施形態は、構造化の対象となるデータが音声または動画ファイルに含まれる場合の例である。
【0099】
図9は、本発明の第三の実施形態の情報処理方法およびプログラムに係る情報処理装置1の処理工程を示すフローチャートである。なお、ステップS40までは、第一実施形態の情報処理装置1の処理工程(
図4)のステップS1からステップS4と同様であるため、それらの説明は割愛し、その後の処理工程を説明する。
【0100】
ステップS40(音声/動画タイプの判別)は、第一実施形態に係る
図4のステップS4(データ種類判別)でドキュメントファイルが検出され、ステップS5においてYESに分岐した場合において、前記音声または動画ファイルがその後の処理の対象となり得るか否か、主にファイル拡張子により前記音声または動画ファイルのタイプを判別する。処理の対象のタイプを検出できなかった場合には、処理を中止する。
【0101】
ステップS41(音声のテキスト化)は、音声ファイルの場合には音声を、動画ファイルの場合には音声部分を音声認識モジュールによりテキスト化する。
【0102】
音声ファイルの音声または動画ファイルの音声部分のテキスト化を完了すると、第一実施形態に係る
図4ステップ23(データクレンジング)の処理工程に遷移し、その後の処理工程は、第一実施形態と同様である。
【0103】
本発明の実施形態の説明は以上であるが、上述した本発明の実施形態は、代表的な実施形態を列挙したに過ぎず、上述した実施形態に限られない。また、上述した本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、上述した本発明の実施例に記載された効果に限られない。
【符号の説明】
【0104】
1 情報処理装置
2 コンテンツサーバ
10 CPU
11 RAM
12 記憶装置
13 通信インターフェース
14 入力装置
15 出力装置
20 データ取得部
21 ディレクトリ構造抽出部
22 データクレンジング部
23 データ構造部
24 構造化データ保持部
25 インメモリデータベース