(57)【要約】【課題】パターンを定義することなくテキスト情報を分析する。【解決手段】テキスト分析システムであって、プログラムを実行するプロセッサと、前記プロセッサがアクセスする記憶装置とを備え、前記テキスト分析システムが分析するテキスト情報は、複数の列の各々に定められた項目名と、前記項目名に対応した文字又は数値のデータを含む複数の行データとを含み、前記テキスト分析システムは、各行について、他の列のデータを用いて、指定列のデータを抽象化する抽象化部と、前記抽象化されたデータからキーワードを抽出する言語処理部と、前記指定列のキーワードの類似度によって、データが類似する行を集約する集約部と、統計処理の対象行のデータの代表値を計算する集計部とを備え、前記抽象化部は、前記指定列のデータを当該行の他の列のデータに置換した具体化処理結果を生成する。【選択図】図３
2018018254.tif 000002
【特許請求の範囲】
【請求項１】
テキスト分析システムであって、
プログラムを実行するプロセッサと、前記プロセッサがアクセスする記憶装置とを備え、
前記テキスト分析システムが分析するテキスト情報は、複数の列の各々に定められた項目名と、前記項目名に対応した文字又は数値のデータを含む複数の行データとを含み、
前記テキスト分析システムは、
各行について、他の列のデータを用いて、指定列のデータを抽象化する抽象化部と、
前記抽象化されたデータからキーワードを抽出する言語処理部と、
前記指定列のキーワードの類似度によって、データが類似する行を集約する集約部と、
統計処理の対象行のデータの代表値を計算する集計部とを備え、
前記抽象化部は、前記指定列のデータを当該行の他の列のデータに置換した具体化処理結果を生成することを特徴とするテキスト分析システム。
【請求項２】
請求項１に記載のテキスト分析システムであって、
利用者が入力した指標について、前記代表値の昇順又は降順に所定数のデータを前記具体化処理結果から抽出し、利用者に提示する抽出部を備えることを特徴とするテキスト分析システム。
【請求項３】
請求項１に記載のテキスト分析システムであって、
前記抽象化部は、
各指定列のデータを、当該行の他の列のデータと比較し、
前記各指定列のデータ内の単語を同一行で同じ単語がある列の項目名に置換することによって、指定列のデータを抽象化することを特徴とするテキスト分析システム。
【請求項４】
請求項３に記載のテキスト分析システムであって、
前記抽象化部は、前記指定列のデータに含まれる項目名を、当該行の当該項目名のデータに置換して具体化することを特徴とするテキスト分析システム。
【請求項５】
請求項１に記載のテキスト分析システムであって、
前記集約部は、
各指定列のデータを当該指定列の他の行のデータと比較し、
データの類似度が所定の閾値より大きい場合、データが類似する行を集約することを特徴とするテキスト分析システム。
【請求項６】
計算機が実行するテキスト分析方法であって、
前記計算機は、プログラムを実行するプロセッサと、前記プロセッサがアクセスする記憶装置とを有し、
前記計算機が分析するテキスト情報は、複数の項目名と、前記項目名に対応した文字又は数値のデータを含む複数の行データとを含み、
前記テキスト分析方法は、
前記プロセッサは、各行について、他の列のデータを用いて、指定列のデータを抽象化する抽象化ステップと、
前記プロセッサは、前記抽象化されたデータからキーワードを抽出する言語処理ステップと、
前記プロセッサは、前記指定列のキーワードの類似度によって、データが類似する行を集約する集約ステップと、
前記プロセッサは、統計処理の対象行のデータの代表値を計算する集計素ステップとを有し、
前記プロセッサは、前記指定列のデータを当該行の他の列のデータに置換した具体化処理結果を生成する具体化ステップとを含むことを特徴とするテキスト分析方法。
【請求項７】
請求項６に記載のテキスト分析方法であって、
前記プロセッサは、利用者が入力した指標について、前記代表値の昇順又は降順に所定数のデータを前記具体化処理結果から抽出し、利用者に提示する抽出ステップを含むことを特徴とするテキスト分析方法。
【請求項８】
請求項６に記載のテキスト分析方法であって、
前記抽象化ステップでは、
前記プロセッサは、各指定列のデータを、当該行の他の列のデータと比較し、
前記プロセッサは、前記各指定列のデータ内の単語を同一行で同じ単語がある列の項目名に置換することによって、指定列のデータを抽象化することを特徴とするテキスト分析方法。
【請求項９】
請求項８に記載のテキスト分析方法であって、
前記抽象化ステップでは、前記プロセッサは、前記指定列のデータに含まれる項目名を、当該行の当該項目名のデータに置換して具体化することを特徴とするテキスト分析方法。
【請求項１０】
請求項６に記載のテキスト分析方法であって、
前記集約ステップでは、
前記プロセッサは、各指定列のデータを当該指定列の他の行のデータと比較し、
前記プロセッサは、データの類似度が所定の閾値より大きい場合、データが類似する行を集約することを特徴とするテキスト分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト分析システムに関する。
【背景技術】
【０００２】
社会では様々なテキスト情報が蓄積されており、これらを分析して活用することが求められている。例えば、テキスト情報として蓄積されている事象間の因果関係を解析する必要がある。
【０００３】
本技術分野の背景技術として、以下の先行技術がある。特許文献１（特開２００８−２０３９６４号公報）には、自然言語で記述された文書である自然言語文から抽出された互いに異なる複数の事象間の因果関係に対して、事象を構成する単語の一部が同一でかつ、共通の原因または結果事象を持つ事象群がクラスタ対象選択部にてクラスタリングの対象として選択され、クラスタリング対象の事象全てで共通の因果関係のみが統合されるデータ構造を持つ因果関係グラフが因果関係記憶部に格納され、因果関係グラフの構造の複雑さがクラスタリングスコアとして数値化され、クラスタリングスコアが最小となるようにクラスタ対象選択部によって選択された事象群が事象クラスタ評価部にてクラスタリングする因果関係分析装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０３９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された因果関係分析装置は、定義済みのパターン及び因果関係に基づいて事象間の因果関係を抽出する。しかし、人が書く文章は無限のパターンや因果関係があるため、全てのパターンや因果関係を予め定義することは困難であり、予め定義されていない場合、テキストの分析が困難であり、因果関係の抽出が困難となる。
【０００６】
本発明は、パターンを定義することなくテキスト情報を分析することを目的とする。
【課題を解決するための手段】
【０００７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、テキスト分析システムであって、プログラムを実行するプロセッサと、前記プロセッサがアクセスする記憶装置とを備え、前記テキスト分析システムが分析するテキスト情報は、複数の列の各々に定められた項目名と、前記項目名に対応した文字又は数値のデータを含む複数の行データとを含み、前記テキスト分析システムは、各行について、他の列のデータを用いて、指定列のデータを抽象化する抽象化部と、前記抽象化されたデータからキーワードを抽出する言語処理部と、前記指定列のキーワードの類似度によって、データが類似する行を集約する集約部と、統計処理の対象行のデータの代表値を計算する集計部とを備え、前記抽象化部は、前記指定列のデータを当該行の他の列のデータに置換した具体化処理結果を生成する。
【発明の効果】
【０００８】
本発明の一態様によれば、パターンを定義することなくテキスト情報を分析できる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例のテキスト分析システムの構成を示す図である。
【図２】本実施例のサーバの物理的な構成を示すブロック図である。
【図３】本実施例のテキスト分析処理のフローチャートである。
【図４】抽象化処理の詳細を示すフローチャートである。
【図５】データ集約処理の詳細を示すフローチャートである。
【図６】図６（Ａ）は故障情報Ａの一例を示す図であり、図６（Ｂ）は故障情報Ａ１の一例を示す図である。
【図７】図７（Ａ）は、故障情報Ａ２の一例を示す図である。
【図８】図８（Ａ）は集約処理中間結果Ａ３’の一例を示す図であり、図８（Ｂ）は集約処理結果Ａ３の一例を示す図である。
【図９】データ集約処理を示す図である。
【図１０】図１０（Ａ）は集計結果Ａ４の一例を示す図であり、図１０（Ｂ）具体化処理結果Ａ５の一例を示す図である。
【図１１】パターン抽出処理の詳細を示すフローチャートである。
【図１２】保守運用業務パターン表示画面の一例を示す図である。
【図１３】保守運用業務パターン表示画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
＜実施例１＞
図１は、本発明の実施例のテキスト分析システムの構成を示す図である。
【００１１】
本実施例のテキスト分析システムは、サーバ１０１によって構成される。サーバ１０１は、ネットワーク１０５を介して、１以上の計算機１０２と接続される。サーバ１０１の物理的な構成は図２を参照して後述する。
【００１２】
計算機１０２は、利用者１００が使用する計算機であり、プログラムを実行するプロセッサ（ＣＰＵ）と、プログラムやデータを格納する記憶装置と、通信インターフェースとを有する。また、計算機１０２は、ディスプレイ１０３などの出力装置及び入力装置１０４（キーボード、マウス、タッチパネルなど）が接続され、利用者１００に対するユーザインターフェースを提供する。
【００１３】
サーバ１０１は、データ抽象化部１１０、自然言語処理部１１１、データ集約部１１２、データ集計部１１３及びパターン抽出部１１４を有する。各部が実行する処理は図３において説明する。
【００１４】
サーバ１０１は、故障情報データベース１２０及び保守運用業務パターンデータベース１２１を有する。
【００１５】
故障情報データベース１２０は、本実施例のテキスト分析システムがテキスト情報を解析し、該テキスト情報に含まれる項目間の関係を抽出する元のデータ（故障情報）を格納するデータベースであり、その詳細は図６（Ａ）において説明する。保守運用業務パターンデータベース１２１は、本実施例のテキスト分析システムが解析した結果（具体化処理結果Ａ５）を格納するデータベースであり、その詳細は図１０（Ｂ）において説明する。
【００１６】
図２は、本実施例のテキスト分析システムを構成するサーバ１０１の物理的な構成を示すブロック図である。
【００１７】
本実施例のサーバ１０１は、プロセッサ（ＣＰＵ）１、メモリ２、補助記憶装置３及び通信インターフェース４を有する計算機によって構成される。
【００１８】
プロセッサ１は、メモリ２に格納されたプログラムを実行する。メモリ２は、不揮発性の記憶デバイスであるＲＯＭ及び揮発性の記憶デバイスであるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶デバイスであり、プロセッサ１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００１９】
補助記憶装置３は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶デバイスによって構成され、プロセッサ１が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置３から読み出されて、メモリ２にロードされて、プロセッサ１によって実行される。
【００２０】
通信インターフェース４は、所定のプロトコルに従って、他の装置（計算機１０２など）との通信を制御するネットワークインターフェース装置である。
【００２１】
サーバ１０１は、入力インターフェース５及び出力インターフェース８を有してもよい。入力インターフェース５は、キーボード６やマウス７などが接続され、管理者からの入力を受けるインターフェースである。出力インターフェース８は、ディスプレイ装置９やプリンタなどが接続され、サーバ１０１の状態やプログラムの実行結果を管理者が視認可能な形式で出力するインターフェースである。
【００２２】
プロセッサ１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介してサーバ１０１に提供され、非一時的記憶媒体である不揮発性の補助記憶装置３に格納される。このため、サーバ１０１は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００２３】
サーバ１０１は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、サーバ１０１上で実行されるプログラムは、同一の計算機上で別個のスレッドで動作してもよい。
【００２４】
また、サーバ１０１において、プログラムによって実装される機能ブロックの全部又は一部は、物理的な集積回路（例えば、Field-Programmable Gate Array）等によって構成されてもよい。
【００２５】
図３は、本実施例のテキスト分析処理のフローチャートである。
【００２６】
まず、データ抽象化部１１０は、故障情報データベース１２０から故障情報Ａ（図６（Ａ））を取得し、指定列Ｃ０〜ＣＮに抽象化処理を実行し、故障情報Ａ１（図６（Ｂ））を生成し、記憶装置に一時的に書き込む（Ｓ３０１）。抽象化処理は、指定列Ｃ０〜ＣＮのデータを、当該行の他の列のデータと比較して、データが一致した列の項目名を用いて抽象化する。抽象化処理の詳細は、図４を参照して後述する。なお、指定列は、本実施例のテキスト分析処理によって、自然文が分析される対象であり、解析すべき因果関係が含まれるデータである。
【００２７】
次に、自然言語処理部１１１は、故障情報Ａ１（図６（Ｂ））の指定列Ｃ０〜ＣＮに自然言語処理を実行して、キーワードを抽出し、故障情報Ａ２（図７（Ａ））を生成し、記憶装置に一時的に書き込む（Ｓ３０２）。自然言語処理は、公知の技術を用いることができ、故障情報Ａ１に含まれる自然文から単語を抽出する。例えば、形態素解析技術を用いて、自然文から単語を抽出し、所定の品詞（例えば、名詞、動詞）をキーワードとして抽出する。
【００２８】
その後、データ集約部１１２は、故障情報Ａ２（図７（Ａ））の指定された列Ｃ０〜ＣＮのデータに所定の順序であいまい集約処理を実行して、集約処理結果Ａ３（図８（Ｂ））を生成し、記憶装置に一時的に書き込む（Ｓ３０３）。あいまい集約処理は、指定列Ｃ０〜ＣＮのデータの類似度を比較して、データが類似する行を集約する。あいまい集約処理の詳細は、図５を参照して後述する。
【００２９】
次に、データ集計部１１３は、集約処理結果Ａ３（図８（Ｂ））の指定された対象列Ｖ０〜ＶＭに統計処理を実行して、集計結果Ａ４（図１０（Ａ））を生成し、記憶装置に一時的に書き込む（Ｓ３０４）。統計処理の対象列Ｖ０〜ＶＭには、主に、数値が記録されている。統計処理では、この対象列の数値を統計処理して、当該行を代表するデータ（代表値）を算出する。統計処理は、例えば、平均値、合計値、最低値、最高値、分散値、標準偏差値、最頻値、中央値などを算出したり、確率分布（ヒストグラム）を作成してもよい。本実施例では、集約処理結果Ａ３（図８（Ｂ））の作業工数、停止時間に含まれる値の平均を算出する。
【００３０】
その後、データ抽象化部１１０は、集計結果Ａ４（図１０（Ａ））の指定された列Ｃ０〜ＣＮに具体化処理を実行して、具体化処理結果Ａ５（図１０（Ｂ））を生成し、保守運用業務パターンデータベース１２１に書き込む（Ｓ３０５）。例えば、指定列Ｃ０〜ＣＮに含まれている項目名は抽象化処理によって抽象化された文字列なので、本来の値に戻す。具体的には、現象欄に「装置名」が含まれている場合、当該行の装置名のデータには集約処理によって集約された複数（又は一つ以上）の装置名が含まれている。このため、現象欄の「装置名」を装置名欄の「aaa0ZZZ00##ccc1XXX02」と置き換える。また、原因欄の「故障部品」を故障部品欄の「部品001##部品008」と置き換える。さらに、現象欄に「故障部品’」が含まれている場合、当該行の故障部品のデータには集約処理によって集約された複数（又は一つ以上）の装置名が含まれている。このため、どの行のデータと一致して項目名に抽象化されたかを記録するメタデータを参照して、現象欄の「故障部品’」を故障部品欄の「部品008」と置き換える。
【００３１】
最後に、パターン抽出部１１４は、具体化処理結果Ａ５から保守運用業務パターンを抽出し、ランク付けをして、利用者１００に推薦する（Ｓ３０６）。パターン抽出処理の詳細は、図１１を参照して後述する。
【００３２】
図４は、抽象化処理Ｓ３０１の詳細を示すフローチャートである。
【００３３】
まず、データ抽象化部１１０は、故障情報Ａの行の数をＲ、列の数Ｍとし、指定列Ｃ０、…、Ｃｎ、…、ＣＮ（０≦ｎ≦Ｎ）と定義する。なお、指定列の数はＮ＋１列である（Ｓ４０１）。また、行を制御するパラメータｒと、指定列を制御するパラメータｎとを０に初期設定する（Ｓ４０２）。
【００３４】
そして、データ抽象化部１１０は、パラメータｎがＮ以下であるかを判定する（Ｓ４０３）。パラメータｎがＮより大きければ（Ｓ４０３でＮＯ）、全ての指定列のデータを抽象化したので、処理を終了する。一方、パラメータｎがＮ以下であれば（Ｓ４０３でＹＥＳ）、パラメータｒが行の最大数Ｒより小さいかを判定する（Ｓ４０４）。
【００３５】
その結果、パラメータｒが行の最大数Ｒ以上であれば（Ｓ４０４でＮＯ）、現在処理中の指定列の抽象化処理は終了したので、パラメータｎに１を加算し（Ｓ４１２）、ステップＳ４０３に戻り、次の指定列のデータを抽象化する。一方、パラメータｒが行の最大数Ｒより小さければ（Ｓ４０４でＹＥＳ）、故障情報Ａのｒ行、Ｃｎ列のデータＤｒＣｎを取得する（Ｓ４０５）。さらに、行を制御するパラメータｓを０と、列を制御するパラメータｍとを０に初期設定する（Ｓ４０６）。
【００３６】
そして、データ抽象化部１１０は、列のパラメータｍが列の最大数Ｍより小さいかを判定する（Ｓ４０７）。その結果、列のパラメータｍが列の最大数Ｍ以上であれば（Ｓ４０７でＮＯ）、現在処理中の行の全ての列のデータとの比較が終了したので、パラメータｒに１を加算し（Ｓ４１１）、ステップＳ４０４に戻り、次の行のデータを抽象化する。
【００３７】
一方、列のパラメータｍが列の最大数Ｍより小さければ（Ｓ４０７でＹＥＳ）、行のパラメータｓが行の最大数Ｒより小さいかを判定する（Ｓ４０８）。その結果、行のパラメータｓが行の最大数Ｒ以上であれば（Ｓ４０８でＮＯ）、当該列の処理は終了したので、パラメータｍに１を加算し（Ｓ４１４）、ステップＳ４０７に戻り、次の列のデータを処理する。
【００３８】
一方、行のパラメータｓが行の最大数Ｒより小さければ（Ｓ４０８でＹＥＳ）、故障情報Ａのｓ行、ｍ列目のデータＤｓｍを取得する（Ｓ４０９）。そして、取得したＤｒＣｎ内で、Ｄｓｍと一致する文字列を以下の条件で置換する。まず、行のパラメータｓが行のパラメータｒと等しい、すなわち、当該行の他の列の文字列Ｄｓｍと等しい文字列がある場合、ＤｒＣｎ内でＤｓｍと一致する文字列をｍ列目の項目名に置換する（Ｓ４１０）。例えば、故障情報Ａ（図６（Ａ））の１行目の現象欄の「aaa0ZZZ00」は、当該行の装置名のデータと同じであるため、項目名である「装置名」に置き換える。
【００３９】
また、行のパラメータｓが行のパラメータｒと異なる、すなわち、他の行の文字列Ｄｓｍと等しい文字列がある場合、ＤｒＣｎ内でＤｓｍと一致する文字列をｍ列目の項目名’に置換する。例えば、故障情報Ａ（図６（Ａ））の２行目の現象欄の「部品008」は、３行目の故障部品のデータと同じであるため、項目名である「故障部品’」に置き換える。
【００４０】
このように「’」によって、当該行のデータと一致して置換されたか、他の行のデータと一致して置換されたかを記録する。このとき、どの行のデータと一致して項目名に抽象化されたかのデータを持つとよい。
【００４１】
その後、行のパラメータｓに１を加え（４１３）、ステップＳ４０８に戻り、次の行について処理する。
【００４２】
以上に説明したように、抽象化処理では、指定列のデータ内の単語を同一行内で同じ単語を有する列の項目名と置換することによって、指定列のデータを抽象化するので、事前に辞書を設定せずに、データを抽象化できる。なお、前述したように。本実施例の抽象化処理では、辞書データを使用せずにデータを抽象化できるが、辞書データを併用してもよく、抽象化の精度を向上できる。
【００４３】
さらに、抽象化処理において、抽象化された文字列が区別可能とするためのメタデータを記録してもよい。例えば、抽象化された文字列の開始位置（何文字目か）を記録し、具体化処理Ｓ３０５において抽象化された文字列を戻す場合に参照してもよい。また、抽象化された文字列に、置換された項目名を識別するための情報を関連付けてもよい。
【００４４】
図５は、データ集約処理Ｓ３０３の詳細を示すフローチャートである。
【００４５】
まず、データ集約処理Ｓ３０３は、故障情報Ａ２の行数Ｒ、列数Ｍ、指定列Ｃ０、…、Ｃｎ、…、ＣＮ（０≦ｎ≦Ｎ）、類似度の閾値をＴと定義する。また、空のリストをＬを設定する（Ｓ５０１）。また、行を制御するパラメータｒと、指定列を制御するパラメータｎとを０に初期設定する（Ｓ５０２）。
【００４６】
そして、データ集約処理Ｓ３０３は、パラメータｎがＮ以下であるかを判定する（Ｓ５０３）。パラメータｎがＮより大きければ（Ｓ５０３でＮＯ）、全ての指定列のデータを集約したので、処理を終了する。一方、パラメータｎがＮ以下であれば（Ｓ５０３でＹＥＳ）、パラメータｒが行の最大数Ｒより小さいかを判定する（Ｓ５０４）。
【００４７】
その結果、データ集約処理Ｓ３０３は、パラメータｒが行の最大数Ｒ以上であれば（Ｓ５０４でＮＯ）、現在処理中の指定列のデータ集約処理は終了したので、一時的に作成したリストＬに含まれる組の行を一行にまとめる。このとき、指定列Ｃｎ以外の列の値は指定の文字列によるデリミタ（例えば、＃＃）で繋げる（Ｓ５１２）。なお、同一の値もそのままデリミタで繋げても、同一の値は一つだけ残して、他は消去してもよい。
【００４８】
そして、パラメータｎに１を加算し（Ｓ５１３）、ステップＳ５０３に戻り、次の指定列のデータを集約する。一方、パラメータｒが行の最大数Ｒより小さければ（Ｓ５０４でＹＥＳ）、故障情報Ａ２のｒ行、ＣｎのデータＤｒＣｎを取得する（Ｓ５０５）。さらに、行のパラメータｋをｒ＋１に初期設定する（Ｓ５０６）。データ集約処理では、行同士を集約できるかを判定するので、既に判定が終了した組み合わせを再び判定する必要がないため、現在処理しているｒ行以後の行とを比較すればよいからである。
【００４９】
そして、データ集約処理Ｓ３０３は、行のパラメータｋが列の最大数Ｒより小さいかを判定する（Ｓ５０７）。その結果、列のパラメータｋが列の最大数Ｒ以上であれば（Ｓ５０７でＮＯ）、現在処理中の行のデータと他の行のデータとの比較が終了したので、パラメータｒに１を加算し（Ｓ５１１）、ステップＳ５０４に戻り、次の行のデータを集約する。
【００５０】
一方、行のパラメータｋが列の最大数Ｒより小さければ（Ｓ５０７でＹＥＳ）、故障情報Ａ２のｋ行、Ｃｎ列目のデータＤｋＣｎを取得する（Ｓ５０８）。そして、取得したＤｒＣｎとＤｋＣｎとの類似度を計算し、計算された類似度が閾値Ｔより大きい場合｛ｒ，ｋ｝をリストＬに追加する（Ｓ５０９）。
【００５１】
類似度の計算は、公知のコサイン類似度を用いることができる。故障情報Ａ２（図７（Ａ））の現象欄について類似度を計算した例を図９（Ａ）に示す。故障情報Ａ２の１行目の「装置名、異常、発生」と２行目の「装置、故障、あり」との類似度は０．００であり、２行目の「装置、故障、あり」と３行目の「装置名、装置、異常、発生」との類似度は０．３３であり、３行目の「装置名、装置、異常、発生」と１行目の「装置名、異常、発生」との類似度は０．７５である。例えば、閾値Ｔを０．７に設定すると、現象欄については、１行目と３行目とは類似すると判定される。
【００５２】
また、類似度を用いたデータ集約の具体例は、図９（Ｂ）に示すように、故障情報Ａ２（図７（Ａ））の１行目（故障ＩＤがＦ０）の現象欄の「装置名、異常、発生」は、３行目（故障ＩＤがＦ２）の現象欄の「装置名、装置、異常、発生」と類似しているので、故障ＩＤがＦ０のデータと、Ｆ２のデータとを統合する。一方、図９（Ｃ）に示すように、故障情報Ａ２（図７（Ａ））の１行目（故障ＩＤがＦ０）の現象欄の「装置名、異常、発生」は、２行目（故障ＩＤがＦ１）の現象欄の「装置、故障、あり」と類似していないので、故障ＩＤがＦ０のデータと、Ｆ１のデータとは統合しない。
【００５３】
次に、図８を参照して、故障情報Ａ２の複数の指定列のデータを集約して集約処理結果Ａ３を生成する過程を説明する。
【００５４】
まず、最初の指定列Ｃ０である現象欄のデータを集約する。前述したように、故障情報Ａ２の１行目（故障ＩＤがＦ０）と３行目（故障ＩＤがＦ２）とは現象欄のデータが類似しているので、故障ＩＤがＦ０のデータと、Ｆ２のデータとを統合する。このとき、現象欄以外の列の値は指定の文字列によるデリミタである＃＃で接続する。現象欄のデータを集約した中間結果Ａ３’を図８（Ａ）に示す。
【００５５】
次に、指定列Ｃ１である原因欄のデータを集約する。原因欄では類似度が閾値Ｔを超えるデータがないので、原因欄によっては行は集約されない。
【００５６】
次に、指定列Ｃ２である作業内容欄のデータを集約する。作業内容欄が「故障部品、交換」の行が二つあり、「経過、観察」の行が二つある。このため、図８（Ｂ）に示すように、指定列Ｃ０によって集約された行を二つのグループに分類する。なお、故障ＩＤ欄から原因欄はそのままである。なお、類似度の閾値Ｔは、指定列ごとに変えてもよい。
【００５７】
図５に戻って説明を続ける。行のパラメータｋに１を加え（５１０）、ステップＳ５０７に戻り、次の列について処理する。
【００５８】
以上に説明したように、データ集約処理では、同じ傾向のデータを纏めて、分かりやすく整形できる。また、データが完全に一致していない場合でも集約するので、入力候補が限定されていない項目でもデータを集約できる。例えば、作業者が自ら自然文で入力する項目でもデータを集約できる。
【００５９】
次に、図６から図１０を用いて、故障情報データベース１２０に格納される故障情報Ａから、保守運用業務パターンデータベース１２１に格納される具体化処理結果Ａ５が生成されるまでのデータの変化を説明する。なお、以後の図において、斜字体は抽象化処理Ｓ３０１によって置換されたデータを示し、下線は当該処理ステップによって変更されたデータを示す。
【００６０】
図６（Ａ）は、故障情報データベース１２０に格納される故障情報Ａの一例を示す図である。故障情報Ａは、故障ＩＤ、発生日時、装置名、装置分類、故障部品、現象、原因、作業内容、作業工数、及び停止時間のデータを含む。故障情報Ａは、例えば、故障に対する作業を行った作業者が入力する。
【００６１】
故障ＩＤは、故障情報データベース１２０に格納されるデータを一意に識別するための識別情報である。発生日時は、当該故障が発生した日時である。装置名は、当該故障が発生した装置の名称である。装置分類は、当該故障が発生した装置の分類である。故障部品は、当該故障した部品の型番又は名称である。現象は、当該故障の現象であり、原因は、当該故障の原因である。作業内容は、当該故障に対する作業の内容である。作業工数は、当該故障に対する作業を行った工数である。停止時間は、当該故障により装置が停止した時間である。
【００６２】
なお、現象、原因及び作業内容が指定列、作業工数及び停止時間が対象列として定義されている。テキスト分析の対象となる指定列には、図示した項目の他、発生日時、発生場所（地域）対応者などを定義してもよい。
【００６３】
図６（Ｂ）に一例を示す故障情報Ａ１は、抽象化処理Ｓ３０１によって故障情報Ａから生成される。指定列（現象、原因、作業内容）のデータのうち、他の項目のデータと同じデータが当該データの項目名と置換されている。
【００６４】
図７（Ａ）に一例を示す故障情報Ａ２は、自然言語処理Ｓ３０２によって故障情報Ａ１から生成される。指定列（現象、原因、作業内容）のデータ（自然文）が自然言語処理によって単語に分解されている。
【００６５】
図８（Ｂ）に一例を示す集約処理結果Ａ３は、データ集約処理Ｓ３０３によって故障情報Ａ２から生成される。指定列のデータが類似している場合、当該行が集約される。具体的には、現象、原因、作業内容の少なくとも一つが同じ行を纏めて、項目間の関係を分析する。なお、図８（Ａ）は、集約処理結果Ａ３を導出するための中間結果Ａ３’である。
【００６６】
図１０（Ａ）に一例を示す集計結果Ａ４は、集計処理Ｓ３０４によって集約処理結果Ａ３から生成される。対象列（作業項数、停止時間）のデータを統計処理されて平均値で更新されている。
【００６７】
図１０（Ｂ）に一例を示す具体化処理結果Ａ５は、具体化処理Ｓ３０５によって集計結果Ａ４から生成され、保守運用業務パターンデータベース１２１に格納される。抽象化処理Ｓ３０１で置換されたデータが、元のデータ（装置名、部品名など）に置換されている。
【００６８】
図１１は、パターン抽出処理Ｓ３０６の詳細を示すフローチャートである。
【００６９】
まず、利用者１００が着目する指標の種類の指定を計算機１０２に入力する。パターン抽出部１１４は、利用者１００が指定した指標を取得する（Ｓ１１０１）。このとき、利用者１００は、指標の種類の他、出力するデータの数やデータの並び順（昇順又は降順）を指定してもよい。
【００７０】
そして、パターン抽出部１１４は、指定された指標の値の昇順又は降順に所定数の保守運用業務パターンを保守運用業務パターンデータベース１２１から抽出する（Ｓ１１０２）。
【００７１】
最後に、パターン抽出部１１４は、保守運用業務パターンデータベース１２１から抽出した保守運用業務パターンを表形式やグラフ形式などで可視化するデータを生成し、計算機１０２に送信する（Ｓ１１０３）。計算機１０２は、サーバ１０１（パターン抽出部１１４）から送信されたデータをディスプレイ１０３に表示する。
【００７２】
図１２及び図１３は、保守運用業務パターン表示画面の一例を示す図である。
【００７３】
図１２は、利用者１００が指標の種類として作業工数を指定した場合の保守運用業務パターン表示画面の例を示す。図示するように、画面の上部には、作業工数が大きい順に三つの保守運用業務パターンが表示される。画面の下部には作業工数の値を表す円グラフと棒グラフが表示される。例えば、利用者１００は、１行目のデータからＨＤＤの交換時期を検討してもよい。また、サーバ１０１、作業内容（ＨＤＤの交換）を推奨してもよい。
【００７４】
図１３は、利用者１００が指標の種類として停止時間を指定した場合の保守運用業務パターン表示画面の例を示す。図示するように、画面の上部には、停止時間が長い順に三つの保守運用業務パターンが表示される。画面の下部には停止時間の値を表す円グラフと棒グラフが表示される。
【００７５】
以上に、本発明によるテキスト解析方法について故障情報を例にして説明したが、他のテキスト情報の解析にも適用できる。
【００７６】
以上に説明したように、本発明の実施例のテキスト分析システムは、テーブル内の各行について、他の列のデータを用いて指定列のデータを抽象化するデータ抽象化部１１０と、抽象化されたデータからキーワードを抽出する自然言語処理部１１１と、指定列のキーワードの類似度によって、データが類似する行を集約するデータ集約部１１２と、統計処理の対象行のデータの代表値を計算するデータ集計部１１３とを有し、データ抽象化部１１０は、指定列のデータを当該行の他の列のデータに置換した具体化処理結果Ａ５を生成するので、事前に定義をすることなく事象間の関係を抽出できる。また、同じ傾向のデータが散らばっていると傾向が分かりづらいが、同じ傾向のデータを纏めることができる。
【００７７】
また、利用者が入力した指標の値について、代表値の昇順又は降順に所定数のデータを具体化処理結果Ａ５から抽出し、利用者に提示する抽出部を有するので、影響が大きい傾向を抽出できる。
【００７８】
また、データ抽象化部１１０は、各指定列のデータを当該行の他の列のデータと比較し、各指定列のデータ内の単語を同一行で同じ単語がある列の項目名に置換するので、固有名詞や表現の揺れを吸収できる。
【００７９】
また、データ抽象化部１１０は、指定列のデータに含まれる項目名を、当該行の当該項目名のデータに置換して具体化するので、事前に定義をすることなく、抽象化したデータを具体化できる。
【００８０】
また、データ集約部１１２は、各指定列のデータを当該指定列の他の行のデータと比較し、データの類似度が所定の閾値より大きい場合、類似するデータの行を纏めるので、解析対象の自然文の表現が揺れていたり、入力候補が限定されていない項目でも、データを集約できる。
【００８１】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【００８２】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００８３】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【００８４】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００８５】
１０１  サーバ
１０２  計算機
１１０  データ抽象化部
１１１  自然言語処理部
１１２  データ集約部
１１３  データ集計部
１１４  パターン抽出部
１２０  故障情報データベース
１２１  保守運用業務パターンデータベース
【図１】
2018018254.tif 000003
【図２】
2018018254.tif 000004
【図３】
2018018254.tif 000005
【図４】
2018018254.tif 000006
【図５】
2018018254.tif 000007
【図６】
2018018254.tif 000008
【図７】
2018018254.tif 000009
【図８】
2018018254.tif 000010
【図９】
2018018254.tif 000011
【図１０】
2018018254.tif 000012
【図１１】
2018018254.tif 000013
【図１２】
2018018254.tif 000014
【図１３】
2018018254.tif 000015