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

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

▶ ハーディス株式会社の特許一覧

特許7095874自然言語の解析システム、解析方法およびプログラム
<>
  • 特許-自然言語の解析システム、解析方法およびプログラム 図1
  • 特許-自然言語の解析システム、解析方法およびプログラム 図2A
  • 特許-自然言語の解析システム、解析方法およびプログラム 図2B
  • 特許-自然言語の解析システム、解析方法およびプログラム 図3
  • 特許-自然言語の解析システム、解析方法およびプログラム 図4
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5A
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5B
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5C
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5D
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5E
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5F
  • 特許-自然言語の解析システム、解析方法およびプログラム 図5G
  • 特許-自然言語の解析システム、解析方法およびプログラム 図6
  • 特許-自然言語の解析システム、解析方法およびプログラム 図7
  • 特許-自然言語の解析システム、解析方法およびプログラム 図8
  • 特許-自然言語の解析システム、解析方法およびプログラム 図9
  • 特許-自然言語の解析システム、解析方法およびプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】自然言語の解析システム、解析方法およびプログラム
(51)【国際特許分類】
   G06F 40/211 20200101AFI20220628BHJP
   G06F 40/279 20200101ALI20220628BHJP
   G06F 16/00 20190101ALI20220628BHJP
【FI】
G06F40/211
G06F40/279
G06F16/00
【請求項の数】 9
(21)【出願番号】P 2019006592
(22)【出願日】2019-01-18
(65)【公開番号】P2020115303
(43)【公開日】2020-07-30
【審査請求日】2021-02-02
(73)【特許権者】
【識別番号】511244296
【氏名又は名称】ハーディス株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】荒牧 利充
【審査官】佐賀野 秀一
(56)【参考文献】
【文献】特開2018-067199(JP,A)
【文献】特開平04-264972(JP,A)
【文献】特開2013-246522(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00- 40/58
G06F 16/00
(57)【特許請求の範囲】
【請求項1】
解析対象となる解析対象文を取得する文章取得部と、
前記解析対象文を文節または複文節に分解した文節データを生成する文節分解部と、
前記文節データの構文解析のために、前記文節または複文節からDAGデータを生成するDAG生成部と
を備え
前記文節分解部は、前記解析対象文を単語に分解して、前記単語のそれぞれを予め定められたカテゴリに分類し、
前記カテゴリ毎に予め定められた識別符号と、前記単語とが対応付けられた助詞テーブルを作成する助詞テーブル設定部をさらに備え、
前記文節分解部は、前記助詞テーブルに基づいて、前記分解された単語を連結することにより、文節または複文節を生成する
解析システム。
【請求項2】
前記DAG生成部は、前記解析対象文の一連の文節または複文節に付された前記識別符号のパターンが保存された接続パターンテーブルに基づいて、前記文節または複文節から前記DAGデータを生成する
請求項1に記載の解析システム。
【請求項3】
過去のDAGデータの構造データを含むDAG構造情報を取得するDAG構造情報取得部を更に備え、
前記DAG生成部は、前記DAG構造情報に基づいて、前記DAGデータを生成する
請求項1または2に記載の解析システム。
【請求項4】
前記DAGデータの共有ノードを許可する重複単語が登録された重複単語テーブルを有する重複単語設定部をさらに備え、
前記DAG生成部は、前記DAGデータの内容が、前記重複単語テーブルに登録された前記重複単語と一致する場合に、前記内容に対応するノードを共有ノードに設定する
請求項1からのいずれか一項に記載の解析システム。
【請求項5】
前記DAG生成部は、前記解析対象文の文節あるいは複文節に含まれる単語と、他の解析対象文の文節あるいは複文節に含まれる単語との一致率を算出して、前記一致率が予め定められた閾値以上の場合に、ノードを共有する
請求項1からのいずれか一項に記載の解析システム。
【請求項6】
解析対象となる解析対象文を取得する段階と、
前記解析対象文を文節または複文節に分解した文節データを生成する段階と、
前記文節データの構文解析のために、前記文節または複文節からDAGデータを生成する段階と
を備え
前記文節データを生成する段階は、
前記解析対象文を単語に分解して、前記単語のそれぞれを予め定められたカテゴリに分類する段階と、
前記カテゴリ毎に予め定められた識別符号と、前記単語とが対応付けられた助詞テーブルを作成する段階と、
前記助詞テーブルに基づいて、前記分解された単語を連結することにより、文節または複文節を生成する段階と、
を有する
解析方法。
【請求項7】
前記DAGデータの共有ノードを許可する重複単語が登録された重複単語テーブルを設定する段階をさらに備え、
前記DAGデータを生成する段階は、前記DAGデータの内容が、前記重複単語テーブルに登録された前記重複単語と一致する場合に、前記内容に対応するノードを共有ノードに設定する段階を有する請求項6に記載の解析方法。
【請求項8】
前記DAGデータを生成する段階は、前記解析対象文の文節あるいは複文節に含まれる単語と、他の解析対象文の文節あるいは複文節に含まれる単語との一致率を算出して、前記一致率が予め定められた閾値以上の場合に、ノードを共有する段階を有する
請求項6または7に記載の解析方法。
【請求項9】
請求項6から8のいずれか一項に記載の解析方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語の解析システム、解析方法およびプログラムに関する。
【背景技術】
【0002】
従来、統計や確率などの数理的な言語解析手法による形態素解析と、構文木や抽象構文木などの構文解析を用いてデータ構造を生成することが知られている(例えば、特許文献1参照)。
特許文献1 特開2017-191457号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の構文木や抽象構文木を用いた解析システムでは、得られたデータ構造から、検索用語と直接関連のない情報を取得することが困難であるという課題がある。
【課題を解決するための手段】
【0004】
本発明の第1の態様においては、解析対象となる解析対象文を取得する文章取得部と、解析対象文を文節または複文節に分解した文節データを生成する文節分解部と、文節データの構文解析のために、文節または複文節から有向非循環グラフ(DAG:Directed Acyclic Graph)のデータ構造を生成するDAG生成部とを備える解析システムを提供する。
【0005】
本発明の第2の態様においては、解析対象となる解析対象文を取得する段階と、解析対象文を文節または複文節に分解した文節データを生成する段階と、文節データの構文解析のために、文節または複文節からDAGデータを生成する段階とを備える解析方法を提供する。
【0006】
本発明の第3の態様においては、本発明の第2の態様に係る解析方法をコンピュータに実行させるためのプログラムを提供する。
【0007】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0008】
図1】解析システム100の構成の概要を示す。
図2A】情報取得処理を実行するためのフローチャートの一例である。
図2B】DAG生成処理を実行するためのフローチャートの一例である。
図3】DAG生成部40が生成したDAGの一例を示す概念図である。
図4】より具体的な解析システム100の構成の一例を示す。
図5A】単語分解テーブルの一例を示す。
図5B】助詞テーブルの一例を示す。
図5C】文節組立テーブルの一例を示す。
図5D】接続パターンテーブルの一例を示す。
図5E】重複単語テーブルの一例を示す。
図5F】ノードテーブルの一例を示す。
図5G】リンクテーブルの一例を示す。
図6】解析システム100で用いられるGUI画面の一例を示す。
図7】解析システム100をハードウェアとして実現する場合の構成の一例である。
図8】DAG生成部40が生成したDAGの一例を示す概念図である。
図9】DAG生成部40が生成したDAGの一例を示す概念図である。
図10】解析システム100として機能するコンピュータ1900のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0009】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0010】
図1は、解析システム100の構成の概要を示す。解析システム100は、文章取得部10と、文節分解部20と、助詞テーブル設定部30と、DAG生成部40と、出力部50と、DAG構造情報取得部60と、重複単語設定部70とを備える。
【0011】
文章取得部10は、解析対象となる解析対象文を取得する。文章取得部10は、複数の解析対象文を取得してもよい。解析対象文は、文章毎に入力されてもよいし、段落毎に入力されてもよい。解析対象文は、ユーザによってキーボードから入力されてもよいし、音声入力等の他の入力方法により入力されてもよい。例えば、解析対象文は、医療分野においては、各病気の症状等に関する情報を含む。
【0012】
文節分解部20は、解析対象文を文節または複文節に分解した文節データを生成する。一例において、文節分解部20は、解析対象文を単語に分解して、単語のそれぞれを予め定められたカテゴリに分類する。そして、文節分解部20は、分解された単語を連結することにより、文節または複文節を生成する。例えば、文節分解部20は、解析対象文を漢字、ひらがな、カタカナ、数字、アルファベットおよび特殊文字等の単語に分割する。文節分解部20は、後述する助詞テーブルに基づいて、分解された単語を連結して文節データを生成する。
【0013】
助詞テーブル設定部30は、カテゴリ毎に予め定められた識別符号と、単語とが対応付けられた助詞テーブルを作成する。助詞テーブルは、事前に登録されてよい。助詞テーブルは、文節分解部20により参照される。助詞テーブルについては後述する。
【0014】
DAG生成部40は、文節データの構文解析のために、分解された文節または複文節からDAGデータを生成する。本例のDAG生成部40は、文節あるいは複文節を識別符号のパターンに基づいてDAGデータを作成する。本例のDAGは、文章を構成する文節または複文節をノードとして、関連付けられたものである。
【0015】
出力部50は、DAG生成部40が生成したDAGデータを出力する。出力部50は、解析システム100の外部の装置にDAGデータを出力してもよいし、ディスプレイ等の表示部にDAGデータを出力して表示させてもよい。
【0016】
DAG構造情報取得部60は、DAG構造情報を取得する。DAG構造情報とは、解析対象文を解析することにより生成した、過去のDAGデータの構造に関する情報である。DAG構造情報取得部60は、DAG構造情報をDAG生成部40に入力する。DAG生成部40は、DAG構造情報に基づいてDAGデータを生成する。このように、DAG生成部40は、既存のDAG構造情報と、解析対象文の文節データとを組み合わせて、DAGデータを生成することができる。
【0017】
重複単語設定部70は、DAGデータの共有ノードを許可する重複単語を設定する。共有ノードとは、異なる解析対象文で重複する文節のノードを共有したものである。重複単語設定部70は、重複単語を検索して重複単語テーブルを生成する。例えば、重複単語設定部70は、複数回、発現する単語を調べてリストに表示する。重複単語設定部70は、複数回、発現する単語の中で共有する対象の単語を追加、修正および削除して重複単語テーブルを作成してもよい。また、重複単語設定部70は、文章の段落の中で複数回、発現する単語を調べてリストに表示する重複単語検索機能を有してもよい。
【0018】
DAG生成部40は、DAGデータに、設定された重複単語と一致する場合に、ノードを共有する。このように、重複単語を共有することにより、異なる解析対象文であっても、DAGデータにおいて関連付けることができる。
【0019】
本例の解析システム100は、解析対象文に応じたDAGデータを出力することができる。例えば、解析システム100は、解析対象文が医療に関する文章である場合、病気の症状についてのデータ構造を生成することができる。この場合、症状に関するキーワードで検索することにより、DAGデータから症状と関連する病気を検索することができる。
【0020】
図2Aは、情報取得処理を実行するためのフローチャートの一例である。解析システム100は、解析対象文を解析する前に、解析に必要な情報を取得する。本例の解析システム100は、ステップS200およびステップS202により、過去のDAG構造情報に基づいて各テーブルを取得する。本例のフローチャートは、情報取得処理の一例であり、これに限定されない。
【0021】
ステップS200において、解析システム100は、過去のDAG構造情報を取得する。過去のDAG構造情報とは、過去に解析システム100が解析対象文を解析したときに取得されたDAGの構造データである。但し、解析システム100は、過去のDAG構造情報を取得せずに解析対象文の解析を開始してもよい。
【0022】
ステップS202において、解析システム100は、助詞テーブルや重複単語テーブル等の各テーブルを取得する。解析システム100が記憶するテーブルについては後述する。これらのステップを通じて、解析システム100は、文章の解析に必要な情報を事前に取得しておく。
【0023】
図2Bは、DAG生成処理を実行するためのフローチャートの一例である。解析システム100は、ステップS204~ステップS210により、入力された解析対象文を解析してDAGデータをする。本例のフローチャートは、DAG生成処理の一例であり、これに限定されない。
【0024】
ステップS204において、解析対象文を取得する。一例において、解析対象文は、文章取得部10により取得される。例えば、解析対象文は、ユーザにより直接入力されてもよいし、他の装置から入力されてもよい。解析対象文は、通信回路を介して入力されてもよい。検索キーワードでWEBを検索して関連する複数の文献をプログラムにより自動的に取得し、解析対象文としてもよい。
【0025】
ステップS206において、文節データを生成する。例えば、文節分解部20は、解析対象文を単語に分解して、単語分解テーブルを作成する。次に、文節分解部20は、助詞テーブルを参照して単語に識別符号を付与する。次に、識別符号の付与されていない単語を結合して文節組立テーブルを作成する。
【0026】
ステップS208において、DAGデータを生成する。例えば、DAGデータは、DAG生成部40により、文節データに基づいて生成される。
【0027】
ステップS204~ステップS208は、入力された解析対象文に応じて繰り返されてよい。例えば、解析システム100は、入力された解析対象文の数だけ、ステップS204~ステップS208を繰り返す。ステップS204~ステップS208は、文章の数だけループされてもよいし、段落数分だけループされてもよい。ステップS204~ステップS208は、解析対象文が全て解析されるまで繰り返されてよい。
【0028】
ステップS210において、DAGデータが出力される。例えば、DAGデータは、出力部50により出力される。DAGデータは、後述するノードテーブルやリンクテーブルを含んでよい。
【0029】
なお、ステップS200~ステップS210は、解析システム100を構成する各ハードウェアによって実行されてよい。また、ステップS200~ステップS210は、プログラムによって、コンピュータに実行されてもよい。
【0030】
図3は、DAG生成部40が生成したDAGの一例を示す概念図である。本例のDAG生成部40は、風邪とインフルエンザの症状に関する解析対象文からDAGを作成している。(A-1)~(G-1)は、各ノードのノード番号を示す。
【0031】
文章取得部10は、複数の解析対象文を取得している。例えば、文章取得部10は、第1の解析対象文として、「一般的な風邪の症状は、鼻みず、咳、頭痛などである。」を取得する。また、文章取得部10は、第2の解析対象文として、「インフルエンザの症状は、頭痛、筋肉痛、高熱などである。」を取得する。
【0032】
文節分解部20は、解析対象文を文節または複文節に分解する。本例の文節分解部20は、「一般的な風邪の症状は、鼻みず、咳、頭痛などである。」を、「一般的な」、「風邪の症状は」、「鼻みず」、「咳」、「頭痛」、「などである。」にそれぞれ分解している。また、文節分解部20は、「インフルエンザの症状は、頭痛、筋肉痛、高熱などである。」を、「インフルエンザの症状は」、「頭痛」、「筋肉痛」、「高熱」、「などである。」にそれぞれ分解している。即ち、本例では、後述の通り、助詞テーブルには、「な」、「は」、「など」が登録されている。
【0033】
DAG生成部40は、第1の解析対象文について、各文節にノード番号を付している。例えば、ノード(A-1)は、「一般的な」という文節に対応する。ノード(B-1)は、「風邪の症状は」という文節に対応する。ノード(C-1)は、「鼻みず」という文節に対応する。ノード(C-2)は、「咳」という文節に対応する。ノード(C-3)は、「頭痛」という文節に対応する。ノード(D-1)は、「などである。」という文節に対応する。
【0034】
また、DAG生成部40は、第2の解析対象文についても同様に、各文節にノード番号を付している。例えば、ノード(E-1)は、「インフルエンザの症状は」という文節に対応する。ノード(F-2)は、「筋肉痛」という文節に対応する。ノード(F-3)は、「高熱」という文節に対応する。ノード(G-1)は、「などである。」という文節に対応する。このように、副助詞の「など」は、並列に接続されたノードを次のノードで集約している。
【0035】
本例の解析システム100は、リンクするパターンを直列か並列のいずれかに設定することにより、DAGを生成している。各ノードの接続を直列とするか、並列とするかは、助詞や副助詞に応じて決定されてよい。例えば、ノード(C-1)~(C-3)は、「は」と「などである。」に挟まれているので、並列に接続されている。また、ノード(C-3)、(F-2)および(F-3)も、「は」と「などである。」に挟まれているので、並列に接続されている。
【0036】
重複単語設定部70は、重複単語テーブルに「頭痛」を登録している。よって、DAG生成部40は、ノード(C-3)の「頭痛」を共有している。これにより、第1の解析対象文および第2解析対象文は、ノード(C-3)の「頭痛」によって関連付けられている。一方、重複単語設定部70は、重複単語テーブルに「などである。」という文節を登録していない。よって、DAG生成部40は、「などである。」を示すノード(D-1)および(G-1)を共有していない。
【0037】
以上の通り、解析システム100は、ノードを共有することにより、異なる解析対象文をDAGの形式で関連付けている。つまり、風邪とインフルエンザが別の病気であるものの、共通の症状である「頭痛」により、2つの病気がDAGで関連付けられている。解析システム100は、大規模な複数の文献の関連であっても、DAGによって表すことができる。そして、解析システム100は、文献を解析してDAGに追加することにより、自動的にDAGを成長させることができる。このように、解析システム100は、AIの学習エンジンとしても応用することができる。
【0038】
図4は、より具体的な解析システム100の構成の一例を示す。解析システム100の各手段は、任意のハードウェア構成により実現されてよく、プログラムによって実現されてもよい。
【0039】
文節分解部20は、単語分解手段22と、単語分類手段24と、文節組立手段26とを有する。単語分解手段22は、解析対象文を単語に分解する。
【0040】
単語分類手段24は、分解された単語を予め定められたカテゴリに分類する。例えば、カテゴリには、漢字、ひらがな、順接の接続助詞、並列の接続助詞、読点、副助詞、句点等が含まれる。そして、単語分類手段24は、カテゴリに対応して、分解された単語に識別符号を付してよい。例えば、単語分類手段24は、ひらがなのうち、順接に用いる助詞「は」、並列の「や」、副助詞の「など」、句読点の「、」および「。」に一致する単語に識別符号を付与する。
【0041】
文節組立手段26は、識別符号に基づいて、文節を組み立てる。文節組立手段26は、識別符号が付与されていない単語を、それに続く識別符号の付与された単語が登場するまで連結する。これにより、文節または連文節が組み立てられる。
【0042】
助詞テーブル設定部30は、助詞テーブル取得手段32および助詞テーブル記憶手段34を有する。助詞テーブル取得手段32は、後述する助詞テーブルを取得する。助詞テーブル記憶手段34は、助詞テーブルを記憶する。助詞テーブルは、単語分類手段24によって、助詞テーブル記憶手段34から読み出される。
【0043】
DAG生成部40は、DAG作成手段42と、ノード結合手段44と、閉ループチェック手段46とを有する。DAG作成手段42は、解析対象文からDAGを作成する。ノード結合手段44は、生成されたDAGのノードを、他のDAGのノードと結合する。閉ループチェック手段46は、ノード結合手段44が生成したDAGの閉ループをチェックする。
【0044】
また、DAG生成部40は、トポロジカル・ソートによるリンクの閉ループを修正する機能を有してもよい。DAG生成部40は、Kahnの手法とTarjanの手法を組み合わせることで、閉ループの原因となるノードとリンクを調べることができる。DAG生成部40は、ループがあった場合、該当するリンクのリンク先ノードを新たに作成してリンク先を修正することにより閉ループを回避する。
【0045】
重複単語設定部70は、重複単語テーブル取得手段72および重複単語テーブル記憶手段74を有する。重複単語テーブル取得手段72は、後述する重複単語テーブルを取得する。重複単語テーブル記憶手段74は、重複単語テーブル取得手段72が取得した重複単語テーブルを記憶する。重複単語テーブル記憶手段74は、記憶した重複単語テーブルをノード結合手段44に出力してもよい。
【0046】
図5Aは、単語分解テーブルの一例を示す。本例の単語分解テーブルは、図3のDAGを生成するために用いられてよい。本例の単語分解テーブルは、番号、単語、分類、識別符号の欄を有する。各単語には、分類および識別符号が付されている。
【0047】
文節分解部20は、分解された単語のそれぞれを予め定められたカテゴリに分類する。例えば、カテゴリには、漢字、ひらがな、順接の接続助詞、並列の接続助詞、読点、副助詞、句点等が含まれる。但し、単語の分類方法は、本例に限られない。
【0048】
文節の組立てに用いられる単語には、分類のカテゴリに対応した識別符号が付されている。一例において、文節分解部20は、単語分解テーブルの表のひらがなのうち、予め定められたものに識別符号を付与する。例えば、順接の接続助詞である「な」および「は」には、識別符号として「2」を付与する。並列の接続助詞である「や」には、識別符号として「3」を付与する。並列の接続をひとつに纏める副助詞である「などである」には、識別符号として「5」を付与する。読点「、」には、識別符号として「4」を付与する。句点「。」には、識別符号として「13」を付与する。
【0049】
なお、文節分解部20は、文節の組立に用いない単語には識別符号を付与しなくてもよい。本例の文節分解部20は、文節の組立に用いない単語には、識別符号として「0」を付与している。
【0050】
図5Bは、助詞テーブルの一例を示す。本例の助詞テーブルは、図3のDAGを生成するために用いられてよい。
【0051】
助詞テーブルは、分類ごとに対応する助詞を保存している。例えば、順接には、助詞の「な」および「は」が含まれており、「2」の識別符号がそれぞれ対応付けられている。並列には、助詞の「や」が含まれており、「3」の識別符号が対応付けられている。複数順接には、助詞の「など」が含まれており、「5」の識別符号が対応付けられている。
【0052】
図5Cは、文節組立テーブルの一例を示す。本例の文節組立テーブルは、図3のDAGを生成するために用いられてよい。文節組立テーブルは、例えば、番号、文節や複文節、分類、区分および識別符号の欄を有する。各文節や複文節には、分類、区分および識別符号が付されている。
【0053】
文節分解部20は、識別符号の付いていない単語は連結して文節あるいは連文節にする。これにより、DAGのノードとなる文字列がなるべく意味のある塊となるので扱いやすくなる。例えば、「一般的な」の文節は、「一般的」の識別符号が「0」であり、「な」の識別符号が「2」であることから連結されている。そして、「一般的な」の文節は、助詞である「な」と同様に、区分が順接の接続助詞となっており、識別符号として「2」が付与されている。
【0054】
同様に、「風邪の症状は」の文節は、「風邪」、「の」および「症状」の識別符号が「0」であり、「は」の識別符号が「2」であることから連結されている。そして、「風邪の症状は」の文節は、助詞である「は」と同様に、区分が順接の接続助詞となっており、識別符号として「2」が付与されている。
【0055】
図5Dは、接続パターンテーブルの一例を示す。本例の接続パターンテーブルは、図3のDAGを生成するために用いられてよい。接続パターンテーブルには、解析対象文の一連の文節に付された識別符号のパターンが保存されている。DAG生成部40は、接続パターンテーブルに保存された識別符号のパターンを用いて一連鎖のDAGを作成する。
【0056】
一例において、DAG生成部40は、文節組立テーブルのパターン2-2-3-4-4-5に基づいて、一連鎖のDAGを作成する。例えば、パターン2-2は直列の接続を示す。パターン2―3において、2は分岐の始まりのノードを示す。パターン3-4-4は、並列のリンクを示す。パターン5は、並列の接続が収斂するノードを示す。これにより、DAG生成部40は、(A-1)→(B-1)と、(B-1)→(C-1)と、(B-1)→(C-2)と、(B-1)→(C-3)と、(C-1)→(D-1)と、(C-2)→(D-1)と、(C-3)→(D-1)と、リンク付けることができる。
【0057】
図5Eは、重複単語テーブルの一例を示す。本例の重複単語テーブルは、図3のDAGを生成するために用いられてよい。重複単語テーブルには、DAGの作成時に共有するための重複単語が登録されている。本例の重複単語テーブルには、「頭痛」および「高熱」が登録されている。したがって、DAGのノードに「頭痛」または「高熱」が存在する場合は、共有ノードとしてDAGが作成される。これにより、解析システム100は、解析対象文毎に一連鎖のDAGを作成するが、DAG間に重複した単語が存在する場合、重複単語として接続することで段落間の関連性をとることができる。
【0058】
なお、閉ループチェック手段46は、ノードが共有された場合に、閉ループをチェックしてよい。DAG生成部40は、閉ループが存在する場合に、新たにノードを作成して、閉ループを解除する。
【0059】
図5Fは、ノードテーブルの一例を示す。ノードテーブルは、DAG構造情報の一例である。本例のノードテーブルは、図3のDAGを生成するために用いられてよい。ノードテーブルには、ノード番号と、ノード番号に対応する内容が登録されている。
【0060】
具体的には、ノード(A-1)に対して「一般的な」という内容が登録されている。ノード(B-1)に対して「風邪の症状は」という内容が登録されている。ノード(C-1)に対して「鼻みず」という内容が登録されている。ノード(C-2)に対して「咳」という内容が登録されている。ノード(C-3)に対して「頭痛」という内容が登録されている。ノード(D-1)に対して「などである。」という内容が登録されている。
【0061】
図5Gは、リンクテーブルの一例を示す。リンクテーブルは、DAG構造情報の一例である。本例のリンクテーブルは、図3のDAGを生成するために用いられてよい。リンクテーブルには、ノードのリンク元と、そのリンク先が登録されている。ノードのリンク元と、そのリンク先は、接続パターンテーブルに基づいて決定されてよい。
【0062】
具体的には、「文節組立テーブル」の「番号1」の情報から「ノードテーブル」の(A-1)のノードを作成する。「文節組立テーブル」の「番号1」の識別符号は「2」なので順接を表す。また、「文節組立テーブル」の「番号2」の識別符号は「2」なので直列のリンクとなる。よって、リンク元のノード(A-1)に対して、リンク先にはノード(B-1)が登録されている。
【0063】
次に、「文節組立テーブル」の「番号3」の識別符号が「3」であり、「番号4」および「番号5」の識別符号が「4」なので並列を示す。「番号2」の識別符号は「2」であるから、「番号2」の次の文節から並列が始まる。「番号6」の識別符号は「5」であるから、「番号6」の文節で先の並列の文節が収斂する。よって、リンク元のノード(B-1)に対して、リンク先にはノード(C-1)~(C-3)が登録されている。また、リンク先のノード(D-1)に対して、リンク元にはノード(C-1)~(C-3)が登録されている。
【0064】
DAG生成部40は、ノードテーブルおよびリンクテーブルを用いてノードを接続することにより、DAGを作成することができる。DAG生成部40は、ノードテーブルと並行してリンクテーブルを作成してもよい。出力部50は、DAGデータとして、ノードテーブルおよびリンクテーブルを出力してもよい。
【0065】
図6は、解析システム100で用いられるGUI画面の一例を示す。本例のGUI画面では、ユーザによって、解析対象文の入力欄に解析対象文が入力される。解析対象文は、キーボードから入力されてもよいし、音声入力等の他の入力方法により入力されてもよい。また、文章取得部10は、解析対象文をデジタルデータで作成されたメディアから取得してもよい。文章取得部10は、インターネットにおいてリンクで関連付けされた各HTML文書プログラムで読み込んでもよい。解析システム100は、解析対象文の入力後に解析実行ボタンがクリックされることにより、解析対象文の解析を実行する。なお、GUI画面は、これに限定されない。
【0066】
図7は、解析システム100をハードウェアとして実現する場合の構成の一例である。解析システム100は、CPU110と、主メモリ120と、HDD130と、入力デバイス140と、ディスプレイ150とを備える。本例のハードウェア構成は、一例であり、これに限定されない。
【0067】
CPU110は、文章取得部10、文節分解部20およびDAG生成部40を実現するための各種演算処理を実行する。例えば、CPU110は、主メモリ120により読み出されたプログラムを参照して、プログラムで示される手順に従い各種演算処理を実行する。
【0068】
主メモリ120は、解析対象文の取得プログラム、文節分解プログラムおよびDAG生成プログラムを格納している。主メモリ120は、その他のプログラムを適宜格納していてもよい。また、主メモリ120には、複数のアドレスが割り当てられてよい。CPU110は、アドレスを特定し格納されているデータにアクセスすることにより、データを用いた演算処理を実行することができる。
【0069】
HDD130は、各テーブルを記憶するための記憶部として動作する。例えば、HDD130は、DAG構造情報、単語分解テーブル、文節組立テーブルおよび助詞テーブルを記憶している。また、HDD130には、複数のアドレスが割り当てられてよい。
【0070】
入力デバイス140は、文章を入力するためのユーザ入力装置である。例えば、入力デバイス140は、キーボード等の入力デバイスである。
【0071】
ディスプレイ150は、解析対象文を入力するためのGUI画面を表示する。ディスプレイ150は、解析システム100の動作に必要な情報を適宜表示してよい。また、ディスプレイ150は、解析システム100の解析結果を表示してもよい。
【0072】
なお、解析システム100のハードウェア構成は、「システムバス」などのデータ通信経路によって相互に接続されてよい。これにより、各ハードウェア間で情報の送受信や処理を実行する。
【0073】
ここで、解析システム100は、解析対象文を自動解析することによって、DAG構造情報を生成して、HDD130に記録する。例えば、ユーザが文章を入力すると、CPU110は、文節分解プログラムを実行し、テーブルを生成してHDD130に記録する。
【0074】
例えば、CPU110は、解析対象文として、「一般的な風邪の症状は、鼻みず、咳、頭痛などである。」などの文章を取得すると、当該文章に対して単語分解処理を実行して、「単語分解テーブル」を作成する。CPU110は、HDD130から主メモリ120に読み込んでおいた「助詞テーブル」を用いて「単語分解テーブル」の識別符号を付与する。その後、CPU110は、文節組立処理を実行して、「文節組立テーブル」を作成してHDD130に記録する。
【0075】
その後、CPU110は、DAG生成プログラムを実行して、「文節組立テーブル」の識別符号のパターンを解釈する。そして、CPU110は、「ノードテーブル」および「リンクテーブル」を作成する。そして、CPU110は、DAGデータ出力プログラムを解釈し、「ノードテーブル」および「リンクテーブル」を出力する。
【0076】
図8は、DAG生成部40が生成したDAGの一例を示す概念図である。本例の解析システム100は、文章を追加することによりDAG構造情報にデータを追加する。
【0077】
文章取得部10は、解析対象文として、第1の解析対象文である「インフルエンザの症状は、頭痛、筋肉痛、高熱などである。」と、第2の解析対象文である「高熱の場合は解熱剤の投与が必要である。」を取得する。なお、本例では、助詞テーブルには、「は」および「など」が登録されている。また、重複単語テーブルには、「高熱」が登録されている。
【0078】
解析システム100は、第1の解析対象文から、DAGデータ(D-1、E-1、E-2、E-3、F-1)を作成している。ここで、第2の解析対象文を追加する場合に「高熱」が一致し、且つ重複単語テーブルに「高熱」が登録されているので、ノード(E-3)が共有され、ノード(F-2)がノード(E-3)にリンクされる。
【0079】
なお、本例の解析システム100は、後述する一致率の計算方法を用いて、「高熱」と「高熱の場合には」を一致するものとして認定している。そして、解析システム100は、「高熱」と「高熱の場合には」を一致するものと判断して、DAG構造情報にデータを追加している。
【0080】
図9は、DAG生成部40が生成したDAGの一例を示す概念図である。なお、本例では、助詞テーブルには、「は」および「が」が登録されている。
【0081】
文章取得部10は、解析対象文として、第1の解析対象文である「インフルエンザの処方は日本ではA薬が投与される。」と、第2の解析対象文である「インフルエンザの処方箋はアメリカではB薬が投与される。」を取得する。
【0082】
解析システム100は、第1の解析対象文からDAGデータ(A-1、B-1、C-1)を作成している。解析システム100は、第1の解析対象文のDAGデータに、第2の解析対象文のDAGデータを追加している。
【0083】
本例のDAG生成部40は、解析対象文の文節あるいは複文節に含まれる単語と、他の解析対象文の文節あるいは複文節に含まれる単語との一致率を算出する。DAG生成部40は、一致率が予め定められた閾値以上の場合に、ノードを共有する。
【0084】
ノード結合手段44は、「インフルエンザの処方」に含まれる単語と、「インフルエンザの処方箋」に含まれる単語の一致率を算出する。例えば、ノード結合手段44は、第1の解析対象文のノード(A-1)の「インフルエンザの処方」の単語「インフルエンザ」、「処方」と、第2の解析対象文の「インフルエンザの処方箋」の単語「インフルエンザ」、「処方箋」を比較する。
【0085】
例えば、「インフルエンザ」が一致するので100%、「処方」と「処方箋」は2/3文字が一致するので66%、合わせて166/200=83%の一致率となる。解析システム100は、共有するための一致率を80%以上と設定した場合には「インフルエンザの処方」と「インフルエンザの処方箋」の文節が一致すると判断して、ノードを共有する。一方、ノード(B-1)とノード(B-2)の一致率は0%であるのでノードは新たに追加される。また、ノード(C-1)の一致率は100%なので共有される。よって、解析システム100は、第2の解析対象文について、(A-1)-(B-2)-(C-1)のようにリンクすることができる。
【0086】
以上の通り、解析システム100は、自然言語処理とDAGを用いて解析対象文を解析することにより、ビッグデータの文献を意味解析して、文脈を解析することができる。即ち、解析システム100は、検索キーワードと直接関連のない症状や病気の因果関係を考慮したデータ解析を実現することができる。
【0087】
また、解析システム100は、単に、自然言語処理において翻訳や文章の特徴を抜き出すことにとどまらず、DAGのデータ構造を用いて解析する。そのため、解析システム100は、機械の故障や病気の診断などの大規模な文献を解析する際に重要な因果関係を正しくデータとして保存することができる。よって、解析システム100は、因果関係に着目して文献を文節に分解したDAGのデータ構造を得ることができる。
【0088】
なお、解析システム100は、日本語に限られず、他の言語にも同様に適用することができる。この場合、各言語に特有のテーブルを各種記憶しておくことにより、各言語の文法や単語に応じた態様で日本語以外の言語にも適用できる。
【0089】
図10は、解析システム100として機能するコンピュータ1900のハードウェア構成の一例を示す。また、複数のコンピュータが協働して解析システム100として機能してもよい。
【0090】
実施例に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、および表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、およびDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、および入出力チップ2070を有するレガシー入出力部と、を備える。
【0091】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000およびグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010およびRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0092】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラムおよびデータを格納する。DVDドライブ2060は、DVD-ROM2095からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0093】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、および入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、および/または、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0094】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、DVD-ROM2095、またはICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。プログラムは、コンピュータ1900にインストールされ、コンピュータ1900を、解析システム100の各構成として機能させる。
【0095】
プログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である文章取得部10、文節分解部20、助詞テーブル設定部30、DAG生成部40、出力部50、DAG構造情報取得部60および重複単語設定部70の少なくとも一部として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の解析システム100が構築される。
【0096】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、またはDVD-ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置または通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0097】
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD-ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、および/または記憶装置に含まれるものとする。
【0098】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(または不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0099】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0100】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、DVD-ROM2095の他に、DVD、Blu-ray(登録商標)、またはCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0101】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0102】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0103】
10・・・文章取得部、20・・・文節分解部、22・・・単語分解手段、24・・・単語分類手段、26・・・文節組立手段、30・・・助詞テーブル設定部、32・・・助詞テーブル取得手段、34・・・助詞テーブル記憶手段、40・・・DAG生成部、42・・・DAG作成手段、44・・・ノード結合手段、46・・・閉ループチェック手段、50・・・出力部、60・・・DAG構造情報取得部、70・・・重複単語設定部、72・・・重複単語テーブル取得手段、74・・・重複単語テーブル記憶手段、100・・・解析システム、110・・・CPU、120・・・主メモリ、130・・・HDD、140・・・入力デバイス、150・・・ディスプレイ、1900・・・コンピュータ、2000・・・CPU、2010・・・ROM、2020・・・RAM、2030・・・通信インターフェイス、2040・・・ハードディスクドライブ、2050・・・フレキシブルディスク・ドライブ、2060・・・DVDドライブ、2070・・・入出力チップ、2075・・・グラフィック・コントローラ、2080・・・表示装置、2082・・・ホスト・コントローラ、2084・・・入出力コントローラ、2090・・・フレキシブルディスク、2095・・・DVD-ROM
図1
図2A
図2B
図3
図4
図5A
図5B
図5C
図5D
図5E
図5F
図5G
図6
図7
図8
図9
図10