IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ハイテクノロジーズの特許一覧

<>
  • 特開-文書構造化装置、文書構造化方法 図1
  • 特開-文書構造化装置、文書構造化方法 図2
  • 特開-文書構造化装置、文書構造化方法 図3
  • 特開-文書構造化装置、文書構造化方法 図4
  • 特開-文書構造化装置、文書構造化方法 図5
  • 特開-文書構造化装置、文書構造化方法 図6
  • 特開-文書構造化装置、文書構造化方法 図7
  • 特開-文書構造化装置、文書構造化方法 図8
  • 特開-文書構造化装置、文書構造化方法 図9
  • 特開-文書構造化装置、文書構造化方法 図10
  • 特開-文書構造化装置、文書構造化方法 図11
  • 特開-文書構造化装置、文書構造化方法 図12
  • 特開-文書構造化装置、文書構造化方法 図13
  • 特開-文書構造化装置、文書構造化方法 図14
  • 特開-文書構造化装置、文書構造化方法 図15
  • 特開-文書構造化装置、文書構造化方法 図16
  • 特開-文書構造化装置、文書構造化方法 図17
  • 特開-文書構造化装置、文書構造化方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023072885
(43)【公開日】2023-05-25
(54)【発明の名称】文書構造化装置、文書構造化方法
(51)【国際特許分類】
   G06F 40/211 20200101AFI20230518BHJP
   G06F 40/242 20200101ALI20230518BHJP
   G06F 40/279 20200101ALI20230518BHJP
   G06F 16/36 20190101ALI20230518BHJP
【FI】
G06F40/211
G06F40/242
G06F40/279
G06F16/36
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021185584
(22)【出願日】2021-11-15
(71)【出願人】
【識別番号】501387839
【氏名又は名称】株式会社日立ハイテク
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】我妻 正太郎
(72)【発明者】
【氏名】照屋 絵理
(72)【発明者】
【氏名】竹内 理
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091AA15
5B091AB08
5B091CA06
5B091CC02
5B091CC16
5B175DA01
5B175GB04
5B175KA11
(57)【要約】
【課題】少ないデータ量から省工数で高精度に単語間の関連付けを行う。
【解決手段】文書構造化装置100は、1つまたは複数の文により構成される文書データの各文から単語を抽出する専門用語辞書作成処理部130と、文書データの各文の文節にそれぞれ対応する複数のノードと、複数のノード間を接続する枝とを用いて、単語同士の係り受け関係を木構造で表した構文木を作成する構文解析処理部140と、構文解析処理部140により作成された構文木における枝の本数に基づいて単語間の関係性距離を計算し、その関係性距離に基づいて単語間での関係性の有無を判定して、関係性があると判定した単語同士を互いに関連付ける専門用語関係性推定処理部150と、とを有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
プロセッサとメモリとを備え、
前記プロセッサは、
1つまたは複数の文により構成される文書データの各文から単語を抽出する辞書作成処理部と、
前記文書データの各文の文節にそれぞれ対応する複数のノードと、前記複数のノード間を接続する枝とを用いて、前記単語同士の係り受け関係を木構造で表した構文木を作成する構文解析処理部と、
前記構文解析処理部により作成された前記構文木における前記枝の本数に基づいて前記単語間の関係性距離を計算し、前記関係性距離に基づいて前記単語間での関係性の有無を判定して、関係性があると判定した単語同士を互いに関連付ける関係性推定処理部と、として機能する、文書構造化装置。
【請求項2】
請求項1に記載の文書構造化装置において、
前記関係性推定処理部は、前記構文木の各ノードに対応する各単語をカテゴリごとに分類し、前記カテゴリが異なる単語間で前記関係性距離を計算する、文書構造化装置。
【請求項3】
請求項2に記載の文書構造化装置において、
前記関係性推定処理部は、前記文書データの同一の文から抽出された各単語について、前記構文解析処理部により作成された複数の前記構文木の中から当該単語に対応するノードを頂点とする構文木を取得し、取得した構文木における前記頂点と他の各ノードとの間で前記カテゴリごとに前記関係性距離を計算する、文書構造化装置。
【請求項4】
請求項3に記載の文書構造化装置において、
前記関係性推定処理部は、前記構文木において前記頂点に対する前記関係性距離が最も近いノードを前記カテゴリごとに抽出し、抽出したノードに対応する単語と前記頂点に対応する単語との間に関係性があると判定する、文書構造化装置。
【請求項5】
請求項3に記載の文書構造化装置において、
前記関係性推定処理部は、前記構文木において親子関係にある複数のノードが同一の前記カテゴリに属する場合、当該複数のノードの前記関係性距離を同じ値に設定する、文書構造化装置。
【請求項6】
請求項2に記載の文書構造化装置において、
前記関係性推定処理部は、前記構文木の各ノードに対応する各単語の中で、前記関係性距離および前記カテゴリが予め設定された条件をそれぞれ満たす単語のペアを抽出し、抽出した前記単語のペア同士の間に関係性があると判定する、文書構造化装置。
【請求項7】
請求項6に記載の文書構造化装置において、
前記条件をユーザに編集させるためのユーザインタフェースを表示装置に表示する、文書構造化装置。
【請求項8】
請求項1に記載の文書構造化装置において、
前記関係性推定処理部による単語同士の関連付けの結果を表す文書構造データを出力するデータ出力部を備える、文書構造化装置。
【請求項9】
請求項8に記載の文書構造化装置において、
前記文書構造データは、各単語のカテゴリを表す複数の列と、各単語の関連付けの結果を表す複数の行と、を有し、互いに関連付けられた単語同士が同一の行内で当該単語が属するカテゴリの列にそれぞれ格納される表形式のデータである、文書構造化装置。
【請求項10】
請求項8に記載の文書構造化装置において、
前記文書構造データをユーザに編集させるためのユーザインタフェースを表示装置に表示する、文書構造化装置。
【請求項11】
コンピュータを用いて1つまたは複数の文により構成される文書データを構造化する文書構造化方法であって、
前記コンピュータにより、
前記文書データの各文から単語を抽出し、
前記文書データの各文の文節にそれぞれ対応する複数のノードと、前記複数のノード間を接続する枝とを用いて、前記単語同士の係り受け関係を木構造で表した構文木を作成し、
前記構文木における前記枝の本数に基づいて前記単語間の関係性距離を計算し、
前記関係性距離に基づいて前記単語間での関係性の有無を判定し、
関係性があると判定した単語同士を互いに関連付けて記録する、文書構造化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書中の単語同士を関連付けして文書を構造化するための装置および方法に関する。
【背景技術】
【0002】
近年、様々な分野において機械学習の利用が進んでいる。こうした機械学習の利用形態の一つに、多数の文書から様々な単語を抽出し、抽出した単語同士の関連性を学習して文書の構造を解析する文書解析技術があり、例えば特許文献1、2に記載の技術が知られている。
【0003】
特許文献1には、文書中の2つのエンティティ間の関係抽出を行う装置について記載されている。上記装置では、大量のテキストコーパスから近接して共起するエンティティペアを抽出し、抽出された大量のエンティティペアをそのエンティティ周辺の語彙パターンと合わせて教師なし学習によるクラスタリングを行うことにより、その結果として有意な関係種別を有するエンティティペア集合を代表クラスタとして抽出する。そしてその代表クラスタの関係種別を推定することで、エンティティペアがどのような関係性なのかを効率的に判定する。
【0004】
特許文献2には、自然言語で記載された仕様書からプログラムを自動生成する際、仕様書に不備がないか検知することを目的とした仕様検証装置について記載されている。仕様検証装置では、仕様書に係り受け解析を行った結果に対し、複数の仕様解析ルールを適用することで、動詞の単語を含む文節毎に、前動詞と、前記動詞に対する主語と、前記動詞に対する目的語と、前記動詞と前記目的とにより定まる動作が行われる前に成立している必要がある事前条件とに関する項目を含む意味表現データを生成する。意味表現データを検査することで仕様書の不備を特定する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011-227688号公報
【特許文献2】特開2014-81680号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、企業等における製品保守部門においては、次世代製品設計へのフィードバックを目的として、過去の製品故障事例を分析することがある。過去の故障事例分析では、あらかじめ蓄積された製品保守文書の中から過去の製品故障事例に関する単語を抽出することが求められる。この際、ある故障を示す単語やその故障の原因を示す単語など、何らかの故障事例に関連する単語群を、例えば表のような構造データに整理しておくことで、故障事例分析を効率化することが出来る。
【0007】
ところで、上記のような単語抽出や単語同士を関連付けた上で構造データ化する試みは多くの場合人手で行われており、大きな工数がかかっている。このため、文書データから効率良く任意の事例に関する単語を抽出し、さらに抽出した単語同士の関連付けを行う仕組みが求められている。単語の抽出は多くの既存手法が開示されているが、単語同士の関連付けを行う仕組みについては、現時点でまだ発展途上である。
【0008】
前述の特許文献1では、エンティティ周辺の語彙を用いた教師なし学習によるクラスタリングを行い、このクラスタリングの結果を用いて、文書中の2つのエンティティ間の関係を推定するようにしている。エンティティには単語も含まれるため、同技術は単語同士の関連付けにも応用可能と考えられる。しかしながら、このような手法で単語同士の高精度な関連付けを行うには、膨大な量の文書データを用意する必要がある。そのため、例えば製品保守文書のような特定の技術に特化した文書データ中の単語の関連付けを行う場合は、学習データを十分に確保できず、関連付け精度の向上が難しい。
【0009】
また、前述の特許文献2では、仕様書に係り受け解析を行った結果に対し、複数の仕様解析ルールを適用することで、仕様書中の単語の品詞に関連した意味表現データを生成するようにしている。しかしながら、このような手法を採用するためには、文書の種類ごとに人手で仕様解析ルールを調整する必要がある。例えば、対象となる文書が製品保守文書である場合、対象とする製品ごとに文書中で用いられる単語が異なるため、対象とする製品ごとにルールを設定する必要がある。そのため、ルールの設定に要する人的負荷が大きい。
【0010】
本発明は上記事情に鑑みなされたものであり、その目的は、少ないデータ量から省工数で高精度に単語間の関連付けを行うことができる技術を提供することである。
【課題を解決するための手段】
【0011】
本発明による文書構造化装置は、プロセッサとメモリとを備え、前記プロセッサは、1つまたは複数の文により構成される文書データの各文から単語を抽出する辞書作成処理部と、前記文書データの各文の文節にそれぞれ対応する複数のノードと、前記複数のノード間を接続する枝とを用いて、前記単語同士の係り受け関係を木構造で表した構文木を作成する構文解析処理部と、前記構文解析処理部により作成された前記構文木における前記枝の本数に基づいて前記単語間の関係性距離を計算し、前記関係性距離に基づいて前記単語間での関係性の有無を判定して、関係性があると判定した単語同士を互いに関連付ける関係性推定処理部と、として機能する。
本発明による文書構造化方法は、コンピュータを用いて1つまたは複数の文により構成される文書データを構造化する文書構造化方法であって、前記コンピュータにより、前記文書データの各文から単語を抽出し、前記文書データの各文の文節にそれぞれ対応する複数のノードと、前記複数のノード間を接続する枝とを用いて、前記単語同士の係り受け関係を木構造で表した構文木を作成し、前記構文木における前記枝の本数に基づいて前記単語間の関係性距離を計算し、前記関係性距離に基づいて前記単語間での関係性の有無を判定し、関係性があると判定した単語同士を互いに関連付けて記録する。
【発明の効果】
【0012】
本発明によれば、少ないデータ量から省工数で高精度に単語間の関連付けを行うことができる。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態に係る文書構造化システムの全体構成図である。
図2図1の文書構造化システムの構成に用いる情報処理装置の一例である。
図3図1の文書構造化システムの処理の全体概要図である。
図4図1の文書情報テーブルの一例である。
図5図1の単語カテゴリリストの一例ある。
図6図1の専門用語辞書の一例である。
図7図1の構文木テーブルの一例である。
図8図1の構造データテーブルの一例である。
図9図1の構文木内専門用語テーブルの一例である。
図10図1のユーザ設定ルールテーブルの一例である。
図11図1のシステムの全体の処理を示すフローチャートである。
図12図11の専門用語辞書作成処理を示すフローチャートである。
図13図11の構文解析処理を示すフローチャートである。
図14図11の専門用語関係性推定処理を示すフローチャートである。
図15図14の最小関係性距離ルール適用処理を示すフローチャートである。
図16図14のユーザ設定ルール適用処理を示すフローチャートである。
図17図8の構造データテーブルを修正する機能と図14で使用する専門用語を関連付けるためのルールを選択する機能を持つユーザインタフェースの具体例を示す図である。
図18図10のユーザ設定ルールテーブルをユーザが修正するためのユーザインタフェースの具体例を示す図である。
【発明を実施するための形態】
【0014】
以下、発明の実施形態について図面を参照しつつ説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。とくに限定しない限り、各構成要素は単数でも複数でも構わない。
【0015】
以下の説明において、同一または類似の構成について同一の符号を付して重複した説明を省略することがある。また、以下の説明において、符号の前に付した「S」の文字は処理ステップを意味する。また、以下の説明では、「テーブル」、「情報」等の表現にて各種情報を説明することがあるが、情報はこれら以外のデータ構造で表現されていてもよい。
【0016】
図1に、本発明の一実施形態に係る情報処理システム(以下「文書構造化システム」と称する)の構成の例を示す。この文書構造化システムでは、各種文書(製品保守文書など)を表す文書データから単語を抽出し、単語同士に意味上の関係性が有るか判定する。判定した結果を元に、意味上の関係性が有る単語を表形式のデータに整理して出力する。
【0017】
以下の説明において、2つの単語の組合せのことを「単語ペア」と称する。また以下の説明において、所定のトピックについて記述された、1つ以上の文や1つ以上の文章が纏まったものを文書と称し、この文書を表すデータを文書データと称する。以下で説明する各種の処理は、原則として文書データを単位として行われるものとして説明するが、処理の単位は必ずしも限定されない。
【0018】
図1では、本発明の一実施形態に係る文書構造化システム1の概略的な構成を示している。同図に示すように、文書構造化システム1は、文書構造化装置100、ユーザ装置2、およびデータ管理装置4を含む。これらはいずれも情報処理装置(コンピュータ)を用いて構成されており、通信媒体5を介して互いに双方向通信が可能な状態で接続されている。通信媒体5は、有線または無線による通信機能を提供する通信基盤であり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、専用線、各種の公衆通信網等の各種通信ネットワーク、USB(Universal Serial Bus)規格に準拠した各種通信機器等である。
【0019】
文書構造化装置100は、処理対象とする文書データを取得し、その文書データから単語カテゴリリスト112に記載されたカテゴリに属する単語を抽出する。そして、異なるカテゴリ間の単語同士における文中の意味上の関係性を推定し、関係性があるとされた単語ペア、あるいは単語群を構造データテーブル117に登録する。単語の抽出元の文書データは、例えば、OT知識(OT:Operational Technology)が記述されている製品保守文書等を電子化したデータである。文書構造化装置100によって生成された構造データテーブル117は、例えば、OT知識から有用な情報を効率よく検索してユーザに提供するサービスに用いられる。
【0020】
同図に示すように、文書構造化装置100は、主な機能として、記憶部110、専門用語辞書作成処理部130、構文解析処理部140、専門用語関係性推定処理部150、データ出力部160を含む。
【0021】
記憶部110は、主な情報(データ)として、文書情報テーブル111、単語カテゴリリスト112、単語カテゴリ判定モデル113、専門用語辞書114、構文木テーブル116、構造データテーブル117、構文木内専門用語テーブル118、ユーザ設定ルールテーブル120を記憶する。これらの詳細については後述する。
【0022】
ユーザ装置2は、文書構造化装置100が参照もしくは更新する各種の情報を管理するためのユーザインタフェース(画面(画像)表示装置や音声入出力装置等)を提供する。ユーザ装置2は、例えば、専門用語辞書114、構造データテーブル117、ユーザ設定ルールテーブル120などをユーザが参照もしくは編集するためのユーザインタフェースを表示装置に表示してユーザに提供する。
【0023】
データ管理装置4は、データ管理通信部41を備える。データ管理通信部41は、単語ペアの抽出元となる文書データを文書情報テーブル42に記憶して管理する。また、データ管理通信部41は、文書構造化装置100と通信し、文書構造化装置100に文書データを適宜提供(送信)する。これにより、文書構造化装置100において処理対象とする文書データを取得することができる。
【0024】
文書構造化装置100には、通信媒体5を介して、1つまたは複数のデータ管理装置4が接続されている。図1では2つのデータ管理装置4が接続されている例を示しているが、データ管理装置4の数はこれに限定されない。各データ管理装置4は、文書情報テーブル42に管理される文書データを、例えば、通信媒体5を介して取得することができる。また、上記の文書データは、ユーザ装置2が提供するユーザインタフェースを介してユーザが登録することもできる。
【0025】
図2に、文書構造化システム1において用いられる情報処理装置(文書構造化装置100、ユーザ装置2、データ管理装置4等)の構成の一例を示す。同図に例示する情報処理装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、および通信装置16を備える。情報処理装置10の例として、パーソナルコンピュータ、サーバ装置、スマートフォン、タブレット等がある。
【0026】
情報処理装置10は、その全部または一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10によって提供される機能の全部または一部は、例えば、クラウドシステムがAPI(Application Programming Interface)等を介して提供するサービスによって実現してもよい。また、情報処理装置10によって提供される機能の全部または一部は、例えば、SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure as a Service)等を利用して実現されるものであってもよい。
【0027】
文書構造化装置100とユーザ装置2は、同じ情報処理装置10(共通のハードウェア)によって実現してもよい。また、文書構造化装置100は、例えば、通信可能に接続された複数の情報処理装置10を用いて実現してもよい。
【0028】
同図に示すプロセッサ11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、AI(Artificial Intelligence)チップ等を用いて構成されている。
【0029】
主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。
【0030】
補助記憶装置13は、例えば、SSD(Solid State Drive)、ハードディスクドライブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の記録媒体の読取/書込装置、クラウドサーバの記憶領域等である。補助記憶装置13には、記録媒体の読取装置や通信装置16を介してプログラムやデータを読み込むことができる。補助記憶装置13に格納(記憶)されているプログラムやデータは、プロセッサ11によって主記憶装置12に随時読み込まれ、プロセッサ11が実行する処理において利用される。
【0031】
入力装置14は、外部からの入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、ペン入力方式のタブレット、音声入力装置等である。
【0032】
出力装置15は、プロセッサ11の処理経過や処理結果等の各種情報を出力するインタフェースである。出力装置15は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。なお、例えば、情報処理装置10が通信装置16を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
【0033】
入力装置14と出力装置15は、ユーザとの間での対話処理(情報の受け付け、情報の提示等)を実現するユーザインタフェースを構成する。
【0034】
通信装置16は、他の装置との間の通信を実現する装置である。通信装置16は、通信媒体5を介して他の装置との間の通信を実現する、有線方式または無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USBモジュール等である。
【0035】
情報処理装置10には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)(リレーショナルデータベース、NoSQL等)、KVS(Key-Value Store)等が導入されていてもよい。
【0036】
文書構造化装置100、ユーザ装置2、およびデータ管理装置4の機能は、夫々のプロセッサ11が、夫々の主記憶装置12に格納されているプログラムを読み出して実行することにより、もしくは、これらの装置を構成するハードウェア(FPGA、ASIC、AIチップ等)自体によって実現される。
【0037】
文書構造化装置100が提供する各種の機能は、例えば、テキストデータマイニング等の公知の各種データマイニング手法、公知の各種自然言語処理手法(形態素解析、構文解析、意味解析、文脈解析、特徴量抽出、単語分散表現、固有表現抽出、テキスト分類、系列ラベリング)、公知の各種機械学習手法(深層学習(DNN(Deep Neural Network)、RNN(Recurrent Neural Network)等)を用いて実現される。文書構造化装置100は、前述した各種の情報(データ)を、例えば、データベースのテーブルやファイルシステムが管理するファイルとして記憶する。
【0038】
図3は、文書構造化システム1の基本的な動作を説明するシステムフロー図である。以下、同図並びに図1とともに、文書構造化システム1の基本的な動作について説明する。文書構造化システム1は、文書情報テーブル111に格納された文書データ内の各文から単語を抽出するとともに、文書データの各文に対して構文解析を行い、各文における文節同士の係り受け関係を木構造で表した構文木を作成する。そして、抽出された各単語について構文木を探索することにより、各文の単語間に関係性が存在するか否かを判定して、関係性がある単語同士を表形式で表した構造データテーブル117を出力する。
【0039】
同図に示すように、文書構造化装置100の専門用語辞書作成処理部130は、文書情報テーブル111に格納された文書データの各文から単語を抽出し、抽出した単語が属するカテゴリを、単語カテゴリリスト112および単語カテゴリ判定モデル113を用いて特定する。専門用語辞書作成処理部130は、例えば、文書データに対して周知の固有表現抽出(NER:Named Entity Recognition)技術を適用することにより、様々な専門用語を含む単語を抽出することができる。専門用語辞書作成処理部130は、抽出した単語とその単語が属するカテゴリ、および文書情報テーブル111における単語の抽出元の文章(テキストデータ)を、専門用語辞書114に登録する。
【0040】
構文解析処理部140は、文書情報テーブル111に格納された文書データが表す文章を文単位に分割し、その各文に対して構文解析を実施した結果により、文中の単語同士の係り受け関係を木構造で表した構文木を作成して、各構文木の情報を構文木テーブル116に格納する。ここで、構文木とは、文書データの各文の文節にそれぞれ対応する複数のノードと、各ノード間を接続する枝とを用いた木構造により、各文における単語同士の係り受け関係を表したものである。構文木テーブル116には、構文木を構成する各ノードのID、各ノードが表す文節のテキスト、構文木中で各ノードと親子関係にあるノードのID、構文木の頂点ノードのID、当該文節に含まれる単語(専門用語)とそのカテゴリ、当該文節の抽出元の文テキストなどが格納される。なお、単語とそのカテゴリは、当該文節が専門用語辞書114内の単語を含む場合に設定される情報である。
【0041】
専門用語関係性推定処理部150は、構文木テーブル116に示された構文木を探索し、文書データの各文中に含まれる単語(専門用語)同士の関係性の有無を推定する。単語同士の関係性は、構文木中のノード間の枝の本数(以下、関係性距離と呼称)を用いたルールにより推定される。例えば、構文木を探索して専門用語Aを発見した場合、Aとは異なるカテゴリに属し、かつ関係性距離が最も近い専門用語Bを、Aと関係性のある専門用語として抽出するルールを用いて関係性推定を行う。なお、関係性推定に用いるルールは必ずしも上記のルールには限定されず、ユーザ装置2を用いて、ユーザがその内容を任意に編集することが可能である。また、関係性距離の算出には、ノード間の枝の本数ではなく、構文木中のノード間に含まれるノードの数を参照してもよい。そして、この関係性の推定結果に基づき、関係性のある単語同士を互いに関連付けてカテゴリごとに表形式でまとめた文書構造データを作成して、構造データテーブル117に格納する。構造データテーブル117にまとめられた文書構造データは、データ出力部160により、文書構造化装置100からユーザ装置2へ出力されてユーザに提示される。
【0042】
なお、文書構造化装置100において、以上説明した専門用語辞書作成処理部130、構文解析処理部140および専門用語関係性推定処理部150の各機能は、文書構造化装置100として用いられる図2の情報処理装置10においてプロセッサ11が所定のプログラムを実行することにより実現される。すなわち、情報処理装置10のプロセッサ11は、専門用語辞書作成処理部130、構文解析処理部140および専門用語関係性推定処理部150として機能することができる。
【0043】
また、データ出力部160の機能は、文書構造化装置100として用いられる図2の情報処理装置10において、通信装置16により実現される。すなわち、情報処理装置10の通信装置16は、データ出力部160として機能し、文書構造化装置100からユーザ装置2へ構造データテーブル117を出力することができる。
【0044】
情報処理装置10からユーザ装置2へ出力された構造データテーブル117の内容は、ユーザ装置2として用いられる図2の情報処理装置10において、出力装置15に含まれる表示装置において表示される。これにより、文書データ中の各単語間の関係性をユーザに提示するとともに、その内容を編集するためのユーザインタフェースをユーザに提供することができる。
【0045】
続いて、文書構造化装置100の記憶部110が管理する主な情報(データ)について具体的に説明する。
【0046】
図4は、図1に示した記憶部110が管理する文書情報テーブル111の一例である。文書情報テーブル111には、単語ペアの抽出元である文書データ(例えば、テキストデータや文書の内容を所定のデータフォーマットで記述したデータ)が管理される。例示する文書情報テーブル111は、文書ID1111およびテキスト1112の各項目を有する一つ以上のレコードで構成される。
【0047】
上記項目のうち、文書ID1111には、文書データの識別子(以下、「文書ID」と称する。)が格納される。テキスト1112には、文書データの実体が格納される。なお、テキスト1112に文書データの所在のみを格納し、文書データの実体については上記所在で特定される記憶領域(例えば、文書構造化装置100と通信可能に接続されたストレージ装置等)に管理するようにしてもよい。
【0048】
図5は、記憶部110が管理する単語カテゴリリスト112の一例である。単語カテゴリリスト112には、単語の分類先となるカテゴリの一覧(リスト)が管理される。例示する単語カテゴリリスト112は、カテゴリの一覧が格納される項目であるカテゴリ1121を有する。単語カテゴリリスト112の内容は、例えば、ユーザ装置2が提供するユーザインタフェースを介してユーザが設定する。
【0049】
図1に示した記憶部110が管理する単語カテゴリ判定モデル113は、文書情報テーブル111から抽出しようとする単語が単語カテゴリリスト112のいずれのカテゴリに属するかを判定するモデルである。単語カテゴリ判定モデル113は、入力された単語が単語カテゴリリスト112の各カテゴリに属する確率(以下、「カテゴリ関連確率」と称する。)を求め、求めたカテゴリ関連確率が最も大きいカテゴリを単語が属するカテゴリと判定し、判定した単語と当該単語のカテゴリ関連確率を出力する。単語カテゴリ判定モデル113は、例えば、行列式や数式で表される。単語カテゴリ判定モデル113は、例えば、公知の各種自然言語処理手法(形態素解析、構文解析、意味解析、文脈解析、特徴量抽出、単語分散表現、固有表現抽出、テキスト分類、系列ラベリング)や、公知の各種機械学習手法(深層学習(DNN(Deep Neural Network)、RNN(Recurrent Neural Network)等)を用いて実現される。但し、単語カテゴリ判定モデル113の実現方法は必ずしも限定されない。
【0050】
図6は、図1に示した記憶部110が管理する専門用語辞書114の一例である。同図に示すように、専門用語辞書114には、単語1141、単語カテゴリ1142、および抽出元テキスト1143の各項目を有する複数のレコードで構成される。専門用語辞書114の一つのレコードは一つの単語に対応する。
【0051】
上記項目のうち、単語1141には、文書情報テーブル111のテキスト1112から専門用語辞書作成処理部130が抽出した単語のテキストデータが格納される。単語カテゴリ1142には、単語カテゴリ判定モデル113により判定された、当該単語が属するカテゴリが格納される。抽出元テキスト1143には、当該単語の抽出元の文書データであるテキストデータが格納される。
【0052】
図7は、図1に示した記憶部110が管理する構文木テーブル116の一例である。構文木テーブル116には、文書情報テーブル111のテキスト1112を構文解析することによって取得した各構文木の構造を表す情報が格納される。同図に示すように、例示する構文木テーブル116は、行ID1161、文節1162、親ノードID1163、子ノードID1164、構文木頂点ID1165、専門用語1166、および抽出元の文1167の各項目を有する複数のレコードで構成される。
【0053】
上記項目のうち、行ID1161にはその行を示すIDが格納される。なお、行ID1161に格納されるIDは、当該行に対応するノードのIDに相当する。文節1162には、構文木を構成するノードとなる文節の内容が格納される。親ノードID1163には、構文木において親子関係にあるノードのうち、親ノードの情報が格納されたレコードの行ID1161の値が格納される。子ノードID1164には、構文木において親子関係にあるノードのうち、子ノードの情報が格納されたレコードの行ID1161の値が格納される。構文木頂点ID1165には、当該行に対応するノードが属する構文木の頂点に位置するノードのID、すなわち、当該頂点ノードの情報が格納されたレコードの行ID1161の値が格納される。専門用語1166には、文節1162に含まれる単語(専門用語)と、その単語が属するカテゴリとのペアが格納される。このペアは例えば複数格納されていても良い。抽出元の文1167には、文節1162の抽出元のテキスト1112中の一文が格納される。
【0054】
図8は、図1に示した記憶部110が管理する構造データテーブル117の一例である。構造データテーブル117には、専門用語関係性推定処理部150にて関係性有りと判定された同一構文木上の各ノードに対応する単語の情報が格納される。同図に示すように、例示する構造データテーブル117は、行ID1171、単語:部品名1172、単語:現象名1173、単語:原因名1174、単語:処置名1175、抽出元の文1176の各項目を有する複数のレコードで構成される。
【0055】
上記項目のうち、行ID1171にはその行を示すIDが格納される。単語:部品名1172、単語:現象名1173、単語:原因名1174、単語:処置名1175には、互いに関係性があるとして関連付けされた専門用語の組み合わせがカテゴリごとに格納される。なお、専門用語を格納するこれらのカラムは例示した4種類に限定されず、単語カテゴリリスト112に記載された各カテゴリにつき、それぞれ一つずつカラムを構造データテーブル117に設定しても良い。抽出元の文1176には、各専門用語の抽出元であるテキストが格納される。これは、構文木テーブル116の抽出元の文1167に対応している。また、ユーザは、文書構造化システム1が提供するユーザインタフェースを介して、構造データテーブル117の内容の参照、編集等を行うことができる。
【0056】
図9は、図1に示した記憶部110が管理する構文木内専門用語テーブル118の一例である。構文木内専門用語テーブル118は、専門用語関係性推定処理部150にて作成された木構造データが表す構文木の中に含まれる各ノードに対応する単語の情報が格納される。同図に示すように、例示する構文木内専門用語テーブル118は、専門用語1181、カテゴリ1182、構文木頂点との関係性距離1183、抽出元の文1184の各項目を有する複数のレコードで構成される。
【0057】
上記項目のうち、専門用語1181には、ノードに対応する単語(専門用語)の情報が格納される。これは、構文木テーブル116の専門用語1166に対応している。カテゴリ1182には、専門用語1181が属するカテゴリが格納される。構文木頂点との関係性距離1183には、専門用語1181が属するノードから構文木の頂点に位置するノードまでの関係性距離が格納される。抽出元の文1184には、専門用語1181の抽出元であるテキストが格納される。これは、構文木テーブル116の抽出元の文1167や、構造データテーブル117の抽出元の文1176に対応している。
【0058】
図10は、図1に示した記憶部110が管理するユーザ設定ルールテーブル120の一例である。ユーザ設定ルールテーブル120には、後述する文書構造化ルール編集画面2100にてユーザが設定した専門用語同士の関連付けのルールを示す値が格納される。同図に示すように、例示するユーザ設定ルールテーブル120は、構文木上の関係性距離1201、カテゴリA1202、カテゴリB1203の各項目を有する複数のレコードで構成される。
【0059】
上記項目のうち、構文木上の関係性距離1201には、構文木上の任意の2つのノードに対する関係性距離の条件が格納される。カテゴリA1202には、構文木上の任意の2つのノードのうち一方のノードに含まれる専門用語が属するカテゴリの条件が格納される。カテゴリB1203には、もう一方のノードに含まれる専門用語が属するカテゴリの条件が格納される。これらの内容は、文書構造化ルール編集画面2100にてユーザが指定することができる。
【0060】
続いて、文書構造化システム1において行われる処理について説明する。
【0061】
図11は、文書情報テーブル111に管理されている文書データに基づき、当該文書データに含まれる複数の単語のうち関係性がある単語の組み合わせを抽出して互いに関連付け、その結果を表す構造データテーブル117を生成することで文書データの構造化を行う処理(以下、「文書構造化処理S1300」と称する。)を説明するフローチャートである。以下、同図とともに文書構造化処理S1300について説明する。文書構造化処理S1300は、例えば、ユーザ装置2を介してユーザから明示的な指示があったことや予めスケジューリングされたタイミングが到来したこと等を契機として、文書構造化装置100のプロセッサ11により開始される。
【0062】
同図に示すように、まず専門用語辞書作成処理部130が、文書情報テーブル111に管理されている文書データから単語を抽出し、抽出した単語を専門用語辞書114に登録する処理(以下、「専門用語辞書作成処理S1311」と称する。)を行う。専門用語辞書作成処理S1311の詳細については後述する。
【0063】
続いて、構文解析処理部140が、文書情報テーブル111のテキスト1112に対して構文解析を実施した結果から、テキスト1112中の文節の係り受け情報を木構造データにまとめた構文木を取得し、構文木の構成を構文木テーブル116に格納する処理(以下、「構文解析処理S1312」と称する。)を行う。構文解析処理S1312の詳細については後述する。
【0064】
続いて、専門用語関係性推定処理部150が、専門用語辞書114に登録された専門用語について、構文木テーブル116に格納された構文木の構成情報を用いて専門用語同士に関係性が有るかを判定し、判定の結果に応じて関係性が有る単語群をカテゴリごとに構造データテーブル117に格納する処理(以下、「専門用語関係性推定処理S1313」と称する。)を行う。専門用語関係性推定処理S1313の詳細については後述する。
【0065】
なお、以上の処理のうち、専門用語辞書作成処理S1311については、例えば、構文解析処理S1312および専門用語関係性推定処理S1313とは独立したタイミングで実行するようにしてもよい。例えば、専門用語辞書作成処理S1311の処理は、文書情報テーブル111が更新されたことを契機として実行し、一方、構文解析処理S1312および専門用語関係性推定処理S1313の処理については、例えば、ユーザ装置2を介してユーザからの文書構造化要求(構造データテーブル117の作成要求)を受け付けたことを契機として実行するようにしてもよい。
【0066】
図12は、図11に示した専門用語辞書作成処理S1311の詳細を説明するフローチャートである。以下、同図とともに専門用語辞書作成処理S1311について説明する。
【0067】
まず、専門用語辞書作成処理部130が、文書情報テーブル111を取得する(S1411)。
【0068】
続いて、専門用語辞書作成処理部130は、文書情報テーブル111のレコードを一つ選択する(S1412)。
【0069】
続いて、専門用語辞書作成処理部130は、選択したレコードのテキスト1112に格納されているテキストデータから単語を抽出する。なお、専門用語辞書作成処理部130は、例えば、上記テキストデータについて形態素解析を行うことにより単語を抽出する。そして専門用語辞書作成処理部130は、抽出した単語の一つ(以下、「単語W」と称する。)を選択する(S1413)。
【0070】
続いて、専門用語辞書作成処理部130は、単語カテゴリ判定モデル113を取得する(S1414)。
【0071】
続いて、専門用語辞書作成処理部130は、単語カテゴリリスト112を取得する(S1415)。
【0072】
続いて、専門用語辞書作成処理部130は、S1414,S1415でそれぞれ取得した単語カテゴリ判定モデル113と単語カテゴリリスト112を用いて、単語Wが属するカテゴリを算出する(S1416)。
【0073】
続いて、専門用語辞書作成処理部130は、単語Wと、S1416で求めた単語Wのカテゴリと、文書情報テーブル111において単語Wの抽出元の文を表すテキスト1112に格納されているテキストデータとに基づき、これらに対応する各項目(単語1141、単語カテゴリ1142、抽出元テキスト1143)が設定されたレコードを生成して、専門用語辞書114に登録する(S1417)。
【0074】
続いて、専門用語辞書作成処理部130は、S1413でテキストデータから抽出した全ての単語を単語Wとして選択済みか否かを判定する(S1418)。全ての単語を選択済みでなければ(S1418:NO)、処理はS1413に戻り、未選択の単語を単語Wとして選択して、以上と同様の処理(S1413~S1417の処理)を行う。一方、抽出した全ての単語を単語Wとして選択済みであれば(S1418:YES)、処理はS1419に進む。
【0075】
S1419では、専門用語辞書作成処理部130は、文書情報テーブル111の全てのレコードをS1412で選択済みか否かを判定する。全てのレコードを選択済みでなければ(S1419:NO)、処理はS1412に戻り、未選択のレコードを選択して以上と同様の処理(S1412~S1418の処理)を行う。一方、全てのレコードを選択済みであれば(S1419:YES)、専門用語辞書作成処理S1311を終了する。その後は、文書構造化処理S1300の次のステップ(構文解析処理S1312)に進む。
【0076】
専門用語辞書作成処理部130は、以上説明した処理を実行することにより、文書情報テーブル111に格納された文書データの各文から単語を抽出し、抽出した単語とそのカテゴリの情報を専門用語辞書114に登録することができる。
【0077】
図13は、図11に示した構文解析処理S1312の詳細を説明するフローチャートである。以下、同図とともに構文解析処理S1312について説明する。
【0078】
まず、構文解析処理部140が、文書情報テーブル111および専門用語辞書114を取得する(S1511)。
【0079】
続いて、構文解析処理部140は、文書情報テーブル111のレコードを一つ選択する(S1512)。
【0080】
続いて、構文解析処理部140は、選択したレコードのテキスト1112に格納されている一つ以上の文からなるテキストデータから、文を一つ抽出する。(S1513)。
【0081】
続いて、構文解析処理部140は、抽出した文に対して形態素解析と構文解析を行い、その文に含まれる文節同士の依存関係を推定することで、文節同士の係り受け関係を特定する。その後、特定した文節同士の係り受け関係をノードと枝を組み合わせた木構造で表現することにより、抽出した文の構文木を取得する(S1514)。具体的には、抽出した文に含まれる各文節をそれぞれノードに対応付け、依存関係のある文節のノード同士を枝で繋ぐことにより、構文木を作成する。なお、形態素解析や構文解析の手法は必ずしも限定されず、例えば、公知の各種自然言語処理手法(固有表現抽出、単語依存関係解析、意味解析等)や、公知の各種機械学習手法(深層学習(DNN(Deep Neural Network)、RNN(Recurrent Neural Network)等)を用いることができる。
【0082】
続いて、構文解析処理部140は、取得した構文木中のノードを一つ選択する(S1515)。
【0083】
続いて、構文解析処理部140は、選択したノードに含まれる専門用語を、専門用語辞書114を用いて検知する(S1516)。
【0084】
続いて、構文解析処理部140は、選択したノードに対応する構文木の情報を構文木テーブル116に格納する(S1517)。ここでは、当該ノードのID、当該ノードに含まれる文節、当該ノードに対応する親ノードや子ノードのID、当該ノードが属する構文木の頂点ノードのID、当該ノードに含まれる文節中の専門用語とそのカテゴリのペア、構文木の抽出元となった文書データの文を取得し、これらに対応する各項目(行ID1161、文節1162、親ノードID1163、子ノードID1164、構文木頂点ID1165、専門用語1166、抽出元の文1167)が設定されたレコードを生成して、構文木テーブル116に登録する。なお、レコードの各項目について、値が存在しない項目には「Null」を格納する。
【0085】
続いて、構文解析処理部140は、S1514で取得した構文木中のノードを、S1515ですべて選択済みであるか否かを判定する(S1518)。構文木中に未選択のノードが存在する場合(S1518:NO)、処理はS1515に戻り、未選択のノードのいずれかを選択して、以上と同様の処理(S1515~S1517の処理)を行う。一方、全てのノードを選択済であれば(S1518:YES)、処理はS1519に進む。
【0086】
続いて、構文解析処理部140は、S1512で選択したレコード内のテキスト1112に含まれる文を、S1513ですべて選択済みであるか否かを判定する(S1519)。当該レコードのテキスト1112に未選択の文が存在する場合(S1519:NO)、処理はS1513に戻り、未選択の文のいずれかを選択して、以上と同様の処理(S1513~S1518の処理)を行う。一方、全ての文を選択済みであれば(S1519:YES)、処理はS1520へ進む。
【0087】
続いて、構文解析処理部140は、S1511で取得した文書情報テーブル111内のレコードを、S1512ですべて選択済みであるか否かを判定する(S1520)。文書情報テーブル111に未選択のレコードが存在する場合(S1520:NO)、処理はS1512に戻り、未選択のレコードのいずれかを選択して、以上と同様の処理を行う(S1512~S1519)。一方、全てのレコードを選択済みであれば(S1520:YES)、構文解析処理S1312を終了する。その後は、文書構造化処理S1300の次のステップ(専門用語関係性推定処理S1313)に進む。
【0088】
構文解析処理部140は、以上説明した処理を実行することにより、文書データに含まれる各文の単語同士の係り受け関係を木構造で表した構文木を作成し、作成した構文木の情報を構文木テーブル116に登録することができる。
【0089】
図14は、図11に示した専門用語関係性推定処理S1313の詳細を説明するフローチャートである。以下、同図とともに専門用語関係性推定処理S1313について説明する。
【0090】
まず、専門用語関係性推定処理部150が、構文木テーブル116を取得し、構文木テーブル116に含まれる複数のレコードのうち抽出元の文1167が共通しているレコード同士をまとめて、一つまたは複数のレコード群を生成する(S1611)。
【0091】
続いて、生成したレコード群を一つ選択する(S1612)。
【0092】
続いて、専門用語関係性推定処理部150は、選択したレコード群から、専門用語1166の値が「Null」でないレコードを一つ(以下「レコードR」と称する)選択する(S1613)。
【0093】
続いて、専門用語関係性推定処理部150は、選択したレコード群から、レコードRを頂点とする構文木情報を取得する(S1614)。ここでは、構文木テーブル116においてレコードRの行ID1161と同じ値が構文木頂点ID1165に格納されている各レコードを、レコードRを頂点とする構文木情報として取得する。
【0094】
続いて、専門用語関係性推定処理部150は、ユーザから最小関係性距離ルール適用の要求があるか否かを判定する(S1615)。最小関係性距離ルールとは、構文木中の各単語(専門用語)の組み合わせのうち、構文木上での関係性距離が最も近く、かつカテゴリが互いに異なる単語同士の間に関係性が有ると判定するルールである。例えば、ユーザ装置2に実装された後述する構造データ編集画面2000を介して、ユーザが最小関係性距離ルールの適用を指示する所定の入力操作を行うと、この入力操作の内容が、ユーザ装置2から文書構造化装置100内の専門用語関係性推定処理部150に送信される。これにより、ユーザは文書構造化装置100に対して、最小関係性距離ルールの適用を要求することが可能である。ユーザから最小関係性距離ルール適用の要求が無い場合(S1615:NO)、処理はS1617に進む。ユーザから最小関係性距離ルール適用の要求がある場合(S1615:YES)、処理はS1616に進む。
【0095】
S1616では、専門用語関係性推定処理部150は、最小関係性距離ルール適用処理を実行する。最小関係性距離ルール適用処理の詳細については、図15を参照して後述する。最小関係性距離ルール適用処理を終了したら、処理はS1617に進む。
【0096】
続いて、専門用語関係性推定処理部150は、ユーザからユーザ設定ルールの適用の要求があるか否かを判定する(S1617)。ユーザ設定ルールとは、構文木中の各単語(専門用語)の組み合わせの中に、ユーザ設定ルールテーブル120に記載された構文木上の関係性距離1201、カテゴリA1202、カテゴリB1203の各条件を満たすペアが存在する場合、そのペアの単語間に関係性が有ると判定するルールである。例えば、ユーザ装置2に実装された後述する構造データ編集画面2000を介して、ユーザがユーザ設定ルールの適用を指示する所定の入力操作を行うと、この入力操作の内容が、ユーザ装置2から文書構造化装置100内の専門用語関係性推定処理部150に送信される。これにより、ユーザは文書構造化装置100に対して、ユーザ設定ルールの適用を要求することが可能である。ユーザからユーザ設定ルール適用の要求が無い場合(S1617:NO)、処理はS1619に進む。ユーザからユーザ設定ルール適用の要求がある場合(S1617:YES)、処理はS1618に進む。なお、ユーザ設定ルールテーブル120は、例えば、ユーザ装置2に実装された後述する文書構造化ルール編集画面2100を用いて、ユーザが任意に編集可能である。
【0097】
S1618では、専門用語関係性推定処理部150は、ユーザ設定ルール適用処理を実行する。ユーザ設定ルール適用処理の詳細については、図16を参照して後述する。ユーザ設定ルール適用処理を終了したら、処理はS1619に進む。
【0098】
続いて、専門用語関係性推定処理部150は、S1612で選択したレコード群中の全レコードを選択済みであるか否かを判定する(S1619)。当該レコード群に未選択のレコードが存在する場合(S1619:NO)、処理はS1613に戻り、未選択のレコードを選択して、以上と同様の処理を行う(S1613~S1618)。一方、全てのレコードを選択済であれば(S1619:YES)、処理はS1620に進む。
【0099】
続いて、専門用語関係性推定処理部150は、S1611で生成したレコード群の全てを選択済みであるか否かを判定する(S1620)。未選択のレコード群が存在する場合(S1620:NO)、処理はS1612に戻り、未選択のレコード群を選択して、以上と同様の処理を行う(S1612~S1619)。一方、全てのレコードを選択済であれば(S1620:YES)、専門用語関係性推定処理S1313を終了する。そして、文書構造化処理S1300を終了する。
【0100】
図15は、図14のS1616で実行される最小関係性距離ルール適用処理の詳細を説明するフローチャートである。以下同図とともに、最小関係性距離ルール適用処理について説明する。なお、最小関係性距離ルール適用処理には、S1614で取得したレコードRを頂点とする構文木情報が入力される。
【0101】
まず、専門用語関係性推定処理部150は、入力された構文木情報に基づき、その構文木中に出現するいずれかの単語が属する専門用語カテゴリ(以下「カテゴリC」と称する)を選択する(S1711)。
【0102】
続いて、専門用語関係性推定処理部150は、構文木の頂点にあるレコードRのノードと、カテゴリCに属する各ノードとの間で、それぞれの関係性距離を計算する(S1712)。ここでは、入力された構文木情報においてカテゴリCに属する単語が専門用語1166に格納されているレコードを抽出し、当該レコードが表すノードとレコードRが表す頂点ノードとの間に存在する枝の本数を、構文木情報における各レコードの親ノードID1163や子ノードID1164の値から求めることにより、関係性距離を計算することができる。なお、構文木の頂点ノードを表すレコードRの専門用語1166において、カテゴリCに属する単語が格納されている場合は、頂点ノードとカテゴリCに属するノードとの関係性距離は0として扱う。
【0103】
続いて、専門用語関係性推定処理部150は、カテゴリCに属するノードが構文木上で親子関係にあるか否かを判定する(S1713)。ここでは、入力された構文木情報においてカテゴリCに属する単語が専門用語1166に格納されているレコードを抽出し、その中で親子関係にあるノードを表すレコードの組み合わせが存在するか否かを、各レコードの親ノードID1163や子ノードID1164の値から判断することができる。カテゴリCに属して親子関係にあるノードの組み合わせが一つも存在しない場合(S1713:NO)、処理はS1715に進む。カテゴリCに属して親子関係にあるノードの組み合わせが少なくとも一つ存在する場合(S1713:YES)、処理はS1714に進む。
【0104】
S1714において、専門用語関係性推定処理部150は、S1713で親子関係にあると判定したノードの組み合わせについて、子ノードの構文木頂点からの関係性距離を、S1712で計算した親ノードの関係性距離と同じ値に更新する。この処理により、親ノードと子ノードの両方に属する専門用語に対して最小関係性距離ルールを適用し、他の単語を関連付けることが可能になる。
【0105】
S1715において、専門用語関係性推定処理部150は、カテゴリCに属する単語の中で構文木の頂点との関係性距離が最小の単語群を取得する。ここでは、S1712で頂点ノードとの関係性距離を計算したカテゴリCに属する各ノードの中で、その値が最小のノード群を選択する。このとき、S1713で親子関係にあると判定された子ノードについては、S1714で親ノードと同じ値に更新された関係性距離を用いる。これにより、構文木において頂点ノードに対する関係性距離が最も近いノードをカテゴリCについて抽出し、抽出した各ノードに対応する単語と頂点ノードに対応する単語との間に関係性があると判定することができる。
【0106】
続いて、専門用語関係性推定処理部150は、S1715で取得した単語群の情報を構文木内専門用語テーブル118に格納する(S1716)。ここでは、S1715で選択したノード群を表す各レコードの専門用語1166と抽出元の文1167にそれぞれ格納されている情報や、S1712で計算した関係性距離の値から、専門用語、専門用語が属するカテゴリ、専門用語が属するノードの構文木頂点との関係性距離、抽出元の文を取得し、これらに対応する各項目(専門用語1181、カテゴリ1182、構文木頂点との関係性距離1183、抽出元の文1184)が設定されたレコードを生成して、構文木内専門用語テーブル118に登録する。
【0107】
続いて、専門用語関係性推定処理部150は、入力された構文木情報に含まれる全ての単語のカテゴリを、S1711でカテゴリCとして選択済みであるか否かを判定する(S1717)。構文木情報において未選択のカテゴリが存在する場合(S1717:NO)、処理はS1711に戻り、未選択のカテゴリのいずれかをカテゴリCとして選択して、以上と同様の処理を行う(S1711~S1716)。一方、全てのカテゴリを選択済みであれば(S1717:YES)、処理はS1718に進む。
【0108】
S1718では、専門用語関係性推定処理部150は、構文木内専門用語テーブル118に登録された各レコードが表す単語の中から、いずれかの単語をカテゴリごとに一つずつ選択する。ここでは、単語カテゴリリスト112に記載のカテゴリごとに、一つずつ単語を選択する。なお、構文木内専門用語テーブル118において該当する単語が存在しないカテゴリがある場合、そのカテゴリにおいて単語選択は行わない。
【0109】
続いて、専門用語関係性推定処理部150は、S1718でカテゴリごとに選択した単語の情報を構造データテーブル117に格納する(S1719)。ここでは、選択した各単語およびそのカテゴリの組み合わせと、構文木内専門用語テーブル118において当該単語に対応するレコードの抽出元の文1184の内容から、これらの単語間に関係性があることを表す各項目(行ID1171、単語:部品名1172、単語:現象名1173、単語:原因名1174、単語:処置名1175、抽出元の文1176)が設定されたレコードを生成して、構造データテーブル117に登録する。このとき、単語カテゴリリスト112の内容に応じて、レコード中の単語をどの項目に格納するか(例えば、単語:部品名1172、単語:現象名1173、単語:原因名1174、単語:処置名1175)が変化する。
【0110】
続いて、専門用語関係性推定処理部150は、構文木内専門用語テーブル118に登録された各レコードが表す単語のカテゴリごとの全ての組み合わせを、S1718で選択済みであるか否かを判定する(S1720)。構文木内専門用語テーブル118においてカテゴリごとに取りうる単語の組み合わせの中に未選択の組み合わせが存在する場合(S1720:NO)、処理はS1718に戻り、未選択の組み合わせのいずれかを選択して、以上と同様の処理を行う(S1718~S1719)。一方、全ての組み合わせを選択済みであれば(S1720:YES)、最小関係性距離ルール適用処理を終了する。その後は、専門用語関係性推定処理S1313の次のステップ(S1617)に進む。
【0111】
専門用語関係性推定処理部150は、以上説明した処理を実行することにより、構文木において頂点ノードに対する関係性距離が最も近いノードをカテゴリごとに抽出し、抽出したノードに対応する単語と頂点ノードに対応する単語との間に関係性があると判定して、構造データテーブル117に登録することができる。
【0112】
図16は、図14のS1618で実行されるユーザ設定ルール適用処理の詳細を説明するフローチャートである。以下同図とともに、ユーザ設定ルール適用処理について説明する。なお、ユーザ設定ルール適用処理には、S1614で取得したレコードRを頂点とする構文木情報が入力される。
【0113】
まず、専門用語関係性推定処理部150は、入力された構文木情報に基づき、構文木上で専門用語を含む各ノード間の関係性距離を計算する(S1811)。ここでは図15のS1712と同様に、各ノード間に存在する枝の本数を、構文木情報における各レコードの親ノードID1163や子ノードID1164の値から求めることにより、関係性距離を計算することができる。
【0114】
続いて、専門用語関係性推定処理部150は、ユーザ設定ルールテーブル120を取得する(S1812)。
【0115】
続いて、専門用語関係性推定処理部150は、取得したユーザ設定ルールテーブル120からレコードを一つ選択する(S1813)。
【0116】
続いて、専門用語関係性推定処理部150は、選択したレコードに記載された各条件を満たすノードのペアが構文木上に存在するか否かを判定する(S1814)。ここでは、入力された構文木情報が表す各構文木において、S1813で選択したレコードの構文木上の関係性距離1201、カテゴリA1202、カテゴリB1203にそれぞれ格納されている条件を満たすノードのペアが存在するか否かを判定する。具体的には、例えば、構文木上のある単語Aと単語Bにそれぞれ対応するノードのペアについて、これらの間に存在する枝の本数が選択したレコードに記載されている構文木上の関係性距離1201の値と同値であり、かつ、単語Aのカテゴリが当該レコードに記載されているカテゴリA1202と一致し、単語Bのカテゴリが当該レコードに記載されているカテゴリB1203と一致する場合に、これらのノードのペアが選択したレコードの条件を満たしていると判定する。このような判定の結果、選択したレコードに記載の値を満たすノードのペアが存在しない場合(S1814:NO)、処理はS1816に進む。一方、選択したレコードに記載の値を満たすノードのペアが存在する場合(S1814:YES)、処理はS1815に進む。
【0117】
続いて、専門用語関係性推定処理部150は、ユーザ設定ルールテーブル120中で選択したレコードの値を満たすとS1814で判定されたノードのペアに対応する単語のペアの情報を構造データテーブル117に格納する(S1815)。ここでは、S1813で選択したレコードの構文木上の関係性距離1201、カテゴリA1202、カテゴリB1203にそれぞれ格納されている条件の内容と、構文木内専門用語テーブル118において当該単語のペアにそれぞれ対応するレコードの抽出元の文1184の内容から、これらの単語間に関係性があることを表す各項目(行ID1171、単語:部品名1172、単語:現象名1173、単語:原因名1174、単語:処置名1175、抽出元の文1176)が設定されたレコードを生成して、構造データテーブル117に登録する。このとき、図15のS1719の場合と同様に、単語カテゴリリスト112の内容に応じて、レコード中の単語をどの項目に格納するか(例えば、単語:部品名1172、単語:現象名1173、単語:原因名1174,単語:処置名1175)が変化する。
【0118】
続いて、専門用語関係性推定処理部150は、S1812で取得したユーザ設定ルールテーブル120内の全てのレコードを、S1813で選択済みであるか否かを判定する(S1816)。ユーザ設定ルールテーブル120において未選択のレコードが存在する場合(S1816:NO)、処理はS1813に戻り、未選択のレコードのいずれかを選択して、以上と同様の処理を行う(S1813~S1815)。一方、全てのレコードを選択済みであれば(S1816:YES)、ユーザ設定ルール適用処理を終了する。その後は、専門用語関係性推定処理S1313の次のステップ(S1619)に進む。
【0119】
専門用語関係性推定処理部150は、以上説明した処理を実行することにより、構文木の各ノードに対応する各単語の中で、関係性距離およびカテゴリが予め設定された条件をそれぞれ満たす単語のペアを抽出し、抽出した単語のペア同士の間に関係性があると判定して、構造データテーブル117に登録することができる。
【0120】
続いて、文書構造化処理S1300の出力結果である構造データテーブル117の編集や、専門用語関係性推定処理S1313で用いるユーザ設定ルールテーブル120の編集を行うことが出来るユーザインタフェースについて説明する。
【0121】
図17に、構造データ編集画面2000の一例を示す。図17に例示する構造データ編集画面2000は、構造データテーブル117に格納された文書構造データをユーザに提示して編集させるための画面であり、データ出力部160により文書構造化装置100から出力されるデータに基づいてユーザ装置2に表示される。構造データ編集画面2000は、文書構造化実施ボタン2001、文書入力フォーム2002、構造化に使用するルール選択欄2003、ルール編集ボタン2004、構造データ表示欄2005、構造データ修正ボタン2006、構造データ保存ボタン2007を有する。
【0122】
ユーザは、例えば、文書入力フォーム2002に構造化したい文書を入力し、ルール選択欄2003の少なくとも一つ以上のルールを選択してから、文書構造化実施ボタン2001を押すことにより、入力した文書に関して選択されたルールを用いて文書構造化処理S1300を文書構造化装置100に実施させ、その処理結果を示す文書構造データを構造データテーブル117から取得して、構造データ表示欄2005に表示させることができる。そしてユーザは、構造データ表示欄2005の行ごとに設置された構造データ修正ボタン2006を押すことで、文書構造データの対応する行の内容を修正することができる。修正した文書構造データは、構造データ保存ボタン2007を押すことにより、構造データテーブル117に保存してその内容を更新できる。なお、文書構造化処理S1300を行うためのユーザ設定ルールは、後述する文書構造化ルール編集画面2100にて編集が可能である。ユーザは、ルール編集ボタン2004を押すことにより、ユーザ装置2に表示される画面を、構造データ編集画面2000から文書構造化ルール編集画面2100に遷移させることができる。
【0123】
図18に、文書構造化ルール編集画面2100の一例を示す。図18に例示する文書構造化ルール編集画面2100は、ユーザ設定ルールテーブル120に新たなユーザ条件を登録するとともに、ユーザ設定ルールテーブル120において既に格納されているユーザ条件をユーザに提示して編集させるための画面であり、データ出力部160により文書構造化装置100から出力されるデータに基づいてユーザ装置2に表示される。文書構造化ルール編集画面2100は、構造データ編集画面2000にて入力された文書中の各行が表示されるテキスト表示欄2101、テキスト表示欄2101の行ごとに設置される行選択ボタン2102、選択された行の構文木2103、選択された行内の専門用語2104とそのカテゴリ2105、構文木2103中でユーザが選択した2つのノード間の関係性距離2106、2つのノードにそれぞれ含まれる専門用語のカテゴリA2107およびカテゴリB2108、ルール追加ボタン2109、既存のユーザ設定ルールテーブル120の表示欄2110、ルール修正ボタン2111、ルール更新ボタン2112を有する。
【0124】
ユーザは、例えば、行選択ボタン2102を押してテキスト表示欄2101の行を一つ選択することで、その行の構文木2103と、構文木に含まれる専門用語2104と、専門用語が属するカテゴリ2105とを表示できる。そしてユーザは、構文木中の専門用語が含まれるノードを2つ選択することにより、これらのノード間の構文木上の関係性距離2106と、一方のノード中の専門用語が属するカテゴリA2107と、もう一方のノード中の専門用語が属するカテゴリB2108とを表示できる。さらにユーザは、ルール追加ボタン2109を押すことで、これらの項目からなるレコードをユーザ設定ルールテーブル120に追加することができる。文書構造化ルール編集画面2100の下部には、既存のユーザ設定ルールテーブル120の内容が表示欄2110に表示される。ユーザは、表示欄2110の各行に対し、ルール修正ボタン2111を押すことで、その行の内容を任意に修正できる。その後、ルール更新ボタン2112を押すことで、修正内容をユーザ設定ルールテーブル120に保存することができる。
【0125】
以上に説明したように、本実施形態の文書構造化システム1は、文書データから作成した専門用語辞書114と、文書データを構文解析した結果により得られた構文木テーブル116とを用いて、文書データを構造データテーブル117に示す意味上の関係性がある専門用語をまとめた表形式のデータに構造化する。このとき、専門用語の意味上の関係性の推定に構文木上の関係性距離を用いたルールを用いることで、ユーザは少ない負荷で効率良く構造データテーブル117の作成が出来る。また、構文解析で得られる構文木上の関係性距離を用いて関係性の推定を行うため、文書データの量によらず、高精度に専門用語同士の関連付けが可能である。
【0126】
以上説明した本発明の実施形態によれば、以下の作用効果を奏する。
【0127】
(1)文書構造化装置100は、プロセッサ11とメモリである主記憶装置12とを備える。プロセッサ11は、1つまたは複数の文により構成される文書データの各文から単語を抽出する専門用語辞書作成処理部130(専門用語辞書作成処理S1311)と、文書データの各文の文節にそれぞれ対応する複数のノードと、複数のノード間を接続する枝とを用いて、単語同士の係り受け関係を木構造で表した構文木を作成する構文解析処理部140(構文解析処理S1312)と、構文解析処理部140により作成された構文木における枝の本数に基づいて単語間の関係性距離を計算し、その関係性距離に基づいて単語間での関係性の有無を判定して、関係性があると判定した単語同士を互いに関連付ける専門用語関係性推定処理部150(専門用語関係性推定処理S1313)と、として機能する。このようにしたので、少ないデータ量から省工数で高精度に単語間の関連付けを行うことができる。
【0128】
(2)専門用語関係性推定処理部150は、構文木の各ノードに対応する各単語をカテゴリごとに分類し(S1711)、カテゴリが異なる単語間で関係性距離を計算する(S1712)。具体的には、専門用語関係性推定処理部150は、文書データの同一の文から抽出された各単語について、構文解析処理部140により作成された複数の構文木の中から当該単語に対応するノードを頂点とする構文木を取得し(S1613,S1614)、取得した構文木における頂点と他の各ノードとの間でカテゴリごとに関係性距離を計算する(S1711,S1712)。このようにしたので、構文木を利用して各カテゴリの単語間の関係性距離を適切に計算することができる。
【0129】
(3)専門用語関係性推定処理部150は、構文木において頂点に対する関係性距離が最も近いノードをカテゴリごとに抽出し、抽出したノードに対応する単語と頂点に対応する単語との間に関係性があると判定する(S1715)。このようにしたので、最小関係性距離ルール適用処理において、構文木上のノード間の関係性距離から単語間の関係性の有無を適切に判断することができる。
【0130】
(4)専門用語関係性推定処理部150は、構文木において親子関係にある複数のノードが同一のカテゴリに属する場合(S1713:YES)、当該複数のノードの関係性距離を同じ値に設定する(S1714)。このようにしたので、構文木上で親と子の関係にある同一カテゴリのノードについて、これらのノードに対応する単語と他の単語間での関係性距離を適切に求めることができる。
【0131】
(5)専門用語関係性推定処理部150は、構文木の各ノードに対応する各単語の中で、関係性距離およびカテゴリが予め設定された条件をそれぞれ満たす単語のペアを抽出し、抽出した単語のペア同士の間に関係性があると判定する(S1814)。このようにしたので、ユーザ設定ルール適用処理において、予め設定された任意の条件を用いて単語間の関連付けを行うことができる。
【0132】
(6)文書構造化装置100は、上記の条件をユーザに編集させるためのユーザインタフェースである文書構造化ルール編集画面2100を、ユーザ装置2の表示装置に表示することができる。このようにしたので、ユーザ設定ルール適用処理において単語間の関連付けを行うための条件をユーザが任意に編集することが可能となる。
【0133】
(7)文書構造化装置100は、専門用語関係性推定処理部150による単語同士の関連付けの結果を表す文書構造データを出力するデータ出力部160を備える。この文書構造データは、図8に示すように、各単語のカテゴリを表す複数の列(単語:部品名1172、単語:現象名1173、単語:原因名1174、単語:処置名1175)と、各単語の関連付けの結果を表す複数の行(レコード)とを有し、互いに関連付けられた単語同士が同一の行内で当該単語が属するカテゴリの列にそれぞれ格納される表形式のデータ構造(構造データテーブル117)である。このようにしたので、文書データに含まれる単語同士の関連付けを文書構造データにおいて適切に表現し、ユーザに提示することができる。
【0134】
(8)文書構造化装置100は、上記の文書構造データをユーザに編集させるためのユーザインタフェースである構造データ編集画面2000を、ユーザ装置2の表示装置に表示することができる。このようにしたので、得られた文書構造データをユーザが任意に編集することが可能となる。
【0135】
(9)文書構造化装置100では、コンピュータであるプロセッサ11により、文書データの各文から単語を抽出し(S1413)、文書データの各文の文節にそれぞれ対応する複数のノードと、複数のノード間を接続する枝とを用いて、単語同士の係り受け関係を木構造で表した構文木を作成する(S1514)。そして、構文木における枝の本数に基づいて単語間の関係性距離を計算し(S1712,S1811)、この関係性距離に基づいて単語間での関係性の有無を判定し(S1715,S1814)、関係性があると判定した単語同士を互いに関連付けて記録する(S1719,S1815)。このようにしたので、少ないデータ量から省工数で高精度に単語間の関連付けを行うことができる。
【0136】
以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
【0137】
また、上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0138】
また、以上に説明した文書構造化装置100の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
【0139】
また、前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
【0140】
本発明は上記実施形態や変形例に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。また、各実施形態や変形例は任意に組み合わせて実施することも可能である。
【0141】
上記の実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0142】
1:文書構造化システム、2:ユーザ装置、4:データ管理装置、100:文書構造化装置、110:記憶部、111:文書情報テーブル、112:単語カテゴリリスト、113:単語カテゴリ判定モデル、114:専門用語辞書、116:構文木テーブル、117:構造データテーブル、118:構文木内専門用語テーブル、120:ユーザ設定ルールテーブル、130:専門用語辞書作成処理部、140:構文解析処理部、150:専門用語関係性推定処理部、160:データ出力部、2000:構造データ編集画面、2100:文書構造化ルール編集画面、S1300:文書構造化処理、S1311:専門用語辞書作成処理、S1312:構文解析処理、S1313:専門用語関係性推定処理
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18