JPWO2018100700A1 - データ変換装置とデータ変換方法 - Google Patents

データ変換装置とデータ変換方法 Download PDF

Info

Publication number
JPWO2018100700A1
JPWO2018100700A1 JP2018553591A JP2018553591A JPWO2018100700A1 JP WO2018100700 A1 JPWO2018100700 A1 JP WO2018100700A1 JP 2018553591 A JP2018553591 A JP 2018553591A JP 2018553591 A JP2018553591 A JP 2018553591A JP WO2018100700 A1 JPWO2018100700 A1 JP WO2018100700A1
Authority
JP
Japan
Prior art keywords
data
character
characters
processor
data conversion
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.)
Granted
Application number
JP2018553591A
Other languages
English (en)
Other versions
JP6763967B2 (ja
Inventor
文也 工藤
文也 工藤
林 秀樹
秀樹 林
健二 北川
健二 北川
裕二 溝手
裕二 溝手
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2018100700A1 publication Critical patent/JPWO2018100700A1/ja
Application granted granted Critical
Publication of JP6763967B2 publication Critical patent/JP6763967B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

プログラムを記憶するメモリと、メモリに記憶されたプログラムを基にデータを処理するプロセッサを備え、プロセッサは、自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力し、入力した入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、当該集計結果を基に集計された各集計対象文字の出現頻度又は情報量を算出し、算出された出現頻度又は情報量を基に各集計対象文字の出現頻度の変化点又は情報量の変化点を算出し、算出された出現頻度の変化点又は情報量の変化点を基に複数の集計対象文字を分離する。

Description

本発明は、自由記述文章のデータあるいはテーブル形式のデータに対して、データ中の各要素から得られる統計情報を元に、分析に必要なデータ加工を自動化するデータ変換装置とデータ変換方法に関する。
近年、企業で蓄積されてきた業績に関するビッグデータを活用し、業績向上に繋がる要因を分析するシステムの開発が盛んに行われている。一般的に分析者は、様々な情報を含む大量のデータに対して、どのような条件が業績向上の要因となり得るか調べる。このとき分析者は、業績と関係する可能性のある項目を抽出するため、様々なデータ加工を行う。しかし、分析するデータのサイズが大きくなるにつれ、このようなデータの加工を分析者が人手で行うことは困難になってきた。そこで、大規模なデータを分析する際、データ加工を支援するシステムの開発が求められている。例えば、分析者が人手で行ってきた分析対象データの加工、その中でも特にID(Identification)や名前、アンケート結果などの自然言語データやラベルデータから、所属や入社年度など上位概念情報の分離・抽出を自動化するシステムの開発が求められている。このような技術を実現するために、特にテキスト形式の自然言語文章を対象として、テキスト内から抽出される文字列に対応する分岐状態の評価値として、例えば分岐数(パープレキシティ)を算出し、算出値に基づいて、文字列が単語であるか否かを決定するものが提案されている(特許文献1参照)。
特開2008-165675号公報
特許文献1に開示された技術により、形態素解析用の辞書等の辞書に登録されていない単語の抽出が可能となる。しかし、特許文献1では、扱えるデータはテキスト文章データに限られており、適用するためには単語の分岐数に関する情報などを必要とする。
本発明の目的は、自然言語の文章のデータと文字列形式のデータを対象として、対象となるデータを構成する要素を概念の相異なる複数の要素に分離することにある。
前記課題を解決するために、本発明は、プログラムを記憶するメモリと、前記メモリに記憶されたプログラムを基にデータを処理するプロセッサと、を備え、前記プロセッサは、自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力し、前記入力した入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、当該集計結果を基に前記集計された各集計対象文字の出現頻度又は情報量を算出し、前記算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出し、前記算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離することを特徴とする。
本発明によれば、自然言語の文章のデータと文字列形式のデータを対象として、対象となるデータを構成する要素を概念の相異なる複数の要素に分離することができる。
本発明の第一の実施の形態のハードウェア構成を示す全体構成図である。 データ変換装置におけるデータ分離部に入力される入力データの具体例を示す入力テーブルの構成図である。 データ変換装置におけるデータ分離部の出力による出力データの具体例を示す出力テーブルの構成図である。 データ変換装置におけるデータ分離部の出力による出力データの具体例を示す他の出力テーブルの構成図である。 データ分離部の処理を説明するためのフローチャートである。 データ分離部におけるクラスタリングの処理を示すフローチャートである。 データ分離部における出現頻度を用いた頻出語抽出の処理を示すフローチャートである。 データ分離部における出現頻度の変化点抽出の処理を示すフローチャートである。 データ分離部における抽出語クラスタリングの処理を示すフローチャートである。 データ分離部における命名の処理を示すフローチャートである。 データ分離部に入力される入力テーブル中の一つのカラムに対して、正規表現抽出処理を実行する様子を示す説明図である。 データ分離部に入力される入力テーブル中の一つのカラムに対して、出現頻度を用いた頻出語抽出処理を実行する様子を示す説明図である。
実施の形態1
以下、本発明の一実施の形態を、図面を参照して説明する。
本実施の形態は、自然言語テキストだけでなく、テーブルに格納されたデータも対象とし、IDや名前のようなラベルデータに対して、文字間の独立性に注目し、対象とするデータから上位概念データを抽出するものである。
図1は、本発明の第一の実施の形態のハードウェア構成を示す全体構成図である。図1において、本実施の形態は、中央処理演算装置1、二次記憶装置2、主記憶装置3、入力装置4及び出力装置5を有し、中央処理演算装置1、二次記憶装置2、主記憶装置3、入力装置4及び出力装置5がバス6で接続された計算機であって、データ変換装置あるいはデータ変換システムとして構成される。
中央処理演算装置1は、二次記憶装置2や主記憶装置3などのメモリ(記憶デバイス)に格納されたプログラムを実行するプロセッサ(CPU:Central Processing Unit)である。
二次記憶装置2は、例えば、磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プログラム実行時に中央処理演算装置1によって計算されるデータ分離部7を格納する。
主記憶装置3は、例えばDRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶装置であり、オペレーティングシステム(OS)及びアプリケーションプログラムを格納する。中央処理演算装置1がオペレーティングシステムを実行することによって、計算機の基本機能が実現され、アプリケーションプログラムを実行することにより計算機が提供する機能が実現される。具体的には主記憶装置3は、入力データ8、出力データ9を格納する。入力データ8は、自然言語の文章のデータと構造化されたテーブルの各要素に格納される文字列形式のデータのうち少なくとも一方のデータで構成される。
入力装置4は、キーボード、マウスなどのユーザインターフェースである。出力装置5は、ディスプレイ装置、プリンタなどのユーザインターフェースである。
なお、本実施の形態は、本システム(データ変換システム)がネットワークに接続し、他の装置との通信を制御する通信インターフェースを有してもよい。この場合、本システムが通信インターフェースを介して端末と接続されており、該端末が入力装置4及び出力装置5を有し、端末からの要求に従ってテーブルを処理し、処理結果を端末に出力する。
また、本システムは物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。次に、データ分離部7に入力される入力データ8について詳細を説明する。
図2は、データ変換装置におけるデータ分離部に入力される入力データの具体例を示す入力テーブルの構成図である。図2において、入力テーブル101は、ある企業の倉庫に保管される在庫商品と、各商品の管理状況に関するデータを管理するテーブルである。この入力テーブル101は、例えば、複数のカラム(データ項目)によって構造化されたテーブルであって、各カラムには、文字列形式のデータが格納される。
具体的には、入力テーブル101は、カラム(データ項目)として、商品ID102、商品詳細名103、個数104、社員ID105、処理時刻106を備えている。商品ID102には、保管される商品の場所を一意に定めるデータ、例えば、「04A51010502」が格納され、商品詳細名103には、商品に関する詳細属性情報から成るデータ、例えば、「ほうき10本45cm」が格納され、個数104には、保管される商品の個数を表すデータ、例えば、「3」が格納され、社員ID105には、商品を保管した社員を特定するデータ、例えば、「850013004」が格納され、処理時刻106には、作業が実行された日時を表すデータ、例えば、「2016/01/07 09:12」が格納される。企業や組織では一般的に、入力テーブル101のような形でシステムの運用状況や在庫状況が管理されている。本実施の形態では、自然言語の文章のデータ、あるいは入力テーブル101のようなリレーショナルデータベース形式のあらゆるテーブルに属するデータを入力対象としている。入力テーブル101の各カラムのデータは、データ分離部7で1又は2以上のデータに分離され、出力データ9に変換される。
図3は、データ変換装置におけるデータ分離部の出力による出力データの具体例を示す出力テーブルの構成図である。図3において、出力テーブル201は、入力テーブル101の各カラムのデータを、データ分離部7が1又は2以上のデータに分離して得られた出力データ9で構成されるテーブルである。出力テーブル201は、例えば、複数のカラム(データ項目)によって構造化されたテーブルであって、各カラムには、文字列形式のデータが格納される。
具体的には、出力テーブル201は、入力テーブル101の各カラムが抽象化された上位概念カラムを含むカラムを持つテーブルであって、商品ID’202、商品ID’’203、商品ID’’’204、商品詳細名’205、商品詳細名’’206、商品詳細名’’’207、個数208、社員ID’209、社員ID’’210、社員ID’’’211、処理時刻’212、処理時刻’’213、処理時刻’’’214から構成される。
商品ID’202、商品ID’’203、商品ID’’’204は、入力テーブル101におけるカラムの商品ID102から抽出された上位概念カラムであり、商品ID’202、商品ID’’203、商品ID’’’204には、それぞれデータとして、例えば、「04」、「A51」、「010502」が格納される。商品詳細名’205、商品詳細名’’206、商品詳細名’’’207は、入力テーブル101におけるカラムの商品詳細名105から抽出された上位概念カラムであり、商品詳細名’205、商品詳細名’’206、商品詳細名’’’207には、それぞれデータとして、例えば、「ほうき」、「10本」、「45cm」が格納される。同様に、社員ID’209、社員ID’’210、社員ID’’’211は、入力テーブル101におけるカラムの社員ID105から抽出された上位概念カラムであり、社員ID’209、社員ID’’210、社員ID’’’211には、それぞれデータとして、例えば、「850」、「013」、「004」が格納される。処理時刻’212、処理時刻’’213、処理時刻’’’214は、入力テーブル101におけるカラムの処理時刻106から抽出された上位概念カラムであり、処理時刻’212、処理時刻’’213、処理時刻’’’214には、それぞれデータとして、例えば、「2016/01/07」、「09」、「12」が格納される。
なお、個数208は、上位概念が存在しないカラムであり、個数208には、入力テーブル101におけるカラムの個数104のデータがそのまま格納される。また、データ分離部7によって分離されたデータであって、抽象化された出力データ9のカラムを用いることで、分析者は大規模なデータに対して様々な分析を行うことができる。
図4は、データ変換装置におけるデータ分離部の出力による出力データの具体例を示す他の出力テーブルの構成図である。図4において、出力テーブル301は、出力テーブル201の各カラムに対して、ユーザからの入力により名前を付加した際のテーブルであり、階302、エリア名303、棚番号304、製品分類305、製品ごとの数306、サイズ307、個数308、所属部署ID309、入社年度310、五十音番号311、処理日312、処理時313、処理分314から構成される。
入力テーブル101における商品ID102に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、商品が格納される建物の階を表す階302、エリア名を表すエリア名303、棚の列番号を示す棚番号304が付加される。同様に、入力テーブル101における商品詳細名103に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、製品の分類を示す製品分類305、製品ごとの数を示す製品ごとの数306、製品のサイズを示すサイズ307が付加される。また、入力テーブル101における社員ID105に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、社員の所属部署を表す所属部署ID309、社員の入社年度を表す入社年度310、同期入社の社員の中での五十音順を示す五十音番号311が付加される。また、IDのようなラベル的に振る舞うカラム以外にも、日時や時刻を表現するカラムに対しても適用される。入力テーブル101における処理時刻106に属するデータが3種類に分離された場合、分離された各データのカラム名として、出力テーブル301には、処理した日時を表す処理日312、処理した時刻を一時間単位で表す処理時313、処理した時間を分単位で表す処理分314が付加される。
なお、個数308のように、上位概念となるカラムが存在しない場合は、入力テーブル101におけるカラム名がそのまま用いられる。また、出力テーブル301の各カラムには、出力テーブル201と同一のデータが格納される。
図5は、データ分離部の処理を説明するためのフローチャートである。この処理では、入力対象となる入力テーブルの各カラムについて、各カラムの要素を相異なる概念の要素に分離することで、入力テーブルのカラムを、上位概念となるカラムに自動変換して出力することが実行される。
データ分離部7は、データ変換プログラムとして機能し、中央処理演算装置1の起動により、入力データ8に属する入力テーブル101から、入力テーブル101に属するデータを取り込み(S11)、入力テーブル101に属するデータをカラムごとに順次選択し(S12)、選択した各カラムのデータを、例えば、文字パターン、言葉の類似度を基に複数のグループに分割するクラスタリングの処理を実行する(S13)。このクラスタリングの処理により、文字列を構成する文字の種類が、あらかじめ設定される閾値とは異なる場合には、カラムは、複数のカラムに分割される。
次に、データ分離部7は、分割された各カラムに属するデータに対して正規表現抽出の処理を実行し、分割された各カラムに属するデータの中から、対象文字列群を表現する正規表現を抽出し(S14)、抽出した正規表現に対して、閾値以上の文字数が浮動文字であるか否かを判定する(S15)。ステップS15でNoと判定された場合、即ち、抽出された正規表現について、定めた閾値あるいは割合よりも浮動文字が少ない場合(浮動文字の文字数が閾値以上であって、文字列が正規表現で分離できた場合)、データ分離部7は、抽出された正規表現に対して、浮動文字列分離の処理を実行し、浮動文字部分のみを分離して抽出する(S16)。一方、ステップS15でYesと判定された場合、即ち、浮動文字の文字数が閾値未満であって、正規表現によって文字列を分離することができない場合、出現頻度を用いた頻出語抽出の処理を実行して、頻出語の塊を探索し、この探索で抽出された頻出語の単位で要素を分離する(S17)。次に、データ分離部7は、抽出された頻出語をクラスタリングし、クラスタリングされた頻出語同士は、同一カラムに属するとしてカラムを生成する(S18)。
次に、データ分離部7は、ステップS16又はステップS18の処理結果として、要素を分離した結果をユーザへ提示し、例えば、出力装置5に処理結果を表示し、ユーザからのフィードバックがあるか否かを判定し(S19)、ユーザからのフィードバックがある場合、例えば、分離箇所の修正がある場合、ステップS17の処理に戻り、出現頻度を用いた頻出語抽出の処理で、修正箇所を頻出語辞書に反映させる。一方、ユーザからのフィードバックがない場合、データ分離部7は、ステップS16又はステップS18の処理結果に対して、即ち、対象カラムから分離して新しく生成された複数のカラムに対して、カラム名を設定する命名の処理を実行する(S20)。この後、データ分離部7は、入力テーブル101中の全てのカラムに対して処理をしたか否かを判定し(S21)、全てのカラムに対する処理が完了していない場合、ステップS12の処理に戻り、ステップS12〜S21の処理を繰り返し、全てのカラムに対する処理が完了した場合、各カラムを分離・抽象化した上位概念となるカラムを含んだ出力テーブルとして、例えば、出力テーブル301を生成して出力し(S22)、このルーチンでの処理を終了する。
この際、データ分離部7は、分離された複数のカラム(頻出語)を文字列同士の類似関係を基に複数のグループに分け、各グループに類似する頻出語を割り当てて管理し、各グループに、入力データを構成する要素の名称よりも上位概念となる名称を付加することになる。なお、ステップS20の処理(命名の処理)を省略した場合、出力テーブルとして、出力テーブル201が生成される。
図6は、データ分離部におけるクラスタリングの処理を示すフローチャートである。この処理は、図5のステップS13の具体的内容である。
図6において、データ分離部7は、入力テーブル101に属するカラムを順次選択し(S31)、選択した各カラムのデータを、例えば、文字パターン、言葉の類似度を基に複数のグループに分類するためのクラスタリングの処理を実行し(S32)、この処理結果を基に、各カラムを複数のグループに分割して、グループ毎に新しいカラムを生成し(S33)、生成されたカラムを、分割された各カラムとして出力し(S34)、このルーチンでの処理を終了する。
図7は、データ分離部における出現頻度を用いた頻出語抽出の処理を示すフローチャートである。この処理は、図5のステップS17の具体的内容である。
図7において、データ分離部7は、図6のステップS34の処理結果として、分割された各カラムに属するデータを入力し(S41)、入力した各カラムのデータに対して、あらゆる文字列の出現頻度を計算し(S42)、計算された文字列の出現頻度に基づき、出現頻度の変化点を抽出する処理を実行する(S43)。次に、データ分離部7は、抽出された出現頻度の変化点(情報量)を元に、頻出語を抽出する(S44)。この際、データ分離部7は、平均分離数保持部(図示せず)に保持された平均分離数を基本の分離数、例えば、「3」を参照し(S45)、参照した平均分離数を利用して、頻出語を抽出することができる。平均分離数を利用することで、頻出語の抽出精度を高めることができる。なお、各カラムに属するデータ(要素)の抽出が終了した場合には、平均分離数の値は更新される。
次に、データ分離部7は、抽出した頻出語のデータを辞書、例えば頻出語辞書(図示せず)に登録し(S46)、登録した頻出語が、辞書に登録済みの文字と競合するか否かを判定する(S47)。データ分離部7は、ステップS47で否定の判定結果を得た場合、ステップS49の処理に移行し、ステップS47で肯定の判定結果を得た場合、即ち、辞書に登録済みの文字と競合する文字列が分離された場合、変化点の変曲度合い計算し、予め定義されている文字列の出現頻度の変化の度合いが大きい方を採用して辞書を更新するロールバック処理を実行する(S48)。この後、データ分離部7は、全要素の全文字列を走査したか否かを判定し(S49)、全要素の全文字列を走査していない場合、ステップS42の処理に戻り、ステップS42〜S49の処理を繰り返し、全要素の全文字列を走査した場合、新しく、要素が分離されたカラムが追加されたテーブルとして、分離した要素情報が追加されたテーブルを生成し(S50)、このルーチンでの処理を終了する。なお、辞書(頻出語辞書)や平均分離数保持部は、例えば、二次記憶装置2に格納される。
図8は、データ分離部における出現頻度の変化点抽出の処理を示すフローチャートである。この処理は、図7のステップS43の具体的内容である。
図8において、データ分離部7は、図6のステップS34の処理結果として、分割された各カラムに属するデータを入力し(S61)、入力した各カラムのデータに対して、あらゆる文字列の出現頻度の変化点を計算して記録する(S62)。このとき計算される変化点とは、出現頻度の推移の微分値であったり、2回微分値であったり、差など変化を捉える量である。次に、データ分離部7は、計算された出現頻度の変化量を元に、例えば、出現頻度の変化が変局している地点を分離点として分離するか否かを判定する(S63)。言い換えると、出現頻度の変化量が正から負、もしくは負から正に変化している地点で分離する。この後、データ分離部7は、分離結果として、分離文字列(分離された文字列)を出力し(S64)、また、分離結果から、いくつの文字列に分離されたかを判定し、判定結果を基に、平均分離数の値を更新し(S65)、このルーチンでの処理を終了する。
図9は、データ分離部における抽出語クラスタリングの処理を示すフローチャートである。この処理は、図5のステップS18の具体的内容である。
図9において、データ分離部7は、図7のステップS50の処理結果として、分離した要素情報が追加されたテーブルを参照し(S71)、参照したテーブルの各対象カラムの各要素(データ)の中から、各要素に格納される、分離された要素数の中で最大数を抽出する(S72)。次に、データ分離部7は、抽出した最大分離要素数に基づき、対象カラムの要素の中に、最大数に満たないものが存在する場合、即ち、最大数よりも少ない要素で構成されるカラムが存在する場合、各カラムの要素の数を揃えるために、空のカラムを生成する(S73)。
次に、データ分離部7は、対象カラムの各要素に対して、定義された類似度によるクラスタリングを行い、各空のカラムに属する文字列のうちで最も類似度の高いカラムへ各要素を格納する(S74)。例えば、「ほうき、ほうき、4本」を含むカラムと、「10本、23本、25cm」を含むカラムと、「45cm、60cm、ほうき」を含むカラムが存在する場合、「ほうき、ほうき、ほうき」を含むカラムと、「10本、23本、4本」を含むカラムと、「45cm、60cm、25cm」を含むカラムに変更する。
次に、データ分離部7は、参照したテーブルの全てのカラム、全ての要素に対して分類したか否かを判定し(S75)、ステップS75で否定の判定結果を得た場合、ステップS74に戻り、ステップS74〜S75の処理を繰り返し、ステップS75で肯定の判定結果を得た場合、分離されたカラムの集合が追加されたテーブルを生成して出力し(S76)、このルーチンでの処理を終了する。
図10は、データ分離部における命名の処理を示すフローチャートである。この処理は、図5のステップS20の具体的内容である。
図10において、データ分離部7は、図9のステップS76の処理結果として、分離されたカラムの集合が追加されたテーブルのデータを入力し(S81)、且つユーザから入力されたカラム名のデータを入力し(S82)、入力したテーブルのデータを参照して、テーブルの各カラムを選択し(S83)、選択した各カラムに名前を付加する(S84)。この際、分離された各カラムがそれぞれ選択され、ユーザから入力されたカラム名の情報を用いて、各カラムに名前が付加される。例えば、「商品ID’」に対して、「階」が付加され、「商品ID’’」に対して、「エリア名」が付加され、「商品ID’’’」に対して、「棚番号」が付加される。ユーザから入力されたカラム名の付加は任意であり、カラム名が入力されなかった場合は、分離元カラムの名前に識別記号を付加した名前を付ける。例えば、「担当社員ID」カラムから2つのカラムが生成された場合、「担当社員ID’」、「担当社員ID’’」といった名前が自動的に付加される。
次に、データ分離部7は、全てのカラムについて処理したか否かを判定し(S85)、ステップS85で否定の判定結果を得た場合、ステップS83の処理に戻り、ステップS83〜S85の処理を繰り返し、ステップS85で肯定の判定結果を得た場合、分離したカラムを出力し(S86)、このルーチンでの処理を終了する。これにより、出力テーブル201から出力テーブル301を生成することができる。
図11は、データ分離部に入力される入力テーブル中の一つのカラムに対して、正規表現抽出処理を実行する様子を示す説明図である。
図11において、データ分離部7は、図5のステップS14で正規表現抽出処理を実行するに際して、入力テーブルのデータとして、例えば、入力テーブル1001のデータを入力する。入力テーブル1001は、商品ID1002と商品詳細1003をカラムに持つ入力テーブルであり、商品ID1002には、データとして、例えば、「1000」、・・・、「1100」が格納され、商品詳細1003には、データとして、例えば、「ほうき(中)10本45cm」、・・・、「くぎ(大)3本15cm」が格納される。この際、データ分離部7は、入力テーブル1001のデータを参照し、各カラムに属するデータに対して、例えば、各レコード(行)で共通の要素とそれ以外の要素に分類し、正規表現1004を生成して出力する。
正規表現1004における「*」はワイルドカードを示す記号であり、いくつかの記号が連なっていることを表現している。正規表現1004により、始めに幾つかの記号が入り、「(」を挟み、幾つか記号が入って「)」を挟み、幾つか記号が入って「本」、幾つか記号が入って「cm」という形式で対象カラム中の要素が、各レコードで共通の要素(「本」、「cm」)とそれ以外の要素(「*」)で表現できることが分かる。この情報を用いて商品詳細1003中の要素を分離すると、入力テーブル1001は、商品ID1006、商品名1007、規格1008、個数(本)1009、長さ(cm)1010というカラムを有する出力テーブル1005に変換される。正規表現1004のワイルドカード部分(「*」)が浮動文字列で、「(」や「本」などが固定文字列であり、浮動文字列が、それぞれ新しいカラムとして分離される。入力テーブル1001の商品詳細1003は、商品ID1006、商品名1007、規格1008、個数(本)1009、長さ(cm)1010というカラムに分離される。カラムの名前はユーザによって与える必要がある。
図12は、データ分離部に入力される入力テーブル中の一つのカラムに対して、出現頻度を用いた頻出語抽出処理を実行する様子を示す説明図である。
図12において、データ分離部7は、図5のステップS17で出現頻度を用いた頻出語抽出の処理を実行するに際して、テーブルのデータとして、例えば、テーブル1101のデータを入力する。テーブル1101は、商品ID1102と商品詳細1103をカラムに持つテーブルであり、商品ID1102には、データとして、例えば、「1000」〜「1100」が格納され、商品詳細1103には、データとして、例えば、「ほうき10本45cm」〜「パイプ3本15cm」が格納される。この後、データ分離部7は、テーブル1101の商品詳細1103に属するデータであって、各レコード(行)に属する要素(データ)に対して、頻出単語を抽出し、抽出した頻出単語を辞書へ登録して分離の基準とし、カラム中の要素を分離して出力する。この際、データ分離部7は、入力した入力データを構成する要素のうち集計対象となる第一の文字と第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、集計結果の各集計対象文字をテーブル1104に記録する。例えば、商品詳細1103に属する要素のうち、例えば、「ほうき10本45cm」を、「ほ」、「ほう」、「ほうき」、「ほうき1」、「ほうき10」、・・・、「ほうき10本45cm」に分けて集計し、これらの文字を集計対象文字として、テーブル1104の集計対象文字1105の各レコード(行)に記録する。
次に、データ分離部7は、テーブル1104の集計対象文字1105の各レコード(行)に記録された要素(集計対象文字)に対して、集計結果を基に集計対象文字ごとに、全体(同一カラムであって、商品詳細1103に属するカラム)に対する頻度、例えば、出現頻度又は生起頻度を順次計算し、各計算結果を、テーブル1104の頻度1106の各レコードに記録する。例えば、「ほ」から順に、同一カラム内での生起頻度を計算する。同様に2文字目まで含めた「ほう」や、3文字目まで含めた「ほうき」についても、同一カラム内での生起頻度を計算する。計算結果が、それぞれ「5/100」、「4/100」、「3/100」である場合、これらの計算結果が、テーブル1104の頻度1106の各レコードに記録される。
次に、データ分離部7は、計算された生起頻度について、横軸に対象文字の文字数x、縦軸に頻度H(x)をとったグラフを生成し、生成してグラフ上に、集計対象文字の文字数に対応した頻度(生起頻度)の計算結果をプロットして、グラフ上に曲線yを生成する。曲線yにおける頻度は、集計対象文字1105の文字数xが増加するに従って、徐々に減少するが、ある地点で大きく減少する様子が観測できる。ある地点を変化点(変曲点)y1として、頻度の変化量の変化を捉えることで、文字列の独立性を評価することができ、変化点y1を基準に文字列を分離できる。
例えば、「ほうき10本45cm」の場合、「ほうき」までで生起頻度が3/100であり、「ほうき1」では、生起頻度が1/100となっているため、集計対象文字1105のうち第一の文字「ほ」から変化点y1までの文字列である「ほうき」を、文字列の塊とみなし、「ほうき10本45cm」から、「ほうき」を、一つの文字列として分離することができる。同様に、「ほうき10本45cm」のうち、「1」を集計対象文字の第一の文字として、第一の文字と第一の文字に連なる1又は2以上の文字の組合せに属する複数の集計対象文字に対して、集計結果を基に集計対象文字ごとに、全体に対する出現頻度(生起頻度)を順次計算し、各計算結果を、テーブル1104の頻度1106の各レコードに記録し、計算された出現頻度(生起頻度)について、変化点(変曲点)y1を求めることで、「ほうき10本45cm」から、「10本」を、一つの文字列として分離することができる。
出現頻度の代わりに、データの持つ情報の大きさを表現する情報量を用いることもできる。この情報量H(X)は、対象カラムについて、各集計対象文字1105の持つ情報量として、次の数1に従って計算することができる。この計算結果は、テーブル1104の情報量1107の各レコードに記録される。
Figure 2018100700
ここで、p(x)は、頻度を示す。
出現頻度の代わりに、情報量を用いた場合にも、テーブル1104に示すように、「ほ」から「ほうき」まで、情報量1107が「0.33」〜「0.15」であり、「ほうき1」では、情報量1107が「0.07」となっているため、集計対象文字1105のうち第一の文字「ほ」から変化点y1までの文字列である「ほうき」を、文字列の塊とみなし、「ほうき10本45cm」から、「ほうき」を、一つの文字列として分離することができる。
本実施の形態によれば、自然言語の文章のデータと文字列形式のデータを対象として、対象となるデータを構成する要素を概念の相異なる複数の要素に分離することができる。また、入力した分析対象テーブル(入力テーブル101)の各カラムから、上位概念関係にあるカラムを自動抽出することができ、結果として、抽出されたカラムを分析に使用することで、分析速度の向上及び汎用性の向上を図ることができる。
なお、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
1 中央処理演算装置、2 二次記憶装置、3 主記憶装置、4 入力装置、5 出力装置、6 バス、7 データ分離部、8 入力データ、9 出力データ

Claims (15)

  1. プログラムを記憶するメモリと、
    前記メモリに記憶されたプログラムを基にデータを処理するプロセッサと、を備え、
    前記プロセッサは、
    自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力し、前記入力された入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計し、当該集計結果を基に前記集計された各集計対象文字の出現頻度又は情報量を算出し、前記算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出し、前記算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離することを特徴とするデータ変換装置。
  2. 請求項1に記載のデータ変換装置において、
    前記プロセッサは、
    前記算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を複数の頻出語に分離することを特徴とするデータ変換装置。
  3. 請求項1に記載のデータ変換装置において、
    前記プロセッサは、
    前記入力データから前記複数の集計対象文字を集計する前に、前記入力データを構成する要素である文字列に対して、正規表現による抽出処理を実行し、前記文字列から固定文字列と浮動文字列を抽出し、前記抽出した浮動文字列に属する浮動文字の文字数が閾値未満か閾値以上かを判定し、前記浮動文字の文字数が前記閾値未満であることを条件に、前記入力データから前記複数の集計対象文字を集計することを特徴とするデータ変換装置。
  4. 請求項3に記載のデータ変換装置において、
    前記プロセッサは、
    前記浮動文字の文字数が前記閾値以上であることを条件に、前記入力データから前記複数の集計対象文字を集計することなく、前記文字列を前記浮動文字に従って複数の頻出語に分離することを特徴とするデータ変換装置。
  5. 請求項2に記載のデータ変換装置において、
    前記プロセッサは、
    前記分離された複数の頻出語を文字列同士の類似関係を基に複数のグループに分け、前記各グループに類似する頻出語を割り当てて管理し、前記各グループに前記入力データを構成する要素の名称よりも上位概念となる名称を付加することを特徴とするデータ変換装置。
  6. 請求項2に記載のデータ変換装置において、
    前記プロセッサは、
    前記複数の集計対象文字を分離する際に、平均分離数を基に前記複数の集計対象文字から複数の頻出語を抽出し、前記抽出された頻出語を辞書に登録することを特徴とするデータ変換装置。
  7. 請求項6に記載のデータ変換装置において、
    前記プロセッサは、
    前記抽出された頻出語を前記辞書に登録する際に、前記登録の対象となる頻出語と前記辞書に登録済みの文字とが競合するか否かを判定し、前記登録の対象となる頻出語が前記辞書に登録済みの文字と競合する場合、前記登録の対象となる頻出語を修正するためのロールバック処理を実行することを特徴とするデータ変換装置。
  8. メモリに記憶されたプログラムを基にデータを処理するプロセッサが、自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力する第一のステップと、
    前記プロセッサが、前記第一のステップで入力された入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計する第二のステップと、
    前記プロセッサが、前記第二のステップでの集計結果を基に前記第二のステップで集計された各集計対象文字の出現頻度又は情報量を算出する第三のステップと、
    前記プロセッサが、前記第三のステップで算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出する第四のステップと、
    前記プロセッサが、前記第四のステップで算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離する第五のステップと、を有することを特徴とするデータ変換方法。
  9. 請求項8に記載のデータ変換方法において、
    前記プロセッサは、
    前記第五のステップでは、前記第四のステップで算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を複数の頻出語に分離することを特徴とするデータ変換方法。
  10. 請求項8に記載のデータ変換方法において、
    前記プロセッサは、
    前記第二のステップの前処理として、前記入力データを構成する要素である文字列に対して、正規表現による抽出処理を行って、前記文字列から固定文字列と浮動文字列を抽出し、前記抽出された浮動文字列に属する浮動文字の文字数が閾値未満か閾値以上かを判定し、前記浮動文字の文字数が前記閾値未満であることを条件に、前記第二のステップを実行することを特徴とするデータ変換方法。
  11. 請求項10に記載のデータ変換方法において、
    前記プロセッサは、
    前記第二のステップの前処理で、前記浮動文字の文字数が前記閾値以上であると判定した場合、前記第二のステップ以降の処理を実行することなく、前記文字列を前記浮動文字に従って複数の頻出語に分離することを特徴とするデータ変換方法。
  12. 請求項9に記載のデータ変換方法において、
    前記プロセッサは、
    前記第五のステップでは、前記分離された複数の頻出語を文字列同士の類似関係を基に複数のグループに分け、前記各グループに類似する頻出語を割り当てて管理し、前記各グループに前記入力データを構成する要素の名称よりも上位概念となる名称を付加することを特徴とするデータ変換方法。
  13. 請求項9に記載のデータ変換方法において、
    前記プロセッサは、
    前記第五のステップでは、前記複数の集計対象文字を分離する際に、平均分離数を基に前記複数の集計対象文字から複数の頻出語を抽出し、前記抽出された頻出語を辞書に登録することを特徴とするデータ変換方法。
  14. 請求項13に記載のデータ変換方法において、
    前記プロセッサは、
    前記第五のステップでは、前記抽出された頻出語を前記辞書に登録する際に、前記登録の対象となる頻出語と前記辞書に登録済みの文字とが競合するか否かを判定し、前記登録の対象となる頻出語が前記辞書に登録済みの文字と競合する場合、前記登録の対象となる頻出語を修正するためのロールバック処理を実行することを特徴とするデータ変換方法。
  15. プログラムを記憶するメモリと、
    前記メモリに記憶されたプログラムを基にデータを処理するプロセッサと、を備えた計算機に対して、
    自然言語の文章のデータと構造化されたテーブルに格納される文字列形式のデータのうち少なくとも一方のデータを処理対象となる入力データとして入力する第一のステップと、
    前記第一のステップで入力された入力データを構成する要素のうち集計対象となる第一の文字と当該第一の文字に連なる1又は2以上の文字の組合せを複数の集計対象文字として集計する第二のステップと、
    前記第二のステップで集計された各集計対象文字の出現頻度又は情報量を算出する第三のステップと、
    前記第三のステップで算出された出現頻度又は情報量を基に前記各集計対象文字の出現頻度の変化点又は情報量の変化点を算出する第四のステップと、
    前記第四のステップで算出された出現頻度の変化点又は情報量の変化点を基に前記複数の集計対象文字を分離する第五のステップと、を実行させることを特徴とするデータ変換プログラム。
JP2018553591A 2016-11-30 2016-11-30 データ変換装置とデータ変換方法 Active JP6763967B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/085641 WO2018100700A1 (ja) 2016-11-30 2016-11-30 データ変換装置とデータ変換方法

Publications (2)

Publication Number Publication Date
JPWO2018100700A1 true JPWO2018100700A1 (ja) 2019-06-24
JP6763967B2 JP6763967B2 (ja) 2020-09-30

Family

ID=62242790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018553591A Active JP6763967B2 (ja) 2016-11-30 2016-11-30 データ変換装置とデータ変換方法

Country Status (2)

Country Link
JP (1) JP6763967B2 (ja)
WO (1) WO2018100700A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7270369B2 (ja) * 2018-12-10 2023-05-10 諒 田中 置換方法、コンピュータプログラム、及び情報処理システム
CN113792261A (zh) * 2021-09-26 2021-12-14 东南大学 一种高速公路桥梁机电系统状态信息化矩阵的构建方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259370A (ja) * 2001-02-27 2002-09-13 Ricoh Co Ltd 複合語分割装置、日本語辞書作成装置、それらの方法、プログラム、及び、記録媒体
JP2016173743A (ja) * 2015-03-17 2016-09-29 株式会社Jsol 顔文字抽出装置、方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259370A (ja) * 2001-02-27 2002-09-13 Ricoh Co Ltd 複合語分割装置、日本語辞書作成装置、それらの方法、プログラム、及び、記録媒体
JP2016173743A (ja) * 2015-03-17 2016-09-29 株式会社Jsol 顔文字抽出装置、方法及びプログラム

Also Published As

Publication number Publication date
JP6763967B2 (ja) 2020-09-30
WO2018100700A1 (ja) 2018-06-07

Similar Documents

Publication Publication Date Title
JP6894534B2 (ja) 情報処理方法及び端末、コンピュータ記憶媒体
US10885452B1 (en) Relation graph optimization using inconsistent cycle detection
US7444325B2 (en) Method and system for information extraction
US20160034512A1 (en) Context-based metadata generation and automatic annotation of electronic media in a computer network
CN111125343A (zh) 适用于人岗匹配推荐系统的文本解析方法及装置
US20180181646A1 (en) System and method for determining identity relationships among enterprise data entities
CN111026671A (zh) 测试用例集构建方法和基于测试用例集的测试方法
JP2019502979A (ja) 構造化されたマルチフィールドファイルのレイアウトの自動解釈
Bisandu et al. Data clustering using efficient similarity measures
EP3685243A1 (en) Content pattern based automatic document classification
CN113760891B (zh) 一种数据表的生成方法、装置、设备和存储介质
CN110162754B (zh) 一种岗位描述文档的生成方法及设备
JP6242540B1 (ja) データ変換システム及びデータ変換方法
CN114416998A (zh) 文本标签的识别方法、装置、电子设备及存储介质
US11010393B2 (en) Library search apparatus, library search system, and library search method
KR102185733B1 (ko) 프로필 자동생성서버 및 방법
JP6763967B2 (ja) データ変換装置とデータ変換方法
CN113157978B (zh) 数据的标签建立方法和装置
Benny et al. Hadoop framework for entity resolution within high velocity streams
CN112328653B (zh) 数据识别方法、装置、电子设备及存储介质
JP5577546B2 (ja) 計算機システム
CN107368610B (zh) 基于全文的大文本crf和规则分类方法和系统
CN111581162B (zh) 一种基于本体的海量文献数据的聚类方法
CN116049213A (zh) 表格文档的关键词检索方法及电子设备
CN112214494B (zh) 检索方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200910

R150 Certificate of patent or registration of utility model

Ref document number: 6763967

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150