JP2022070523A - 意味表現解析システム及び意味表現解析方法 - Google Patents

意味表現解析システム及び意味表現解析方法 Download PDF

Info

Publication number
JP2022070523A
JP2022070523A JP2020179627A JP2020179627A JP2022070523A JP 2022070523 A JP2022070523 A JP 2022070523A JP 2020179627 A JP2020179627 A JP 2020179627A JP 2020179627 A JP2020179627 A JP 2020179627A JP 2022070523 A JP2022070523 A JP 2022070523A
Authority
JP
Japan
Prior art keywords
graph
token
semantic expression
input data
serialization
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.)
Pending
Application number
JP2020179627A
Other languages
English (en)
Inventor
太亮 尾崎
Hiroaki Ozaki
学 森尾
Manabu Morio
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
Priority to JP2020179627A priority Critical patent/JP2022070523A/ja
Priority to US18/025,742 priority patent/US20230351112A1/en
Priority to PCT/JP2021/030813 priority patent/WO2022091536A1/ja
Publication of JP2022070523A publication Critical patent/JP2022070523A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

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)
  • Document Processing Apparatus (AREA)

Abstract

【課題】種々の意味表現を統一的に精度よく解析する。【解決手段】意味表現解析システム100は、テキストまたはグラフによる入力データ210を受け付ける入力部110と、入力データ210に対応するグラフ構造を表すトークン列(直列化グラフ220)を生成する直列化グラフ生成部120と、を備える。さらに、直列化グラフ生成部120が生成するトークン列は、入力データ210に対応するグラフ構造におけるノードを示す第1トークンと、ノード間の関係を表す辺を示す第2トークンと、を少なくとも含んで構成される。【選択図】図1

Description

本発明は、意味表現解析システム及び意味表現解析方法に関し、入力されたデータの意味を解析し、意味を示すグラフ構造を構成する意味表現解析システム及び意味表現解析方法に適用して好適なものである。
従来、与えられたテキストに対する意味をグラフ構造を用いて表すことを意味表現解析と呼ぶ。意味表現解析は、文中の語の関係を解析する、所謂、構文解析や係り受け解析を広義に含み、また、必ずしも文中の語と対応しない抽象的な意味表現グラフを構成する技術や、数学などにおける文章題から計算式を表すグラフを構成する技術も含む。
意味表現解析を実現する手法としては、入力情報であるテキストを語(トークン)などに分割し、その列(入力トークン列)に対して操作(アクション)を施すことによって意味表現グラフを構成する「遷移による解析手法」と、入力トークン列に対して入力トークン間の関係を表す隣接行列を直接的に推定する「隣接行列による解析手法」とが存在する。
上記のような意味表現解析の実現には機械学習を用いることができる。遷移による解析手法の場合、スタックを有し、スタックと入力トークン列、及び実施したアクション等から素性を抽出したうえで、実施すべきアクションを識別することによって実現することができる。一方、隣接行列による解析手法の場合は、入力トークン列を用いて入力トークン間の接続性を表す実数値などを計算することで実現することができる。この実数値は、深層学習においては、所謂、注意機構を用いて計算することができる。
そして昨今の深層学習の進展により、より複雑、または抽象的な意味表現解析が可能となっている。例えば、AMR(Abstract Meaning Representation)という意味表現は、グラフ中のノードと文中の語に明確な対応関係が存在しないが、深層学習のエンコーダ・デコーダ機構を用いることで、文中に対応がないノードを生成することにより、遷移ないし隣接行列による手法で解析することができる。
また、意味表現グラフの種類は、それぞれの目的や用途の違いから多岐にわたり、種類ごとに精度の高い解析手法が異なることが知られている。
以上の背景技術に関連する従来技術として例えば、非特許文献1には、種々の意味表現グラフを遷移によって精度よく解析する手段が開示されている。また、非特許文献2には、遷移による解析手段が開示されており、種々の意味表現グラフを同一のアクションの集合を用いて解析することができる。
Wanxiang Che et.al.,HIT-SCIR at MRP 2019,A Unified Pipeline for Meaning Representation Parsing via Efficient Trainingand Effective Encoding Daniel Hershcovich et.al.,Multitask ParsingAcross Semantic Representation
しかし、上述した非特許文献1の技術は、種々の意味表現グラフを遷移による解析手法によって精度良く解析できる点で有用であるが、意味表現グラフの種類によってアクションを定義しなおす必要があり、種々の意味表現グラフを統一的に精度よく解析することはできないという問題があった。また非特許文献2の技術は、種々の意味表現グラフを同一のアクションの集合を用いて解析することができる点で有用であるが、解析対象とする意味表現グラフを全て解析可能とするアクションの集合は、意味表現グラフごとに最適化されたアクションの集合と比べると余分なアクションの実施が必要となってしまうため、同一の意味表現グラフを対象とした場合、非特許文献1の技術を用いた場合よりも解析精度が大幅に低下するという問題があった。
本発明は以上の点を考慮してなされたもので、種々の意味表現を統一的に精度よく解析することが可能な意味表現解析システム及び意味表現解析方法を提案しようとするものである。
かかる課題を解決するため本発明においては、入力データの意味表現を解析する意味表現解析システムであって、テキストまたはグラフによる前記入力データを受け付ける入力部と、前記入力データに対応するグラフ構造を表すトークン列を生成する直列化グラフ生成部と、を備え、前記トークン列は、前記入力データに対応するグラフ構造におけるノードを示す第1トークンと、前記ノード間の関係を表す辺を示す第2トークンと、を少なくとも含んで構成される、意味表現解析システムが提供される。
また、かかる課題を解決するため本発明においては、入力データの意味表現を解析する意味表現解析システムによる意味表現解析方法であって、テキストまたはグラフによる前記入力データを受け付ける入力ステップと、前記入力ステップで受け付けた前記入力データに基づいて、当該入力データに対応するグラフ構造を表すトークン列を生成する直列化グラフ生成ステップと、を備え、前記トークン列は、前記入力データに対応するグラフ構造におけるノードを示す第1トークンと、前記ノード間の関係を表す辺を示す第2トークンと、を少なくとも含んで構成される、意味表現解析方法が提供される。
本発明によれば、種々の意味表現を統一的に精度よく解析することができる。
実施例1に係る意味表現解析システム100の機能構成例を示すブロック図である。 意味表現解析システム100を実現するコンピュータ装置10のハードウェア構成例を示すブロック図である。 直列化グラフ生成部120の内部構成例を示すブロック図である。 意味表現グラフの一例を示す図である。 直列化グラフの一例を示す図である。 直列化グラフ変換部130の内部構成例を示すブロック図である。 トークン処理部131による処理の概要を示すフローチャートである。 実施例1における直列化グラフの変換手順を具体例で説明するための図である。 実施例1においてグラフの入力データから等価な直列化グラフを生成する処理の処理手順例を示すフローチャートである。 実施例2における直列化グラフの変換手順を具体例で説明するための図である。 実施例2においてグラフの入力データから等価な直列化グラフを生成する処理の処理手順例を示すフローチャートである。
以下、図面を参照して、本発明の実施例を詳述する。以下において、同一または類似する要素及び処理に対しては、同一の符号を付して差分を説明し、重複する説明を省略する。また、後出の実施例については、既出の実施例との差分を説明し、重複する説明を省略する。また、それぞれの実施例やその変形例は、本発明の趣旨と整合する範囲内で、一部または全部を組み合わせることができる。
図1は、実施例1に係る意味表現解析システム100の機能構成例を示すブロック図である。意味表現解析システム100は、テキストまたはグラフによる入力データ210を入力として、入力部110を介して直列化グラフ生成部120において直列化グラフ220を生成し、さらに直列化グラフ変換部130において直列化グラフ220を所望の形式に変換した後、出力部140において所定のグラフの形式に可視化した出力グラフ230を出力する。
ここで、意味表現解析システム100のハードウェア構成について先に説明する。意味表現解析システム100は、コンピュータ装置によって実現することができる。
図2は、意味表現解析システム100を実現するコンピュータ装置10のハードウェア構成例を示すブロック図である。
図2に示したように、コンピュータ装置10は、プロセッサ11、記憶デバイス12、入力デバイス13、出力デバイス14、及び通信インタフェース15を備えて構成され、各構成要素がバス16によって互いに接続される。
プロセッサ11は、コンピュータ装置10を制御する機能を有する。記憶デバイス12は、プログラム及びデータを記憶する不揮発性記憶装置または揮発性記憶装置を有する記憶媒体であって、プロセッサ11の作業領域となる。記憶デバイス12の具体的な記憶媒体は限定されるものではなく、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、またはSSD(Solid State Drive)といったフラッシュメモリ等を用いることができる。また、プロセッサ11及び記憶デバイス12は、GPU(Graphical Processing Unit)を用いたデバイスであってもよい。
具体的には、例えば、図1に示した意味表現解析システム100の各処理部(入力部110、直列化グラフ生成部120、直列化グラフ変換部130、出力部140)は、記憶デバイス12に記憶された一時的または非一時的なプログラムをプロセッサ11が実行することによって実現される。また、意味表現解析システム100で取り扱う入力データ210、直列化グラフ220、及び出力グラフ230等の各種データは、例えば記憶デバイス12に記憶される。この他にも例えば、後述する図6のノード・辺情報133で保持される各種データも、例えば記憶デバイス12に記憶される。
プロセッサ11は、単一または複数の処理ユニットで構成される。また、プロセッサ11は、単一または複数の演算ユニットと、複数の処理コアを含むことができる。プロセッサ11は、単一または複数の中央処理装置、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、マイクロ計算機、ステートマシン、ロジック回路、グラフィック処理装置、チップオンシステム、または制御指示等によって信号操作を行う任意の装置として実装される。
意味表現解析システム100を実現するコンピュータ装置10において、プロセッサ11によって実行されるプログラムには、OS(Operating System)を含むことができる。さらに、プロセッサ11によって実行されるプログラムには、意味表現解析システム100の各処理部の機能を実現するためのプログラム(例えば、入力部110のための入力プログラム、直列化グラフ生成部120のための直列化グラフ生成プログラム、直列化グラフ変換部130のための直列化グラフ変換プログラム、出力部140のための出力プログラム)等の各種プログラムを含むことができる。プロセッサ11、は上述したこれらのプログラムを実行し、動作することにより、入力部110、直列化グラフ生成部120、直列化グラフ変換部130、及び出力部140として機能することができる。
図2に示したコンピュータ装置10において、OSや各種プログラム等のソフトウェア要素は、記憶デバイス12のなかの何れかの記憶領域に格納される。OSや各種プログラムは、予め可搬型記録媒体に記録されていてもよく、その場合は、媒体読取装置によってプログラムを可搬型記録媒体から読み取り、記憶デバイス12に格納する。また、通信媒体を介してOSや各種プログラムを取得するようにしてもよい。
入力デバイス13は、ユーザによる意味表現解析システム100に対する命令及びデータ入力を実行する装置であって、具体的には例えば、マウス、キーボード、タッチパネル、マイク、またはスキャナ等で実現される。
出力デバイス14は、意味表現解析システム100からのデータ出力を実行する装置であって、具体的には例えば、ディスプレイ、プリンタ、またはスピーカ等で実現される。
通信インタフェース15は、コンピュータ装置10の外部ネットワークと接続して、意味表現解析システム100で扱う各種データの送受信を行う装置であって、具体的には例えば、NIC(Network Interface Card)等で実現される。意味表現解析システム100が通信インタフェース15を備えるコンピュータ装置10で実現されるとき、意味表現解析システム100は、外部ネットワークを介して別の端末からデータを送受信するように構成することができる。
なお、意味表現解析システム100は、図2に示したコンピュータ装置10のように単一の計算機(コンピュータ装置)で実装される構成に限定されるものではなく、複数の計算機(コンピュータ装置)からなる計算機システムによって実装されてもよい。その場合、計算機同士はネットワークを介して通信可能とされ、例えば言語モデル処理装置による複数の機能が複数の計算機に分けて実装される等してもよい。
意味表現解析システム100のハードウェア構成についての説明は以上であり、以下、図1に示した意味表現解析システム100の機能構成の説明に戻る。
まず、入力データ210及び入力部110について説明する。
前述したように、入力データ210はテキストまたはグラフの形式をとる。入力データ210がテキストである場合、当該テキストは、一般的には単文であるが、複数文であってもよいし、発話や非文などの文としての体裁をなさないテキストであってもよい。また、何らかのグラフ構造をなす記号列であってもよい。一方、入力データ210がグラフである場合は、当該グラフは、グラフ構造を持つ、意味を成す単位であればよい。以上を踏まえ、本実施例では、テキストによる入力データ210からの意味表現グラフの解析を事例として説明する。
入力部110は、ユーザが処理を行いたい入力データ210(上述したように、本例ではテキスト)を受け取り、入力データ210のテキストまたはグラフを、直列化グラフ生成部120による処理が可能な形態に変換する。具体的には例えば、意味表現解析システム100がキャラクタユーザインタフェース(CUI)を用いて入力データ210の入力を受け付ける場合、入力部110は、CUIを用いて入力されたテキストを適切な所定の文字コードのテキストデータ(例えばプレインテキスト等)に変換する。
なお、入力データ210がグラフである場合は、入力部110は、入力されたグラフ(入力グラフ)を直列化グラフに変換する。この段階で生成される直列化グラフは、入力グラフを等価な直列化グラフに変換したものであり、後述する直列化グラフ生成部120によって生成される直列化グラフとは異なるグラフであるが、既述形式としては同一であることが望ましい。以下の説明では、区別のために、前者の入力部110によって生成される直列化グラフを「入力グラフから変換された直列化グラフ」、後者の直列化グラフ生成部120によって生成される直列化グラフを「第1の直列化グラフ」と称することがある。但し、本発明は、入力グラフから変換された直列化グラフが第1の直列化グラフと同一の既述形式でなくても適用することが可能である。入力データ210がグラフ(入力グラフ)である場合に、入力部110が入力グラフと等価な入力グラフから変換された直列化グラフを生成する方法については、図9を参照しながら後述する。
次に、直列化グラフ生成部120及び直列化グラフ220について説明する。
直列化グラフ生成部120は、入力部110によってテキストの入力データ210から変換されたテキストデータをもとに、直列化グラフ220を生成し、直列化グラフ変換部130に出力する。直列化グラフ生成部120が生成する直列化グラフ220は、入力データ210であるテキストに対応する意味表現グラフを直列化したグラフである。なお、ここでいう直列化とは、意味表現グラフの辺がなす構造を表現することができる形式のうち、トークン列とみなすことができる形式に変換することを意味する。一般的に、テキストデータにそのまま出力可能な形式への変換は、直列化とみなすことができる。
図3は、直列化グラフ生成部120の内部構成例を示すブロック図である。図3に示したように、直列化グラフ生成部120は、トークン分割部121、系列生成部122、及び同一性判定部123を備える。
トークン分割部121は、入力部110から受信したテキストデータを適当なトークン単位に分割し、入力トークン列を生成し、生成した入力トークン列を系列生成部122に出力する。トークン分割部121による分割では、所謂、形態素解析を用いた語への分割や、文字単位への分割や、統計的な手法を用いた分割が行われ、あるいは、サブワード分割と呼ばれる、一般的な語よりも詳細で文字よりも粗い単位への分割が行われてもよい。トークン分割部121は、上記の分割手法のうち、系列生成部122にとって好適な分割手法を選択することができる。
系列生成部122は、トークン分割部121において生成された入力トークン列から、出力トークン列を生成し、生成した出力トークン列を同一性判定部123に出力する。系列生成部122は、一般的にエンコーダ・デコーダと呼ばれるニューラルネットワークで構成することが好適であるが、トークン列を入力にトークン列を出力できる手段であれば他の手段を利用してもよい。
系列生成部122にエンコーダ・デコーダのニューラルネットワークを用いる場合は、リカレントニューラルネットワークやTransformerを用いることが好適である。系列生成部122にこれらのニューラルネットワークを用いる際は、所謂、ビームサーチ等を利用する場合でも、出力トークンを1トークンずつ生成すると見なすことができる。
また、Transformerを用いる場合には、系列生成部122は、入力トークン列を数値化し、数値化した各トークンにone-hotベクトルを割り当て、エンコーダとなるTransformer(第1のTransformer)へと入力する。第1のTransformerは、上記one-hotベクトルに対して注意機構を用いた演算を適用し、各トークンに対する隠れ表現を取得する。そしてデコーダとなるTransformer(第2のTransformer)は、第1のTransformerから受け付けた隠れ表現と、デコーダ自身の隠れ表現とを用いて、注意機構を用いた演算を適用することにより、出力トークン列を取得する。
なお、本実施例において、ニューラルネットワークへの入力は、トークン列だけに限定されず、どのような情報を用いてもよい。その場合、例えば、品詞及び固有表現をトークン列と同時に入力する、等といった処理が考えられる。
また、エンコーダ・デコーダのニューラルネットワークに対して、エンコード時またはデコード時に追加情報を付与することもできる。このとき、例えば、出力中の系列(トークン列)のスタックにおける深さや親のノード等の情報を特徴ベクトルとして付与することが考えられる。
系列生成部122による出力トークン列の生成において、最初の出力トークンを生成する際は、一般的には、全入力トークンと開始を示す特殊トークンとを入力として生成を行う。また、出力トークン列の生成を終了する際は、終了を示す特殊トークンが生成されるか、ある所定数のトークン出力をもって終了とする。
また、系列生成部122は、各出力トークンの生成時には、全入力トークンとこれまでに生成した出力トークンとを入力とするが、当該出力トークンに代えて、出力トークンの隠れ表現や、隠れ表現から算出された種々の値や表現を用いるようにしてもよい。さらには、出力トークンから推定可能な情報を入力に含めることができる。例えば、出力トークンがノードを表すトークン(詳細は後述する)である場合、根ノードからの距離(すなわち、いくつの辺を通れば該ノードから根ノードに到達できるか)を入力に加えることができる。
同一性判定部123は、系列生成部122が生成した系列(出力トークン列)のうちから、意味表現グラフ上において同一のノードを表すトークンを判定し(同一性判定)、該当するトークンに同一性を示す情報を付与する。この同一性判定には、エンコーダ・デコーダのニューラルネットワークが生成する、所謂、隠れ表現などを利用することができる。より詳しくは、同一性判定部123がノードの同一性判定において隠れ表現を利用する場合、任意の2つのノードに対応するトークンの隠れ表現を入力とした識別器や、ノードに対応するトークンの隠れ表現間の関係を推定する注意機構などを利用することができる。直列化グラフ生成部120は、このような同一性判定部123を備えることにより、異なる構造の意味表現グラフであっても直列化グラフを生成する処理が可能となる。
以下、上述した直列化グラフ生成部120によって生成される直列化グラフ220について、具体例を挙げる。
図4は、意味表現グラフの一例を示す図である。図4に示した意味表現グラフ310は、「It didn’t take long.」という英文のテキストに対応する意味表現グラフである。また、図5は、直列化グラフの一例を示す図である。図5に示した直列化グラフ320は、図4に示した意味表現グラフ310に対応する直列化グラフの一例であり、入力データ210として上記の英文テキストが入力された場合に直列化グラフ生成部120が生成する直列化グラフ220の一例に相当する。
図5に示した直列化グラフ320は、意味表現グラフ310で「辺(エッジ)」がなす構造に対して等価の記述を与える。なお、図5では、見易さ向上のために、改行と空白(スペース)の挿入とを行って直列化グラフ320を表示しているが、実際の直列化グラフ320では改行は必ずしも必要ではなく、空白文字で区切られる各文字列を1つのトークンとして、系列(トークン列)をなす構造となっていればよい。
図5の直列化グラフ320において、スラッシュ記号「/」を含むトークンはノードを示すトークンであり、「ARG0」、「ARG1」は辺のラベルを示すトークンであり、「[EOD]」は辺の構造を示す特殊トークンである。スラッシュ記号よりも前に記載されている数字がノードのID(ノードID)を表し、スラッシュ記号に続く文字列がノードのラベル(ノードラベル)を表す。
また、図5の直列化グラフ320において、行頭が字下げされた位置から表記されているノードを示すトークンは、意味表現グラフ310上では子ノードに相当する。例えば、図5において、1行目の「take-10」に対して2行目の「it」と3行目の「long-03」は、字下げの関係になっており、これらのノードについて図4の意味表現グラフ310を見ると、「it」及び「long-03」が「take-10」の子ノードであることが分かる。
ここで、ノード「it」に着目すると、図4の意味表現グラフ310では1つのノードである一方、図5の直列化グラフ320では、2行目と4行目の2度に亘り「2/it」が出現している。同一性判定部123は、これらの「it」のように直列化グラフにおいて複数回出現する同一名称のノードの生成において、それらが同一のノードであれば同一のIDを付与する等の動作を行う。具体的には、図5の直列化グラフ320では、2行目の「it」と4行目の「it」には共にID「2」が付与されていることから、これらは同一のノードであることが明確にされる。
意味表現グラフ上のノードラベルは、グラフ中において唯一であることが必ずしも保証されていない。そのため、直列化グラフでは、同一のノードラベルであっても、唯一性を保証するために、上記のID情報等を付加する必要がある。
次に、直列化グラフ変換部130について説明する。
直列化グラフ変換部130は、直列化グラフ生成部120で生成された直列化グラフ220を、適切な形式に変換して、出力部140に送信する。
直列化グラフ生成部120は、ニューラルネットワーク等の機械学習方法などを用いて実現されるため、直列化グラフ生成部120によって生成された直列化グラフ220は、必ずしも、入力データ210に対して正しい直列化がなされた意味表現グラフを生成するものとは限らない。そこで、意味表現解析システム100では、直列化グラフ変換部130が、直列化グラフ生成部120が生成した意味表現グラフを表すグラフトークン列(直列化グラフ220)に対して、極力、意味表現グラフの辺情報を構築するための変換処理を行う。以下の説明では、区別のために、直列化グラフ変換部130によって変換される前の直列化グラフ(すなわち、直列化グラフ生成部120が生成した直列化グラフ220)を第1の直列化グラフ、直列化グラフ変換部130によって変換された後の直列化グラフを第2の直列化グラフと称することがある。
具体的には、直列化グラフ変換部130は、第1の直列化グラフのトークン列(グラフトークン列)を先頭から処理することで、グラフトークン列が不正な入力であっても、処理可能な範囲で辺情報を構成することができる。
図6は、直列化グラフ変換部130の内部構成例を示すブロック図である。図6に示したように、直列化グラフ変換部130は、トークン処理部131、トークン保持部132、ノード・辺情報133、及びグラフ整形部134を備える。
直列化グラフ変換部130においては、まず、第1の直列化グラフ(直列化グラフ220)のグラフトークン列がトークン処理部131に入力され、トークン処理部131によって逐次的に適切な処理が行われることにより、トークン保持部132への操作あるいはノード・辺情報133への操作の何れかが実施される。
図7は、トークン処理部131による処理の概要を示すフローチャートである。図7によればまず、直列化グラフ220から直列化されたグラフトークン列がトークン処理部131に入力される(ステップS101)。次に、トークン処理部131は、ステップS101で入力されたトークン列から以降の処理対象とするトークンを1つ選択し(ステップS102)、選択したトークンに対して適用するアクションを決定する(ステップS103)。
なお、図7のフローチャートでは、ステップS101で入力されたグラフトークン列に含まれる複数のトークンに対して、1つのトークンに対する処理を逐次実行する方法を示すが、トークン処理部131による処理はこのような方法に限定されるものではなく、例えば、ステップS102をスキップし、ステップS103において、ステップS101で入力されたグラフトークン列のそれぞれのトークンに対して適用するアクションを決定した上で、各トークンに対する以降の処理を実行する等としてもよい。
ステップS103におけるアクションの決定について詳しく説明する。本実施例に係る意味表現解析システム100では、トークンの種類ごとに対応するアクションが予め設定されている。そのため、ステップS103においてトークン処理部131は、処理対象のトークンの種類を同定する。
例えば図4に示した直列化グラフ320の場合、ノードに対応するトークン(例えば「1/take-10」や「2/it」)は、ノードIDとノードラベルとがスラッシュ記号で結ばれた記法で表される。このとき、辺ラベル(例えば「ARG0」や「ARG1」)にはスラッシュ記号が含まれないことが保証されているならば、トークン処理部131は、スラッシュ記号を含むトークンはノードに対応するトークンであると判別することができる。
したがって、直列化グラフのトークン記述形式は、トークンの種類を特定可能であればよい。そして、トークン処理部131は、直列化グラフのトークン記述形式に沿ったアクション判別方法を備え、ステップS103においては、このアクション判別方法に基づいてトークンの種類を判別することにより、トークンの種類に応じて定められたアクションを決定することができる。
次いで、トークン処理部131は、ステップS103で決定した適用するアクションの種類を確認し(ステップS104)、アクションの種類ごとに適当な処理を実行する(ステップS105~S107)。アクションの構成は様々に考えることができるが、一般性を失わずに大別すると、トークン処理部131は、トークン保持部132にトークンを追加する操作(ADD,ステップS105)、トークン保持部132にあるトークンを削除する操作(DELETE,ステップS106)、トークン保持部132にあるトークンを選択する操作(SELECT,ステップS106)、または辺を作成する操作(ARC,ステップS107)の何れかを実行する。これら4つのアクションのうち、ADD(ステップS105)及びDELETE/SELECT(ステップS106)はトークン保持部132への操作に相当する。また、ARCのアクションの場合は、ステップS107で辺を作成した後、作成した辺の情報をノード・辺情報133に出力する(ステップS108)ことから、ノード・辺情報133への操作に相当する。なお、ステップS108で出力される辺の情報には、辺の両端のノードの情報も含まれる。そして、ステップS108で出力された辺の情報はノード・辺情報133で保持される。
なお、図7の処理例においてトークンの種類に応じて適用するアクションの集合としては、ADDとARCは必須であるが、DELETE及びSELECTは少なくとも一方を具備していれば、任意の連結グラフを記述することができる。但し、既述の効率性等を考慮して、DELETEとSELECTの両方を具備するようにしてもよい。
そして、ステップS105~S108においてアクション別の処理が行われた後、トークン処理部131は、所定の終了条件を満たしたか否かを判定し(ステップS109)、終了条件を満たしていない場合は(ステップS109のNO)、ステップS102に戻り、次の処理対象のトークンを選択し、処理を繰り返す。一方、終了条件を満たした場合は(ステップS109のYES)、トークン処理部131による処理を終了する。
図8は、実施例1における直列化グラフの変換手順を具体例で説明するための図である。図8は、図7に示した処理手順によって、図4に示した意味表現グラフ310に対応する直列化グラフを変換する場合の具体的な遷移を説明するものであり、変換の際に一時的にトークンを保持するトークン保持部132としてスタックを利用する。
図8において、直列化グラフ330は、トークン処理部131による変換前の直列化グラフ(すなわち第1の直列化グラフ)を表す。本例では、図4に示した意味表現グラフ310に対応する直列化グラフ330として、図5に示した直列化グラフ320と同様の直列化グラフを用いる。但し、直列化グラフ330では、便宜上、意味表現グラフ310においてノード「long-03」の属性値を示す「polarity」に関するトークンの記載(図5の直列化グラフ320でいえば4行目に相当し、テキスト「didn’t」に対応する記載)は省略している。
また、図8において、処理トークン331は、トークン処理部131によって直列化グラフ330から選択される処理トークン(図7のステップS102参照)を表す。図8の場合、直列化グラフ330は10個のトークンから構成されており、その先頭トークンから順に処理トークンに選択されて変換処理が行われる。アクション332は、処理トークン331に対応して実行されるアクションの具体的内容を表す。スタック状態333は、各段階におけるスタックの保持状態を表す。
前述したように、図8で用いる直列化グラフ330は、図4の意味表現グラフ310を直列化したものである。このとき、便宜的に図4の意味表現グラフ310に存在する辺を3つの組で列挙すると、[take-10,it,ARG0]、[take-10,long-03,ARG1]、[long-03,it,ARG1]であり、以下では、トークン処理部131による変換処理が行われることにより、辺を表す上記3組が、過不足なく直列化グラフ330から生成できることを示す。図7でも説明したように、トークン処理部131による変換処理によれば、上記の3組の集合をノード・辺情報133に保持させることで、種々のグラフ記述形式に変換することができる。
図7及び図8を参照しながら具体的な変換手順を説明する。前述したように、本例ではトークン保持部132にスタックを用いており、その保持状態の遷移はスタック状態333に示される。
まず、1番目及び2番目に処理トークンとして選択される「1/take-10」及び「2/it」は、ノードを示すトークンであるため、ステップS103においてトークンを追加するアクション(ADD)が選択される。この場合、トークン処理部131は、ステップS105において当該トークンをスタック(トークン保持部132)に追加する。スタックは、後入れ先出し(LIFO:Last In Fast Out)の構造でデータを保持するため、2番目のトークン処理後のスタック状態333は、上から順に「it」、「take-10」のトークンを保持している。
3番目に処理トークンとして選択される「ARG0」は、辺を表すトークンであるため、辺を作成するアクション(ARC)が選択される(ステップS103)。この場合、トークン処理部131は、スタックの上から1番目と2番目のトークンを用いて辺[take-10,it,ARG0]を作成し(ステップS107)、作成した辺の情報をノード・辺情報133に出力する(ステップS108)。この際、辺の両端のノードの情報として、「take-10」はノードID「1」のノード、「it」はノードID「2」のノードとして、ノード・辺情報133に出力される。
4番目に処理トークンとして選択される[EOD]トークンは、DELETEを示す特殊トークンであるため、スタック(トークン保持部132)に保持されているトークンを1つ削除するアクション(DELETE)が選択される(ステップS103)。この場合、トークン処理部131は、スタックの上から1番目に保持されているトークン「2/it」を削除する(ステップS106)。なお、スタックに保持されたデータを削除するアクションは、「DELETE」の代わりに「POP」と呼ばれることもある。
以降、トークン処理部131は、同様に処理トークンの種類に応じてアクションの実施を繰り返す。
簡単に説明すると、5番目及び6番目には、ノードを示す「3/long-03」及び「2/it」が処理トークンとして選択されるため、トークンを追加するアクション(ADD)が選択され、処理トークンがスタック(トークン保持部132)に追加される。そして7番目では「ARG1」という辺を表すトークンが処理トークンとして選択されるため、スタックに保持されたデータを用いて新たな辺[long-03,it,ARG1]が作成され、ノード・辺情報133に出力される。なお、このとき、「2/it」は以前作成したノードと同一のノードID「2」を持つため、ノードID「3」のノードとして「long-03」のみが、ノード・辺情報133に新たなノードとして追加される。
次いで8番目には、DELETEを示す特殊トークンである[EOD]が処理トークンとして選択されるため、スタックの上から1番目にある「2/it」がスタックから削除される。この結果、トークン保持部132であるスタックには、上から「long-03」と「take-10」とが保持されている。
次いで9番目には、「ARG1」という辺を表すトークンが処理トークンとして選択されるため、スタックに保持されたデータを用いて新たな辺[take-10,long-03,ARG1]が作成され、ノード・辺情報133に出力される。なお、このとき、「take-10」及び「long-03」は何れも以前作成したノードと同一のノードIDを持つことから、ノード・辺情報133に新たなノードとして追加されない。
そして最後の10番目には、DELETEを示す特殊トークンである[EOD]が処理トークンとして選択されるため、スタックの上から1番目にある「long-03」がスタックから削除される。この結果、トークン保持部132であるスタックには、「take-10」のみが保持されている。
図8の場合、直列化グラフ330からも分かるように、10番目の[EOD]に対する処理をもって全ての処理トークンへの処理が終了することから、トークン処理部131は終了条件を満たしたと判定し(ステップS109のYES)、変換処理を終了する。
以上に説明した変換処理の結果をまとめると、[take-10,it,ARG0]、[long-03,it,ARG1]、[take-10,long-03,ARG1]の3組の辺が作成され、ノード・辺情報133には、これら各組の辺情報とともに、辺の両端のノード情報としてノードID「1」の「take-10」、ノードID「2」の「it」、及びノードID[3]の「long-03」が保持される。すなわち、上記の変換処理によって、便宜的な図4の意味表現グラフ310に存在する3つの辺を示す情報が、過不足なく直列化グラフ330から生成できる。言い換えれば、上記の変換処理を実行することにより、入力データ210から直列化グラフ生成部120によって生成された直列化グラフ330(第1の直列化グラフ)を、意味表現グラフ310と等価な第2の直列化グラフに変換することができる。
さらに、直列化グラフ変換部130では、ノード・辺情報133がノード及び辺の情報を保持することにより、任意のグラフ記述形式に変換することができる。次いで、グラフ整形部134は、ノード・辺情報133に保持された情報を用いて、所望のグラフ記述形式の仕様に従って、グラフを整形する。この整形では、ユーザがグラフを視覚的に理解できるように、例えば、数式、画像、ドット等の形式で出力するようにしてもよい。そして、グラフ整形部134は、整形したグラフのデータを出力部140に出力する。
また、上述した直列化グラフ変換部130の説明は、直列化グラフ生成部120で生成された直列化グラフ220(第1の直列化グラフ)を、任意のグラフ記述形式に対応させるために変換するためのものであったが、意味表現解析システム100において、直列化グラフ220そのものを出力するように構成する場合は、直列化グラフ変換部130において特段の処理を行わなくてもよい。
次に、出力部140及び出力グラフ230について説明する。
出力部140は、直列化グラフ変換部130から出力されたグラフのデータを、出力するインタフェースに適応するよう必要に応じて変形した上で、所定の出力装置から出力することにより、ユーザにグラフを提示する。ユーザにグラフを提示する手段は、例えばCUIによるグラフの表示や、GUIによるグラフの可視化、あるいはファイル等にグラフを書き出す処理等が考えられる。具体的には、図4に示した意味表現グラフ310は、可視化されたグラフ表示の出力例であり、CUIやファイルにグラフを書き出す場合は、図5や図8に示した直列化グラフ320等のような形態で出力することができる。
以上に説明したように、本実施例に係る意味表現解析システム100は、入力部110、直列化グラフ生成部120、直列化グラフ変換部130、及び出力部140を備えることにより、テキストによる入力データ210から意味表現グラフを解析することができる。
さらに、以下では、本実施例に係る意味表現解析システム100において、入力データ210がグラフである場合に、入力グラフと等価な、入力グラフから変換された直列化グラフを生成する方法について説明する。
図9は、実施例1においてグラフの入力データから等価な直列化グラフを生成する処理の処理手順例を示すフローチャートである。図9に示した処理は、入力データ210としてグラフが入力された場合に、入力部110によって実行される。また、図9に示した処理による直列化グラフの生成は、直列化グラフ生成部120において機械学習を用いる場合に、その学習用の教師データとする直列化グラフを生成することにも利用可能である。機械学習の学習用に直列化グラフを生成する場合も、例えば入力部110が処理を行うとしてよいが、別途図9の処理を実行する機能部を備えるようにしてもよい。
図9によればまず、グラフを構成するノード及び辺の情報が入力部110に入力される(ステップS201)。
次に、入力部110は、ステップS201で入力されたノード及び辺の情報によって示される入力グラフを、木様構造に変換する(ステップS202)。木様構造は、意味表現グラフのなかの根ノードを除く全てのノードに対して、それらの祖先ノード(グラフの矢印の元をたどって到達できるノード)に必ず根ノードを含む構造であるとする。木様構造と一般的な木構造との違いは、木様構造の場合は親ノードが1つとは限らないという点である。ステップS202における木様構造への変換は、図9の以後の処理を容易にするために実施される処理であるが、必ずしも必須の処理としなくてもよい。
また、前述したように、変換した木様構造においては、根ノードは複数存在しても構わないが、複数の根ノードを子に持つ仮想的な根ノードを追加することで、1つの根ノードのみを有するグラフと同一視することができため、根ノードは1つとして扱うことができる。
また、ステップS202において変換する木様構造のグラフを、1つの根ノードを持つ無向グラフであるとするとき、連結グラフである有向グラフを木様構造に変換するためには、矢印の向きを適切に反転させる必要がある。この場合、矢印の向きが反転していることを辺のラベル情報に付与することで矢印の向きの問題は解消することができるため、入力部110は、入力データ210として有向グラフが入力された場合でも、一般性を失うことなく、上記の木様構造に変換することができる。すなわち、当該変換においては、入力グラフを木様構造をなす部分グラフに分解し、部分グラフ間を接続する辺を判定することで実現することができる。このとき、部分グラフの根ノードは、入力グラフの真の根ノードか、部分グラフの分割点となったノードである。
次に、入力部110は、木様構造のグラフを直列化グラフに変換するため、変換の起点となるノードを選択する(ステップS203)。このとき、最初は、根ノードを選択することが望ましい。
次に、入力部110は、ステップS203で選択したノードを端点として辺の矢印の方向をたどることによって到達できる辺集合を選択する(ステップS204)。ステップS204で選択する辺集合は、それ以上延伸できない辺集合であることが望ましい。なお、ここでいう「延伸できない辺集合」は、選択したノードを端点として選択できる辺集合のうち、最長の辺集合とは限らない。
次に、入力部110は、ステップS204で選択した辺集合を直列化して出力する(ステップS205)。ステップS205における直列化の方法は、直列化グラフの記述形式に準ずる。例えば、図5や図8に示した直列化グラフの記述形式の場合は、辺に対して、[矢印の元ノード、矢印の先ノード、辺のラベル]の順に適切なトークン記述形式で記述すればよい。図5や図8に示した直列化グラフの記述形式の例では、ノードを表すトークンである場合は、ノードのID及びラベルをスラッシュ記号で連結すればよく、辺ラベルはそのまま出力すればよい。但し、ノードのIDが明示的に付与されていないグラフについては、ノードを識別できるように自由にIDを割り付けることができる。
次に、入力部110は、木様構造のグラフに含まれる辺のうち、ステップS205までの処理で選択されていない辺が残っているか(辺情報が出力されていない辺が残っているか)否かを判定し(ステップS206)、選択されていない辺が残っていない場合(ステップS206のNO)、入力部110はそのまま処理を終了する。
一方、選択されていない辺が残っている場合(ステップS206のYES)、入力部110は、必要に応じて特殊トークンを追加(出力)する(ステップS207)。ステップS207で追加される特殊トークンは、例えば図4や図8で例示した直列化グラフの記述形式の場合は[EOD]トークンである。
そしてステップS207の後は、ステップS203に戻り、入力部110は、次の起点となるノードを選択してステップS204以降の処理を繰り返す。この際、起点となるノードの表示方法(出力方法)としては、起点となるノードを直接出力(または再出力)する方法や、[EOD]トークンの数だけ、直前の辺集合の終了点となるノードから辺を遡る方法などを採用することができる。後者の方法は、図4や図8の直列化グラフの記述形式に対応する方法であり、スタックからトークンを除去する操作と対応している。
以上のようにして、全ての辺情報が出力されるまで図9のステップS203~S207の処理を繰り返すことで、入力部110は、入力グラフ(例えば意味表現グラフ310)と等価な直列化グラフ(入力グラフから変換された直列化グラフ)を生成することができる。
なお、図9のステップS205で実施される直列化に際して、例えばノードに属性値(例えば、図4の「long-03」ノードにおける「polarity」値)が付与されている場合や、辺に属性値が付与されている場合には、入力部110は、それぞれノードや辺のラベルに一定の記法で追記することによって、属性値を含めて直列化することができる。
以上のように、実施例1に係る意味表現解析システム100によれば、ノードや辺にラベル情報を含む、有向または無向グラフを直列化することができることから、種類の異なる種々の意味表現を汎用的(統一的)に精度よく解析し、直列化グラフにすることができる。
また、本実施例に係る意味表現解析システム100は、所謂エンコーダ・デコーダのニューラルネットワークを用いて、トークン化されたテキストや直列化グラフを入力として精度良く直列化グラフを生成することができるため、従来知られた遷移による解析手法等と比較すると、意味表現グラフごとにアクションを設計することなく、種々の意味表現を統一的に解析することができる。
また、本実施例に係る意味表現解析システム100によって生成される直列化グラフの形式はグラフ全体の情報を保持するため、例えば、エンコーダ・デコーダのニューラルネットワークにおいて、グラフ全体の構造に関する学習を行うことができ、ノード間の局所的な関係性だけではない、大域的な特性に基づいた意味表現グラフの解析が可能になる。
さらに、本実施例に係る意味表現解析システム100では、直列化グラフを入力とすることで、ある意味表現グラフを別の意味表現グラフに変換することもできる。
また、本実施例に係る意味表現解析システム100のように、直列化グラフ形式による出力は、2つの意味表現グラフ間の比較を行う際に、直列化されていることにより、例えば一般的な編集距離などを用いて、数値を用いて比較することができる。また、同様に直列化グラフ上での編集操作(挿入や削除等)としてグラフの差分を算出することができるため、差分を用いた処理を行うことができる。差分の用途としては、例えば2つのテキスト間の意味の違いを直列化グラフの差分とみなすことにより、差分の精査から含意性や反意性を判定することができる。
なお、本実施例に係る意味表現解析システム100を利用する場合、ユーザは、意味表現グラフ上で適切に演算を加えることができる。典型的な例としては、文章題を意味表現解析システム100への入力データとして、計算式を表すグラフに変換することで、実際に演算を実施して文章題の解を算出することができる。
実施例2では、実施例1とは異なる直列化グラフの形式に関して説明する。実施例2では、実施例1と同様に構成された意味表現解析システム100を用いることができる。
図10は、実施例2における直列化グラフの変換手順を具体例で説明するための図である。図10に示した直列化グラフ340は、図4に示した意味表現グラフ310を直列化した直列化グラフの一例であるが、実施例1で例示した直列化グラフ320(図5)や直列化グラフ330(図8)とは異なる形式で記述されている。実施例2において、図10に示した直列化グラフ340は、例えば入力部110が生成可能な直列化グラフの一例であり、その生成方法については図11を参照しながら後述する。
以下では、図10に示した直列化グラフ340に対する直列化グラフ変換部130(主にトークン処理部131)による変換処理を説明することで、実施例1とは異なる記述形式の直列化グラフ340であっても、実施例1の直列化グラフ330等と同様に、入力された意味表現グラフと等価な辺情報を構築できることを示す。図10に示す直列化グラフの変換では、図8と同様に、トークン保持部132にスタックを用いている。
なお、図10における処理トークン341、アクション342、及びスタック状態343は、それぞれ図8に示した処理トークン331、アクション332、及びスタック状態333と同様であり、説明を省略する。また、図10の各段階の説明は、図8の説明と類似する点が多いため、簡略化して説明する。
図10によればまず、1番目から3番目までに処理トークンとして選択される「1/take-10」、「2/it」、「3/long-03」はノードを示すトークンであるため、トークンを追加するアクション(ADD)が選択され(図7のステップS103)、処理トークンがトークン保持部132であるスタックに追加される(同、ステップS105)。
次いで4番目に処理トークンとして選択される「1」は、以前の処理でノードID「1」として追加されたノードを示すため、トークンを選択するアクション(SELECT)が選択され(図7のステップS103)、処理トークンに対応するトークン「1/take-10」が選択されて再びスタックに追加される(同、ステップS106)。
次に、5番目に辺を表すトークンである「ARG0-of」が処理トークンとして選択されると、トークン処理部131は、辺を作成するアクション(ARC)を選択し(図7のステップS107)、トークン保持部132であるスタックの上から1番目と2番目のトークンを用いて辺を作成する。このとき、実施例1で説明した図8の変換方法に従えば、作成される辺は[it(2番目),take-10(1番目),ARG0(辺)]となるが、選択された処理トークン「ARG0-of」に含まれる「-of」は、辺の矢印が反転されていることを示すため、トークン処理部131は、辺の両端を構成するノードを入れ替えて、辺[take-10,it,ARG0]を生成する。そしてトークン処理部131は、生成した辺の情報をノード・辺情報133に出力する(ステップS108)とともに、辺の両端のノードの情報として、「take-10」をノードID「1」のノード、「it」をノードID「2」のノードとして、ノード・辺情報133に出力する。
ここでさらに、実施例2における変換処理では、処理トークンが辺を表すトークンである場合には、前述したARCの後にDELETEのアクションも選択されるとする(ARC+DELETE)。そのため、トークン処理部131は、辺[take-10,it,ARG0]を生成してその情報をノード・辺情報133に出力した後、スタックの上から1番目に保持されているトークン「1/take-10」を削除する。
以降も、トークン処理部131は、同様に処理トークンの種類に応じてアクションの実施を繰り返す。
簡単に説明すると、6番目には、辺を表すトークンである「ARG1」が処理トークンとして選択されるため、辺の作成及びトークンの削除(ARC+DELETE)のアクションが選択される。そこで、トークン処理部131は、まずADDのアクションを実施することにより、新たな辺[long-03,it,ARG1]を生成し、辺の情報をノード・辺情報133に出力する。このとき、新たなノード「long-03」についても、ノードID「3」のノードとして出力する。さらに、トークン処理部131は、DELETEのアクションを実施することにより、スタックの上から1番目に保持されているトークン「2/it」を削除する。
次いで7番目には、再び辺を表すトークンである「ARG1」が処理トークンとして選択されるため、辺の作成及びトークンの削除(ARC+DELETE)のアクションが選択される。このとき、トークン処理部131は、ADDのアクションの実施によって新たな辺[take-10,long-03,ARG1]を生成し、ノード・辺情報133に出力する。さらに、トークン処理部131は、DELETEのアクションを実施することにより、スタックの上から1番目に保持されているトークン「long-03」を削除する。
そして、7番目の「ARG1」に対する処理をもって、直列化グラフ340の全てのトークンへの処理が終了することから、トークン処理部131は終了条件を満たしたと判定して、変換処理を終了する。
以上に説明した変換処理の結果をまとめると、[take-10,it,ARG0]、[long-03,it,ARG1]、[take-10,long-03,ARG1]の3組の辺が作成され、ノード・辺情報133には、これら各組の辺情報とともに、辺の両端のノード情報としてノードID「1」の「take-10」、ノードID「2」の「it」、及びノードID[3]の「long-03」が保持される。すなわち、実施例1で説明した直列化グラフ330からの変換と同様に、意味表現解析システム100は、図10の直列化グラフ340からも、図4の意味表現グラフ310に存在する3つの辺を示す情報を、過不足なく生成することができる。すなわち、直列化グラフ340は、意味表現グラフ310と等価な直列化グラフであることが示される。
図11は、実施例2においてグラフの入力データから等価な直列化グラフを生成する処理の処理手順例を示すフローチャートである。図11を参照しながら、実施例2に係る意味表現解析システム100が、入力データ210として図4に示した意味表現グラフ310が入力された場合に、図10に示した直列化グラフ340を生成する方法について説明する。図11に示した処理は、例えば入力部110によって実行される。また、図11に示した処理は、図9に示した処理と概ね同様であるため、共通する処理については説明を省略し、相違点を中心に説明する。
まず、図11に示した直列化グラフの生成方法では、図9のステップS202のように、入力グラフを木様構造に変換する必要がない。したがって、ステップS301で入力グラフを構成するノード及び辺の情報が入力された後は、ステップS302において入力部110は、図9のステップS203と同様に、入力グラフを直列化グラフに変換するために、変換の起点となるノードを選択すればよい。
次のステップS303において、入力部110は、ステップS302で選択したノードを起点として連続する辺集合(一筆書きできる経路)を選択するが、この際、図9のステップS204のように、辺の矢印の向きを考慮しなくてよい。すなわち、ステップS303において入力部110は、選択ノードを起点として一筆書きできる辺集合を選択する際、矢印の向きを反転する必要がある辺については、辺のラベルに「-of」等の矢印の反転を意味する所定の識別子を付与すればよい。
次にステップS304において、入力部110は、ステップS303で選択した辺集合を直列化して出力する。このとき、入力部110は、起点となるノード(ステップS303の選択ノード)から、一筆書きの経路の順に、各ノードを示すトークンを生成し、同じ順に対応する辺を示すトークンを生成する。
そしてステップS305において、入力部110は、辺情報が出力されていない辺が残っているか否かを判定し、全ての辺の情報が出力されるまでステップS302~S304の処理を繰り返す。なお、図10に示したように、実施例2における直列化グラフ340の記述形式では、連続する辺情報のブロックは、辺を示すトークンの後にノードを示すトークンが出現した場合に、新たな連続する辺情報のブロックであることが判別できるため、新たな辺情報の出力のためにステップS302に戻って新たなノードを選択する前に、図9のステップS207のように特殊トークン等を挿入する処理を実行する必要がない。
以上のようにして、全ての辺情報が出力されるまで図11の処理を繰り返すことで、入力部110は、実施例1で説明した直列化グラフ330とは異なる記述形式で、入力グラフ(例えば意味表現グラフ310)と等価な直列化グラフ340を生成することができる。
上記のような実施例2に係る意味表現解析システム100によれば、実施例1と同様に、ノードや辺にラベル情報を含む、有向または無向グラフを直列化することができることから、種類の異なる種々の意味表現を汎用的(統一的)に精度よく解析し、直列化グラフにすることができる。
さらに、実施例2を実施例1と比較した場合、実施例2で生成できる直列化グラフ340の記述形式は、実施例1で生成できる直列化グラフ330の形式より少ないトークン数で記述することができる。このような特徴を有する記述形式で直列化グラフを生成可能なことは、エンコーダ・デコーダのニューラルネットワークで直列化グラフを生成する際に有利に働く場合がある。
但し、実施例1における直列化グラフの形式は、多くの意味表現グラフが木構造に類似する構造(木様構造)を有することに着目して、当該構造に準拠した記述を行ったものであり、意味表現グラフの形状における意味的ないしは形式的な制約によっては、実施例1で生成できる直列化グラフ330の形式の方が有利に働く場合もある。
何れにしても、ユーザは、本発明に係る意味表現解析システム100を利用することによって、実施例1における直列化グラフの形式や、実施例2における直列化グラフの形式、あるいは同様に別の直列化グラフの形式を選択することが可能であり、具体的には、エンコーダ・デコーダのニューラルネットワークにとってより精度が高い記述形式等を選択することが可能となる。
また、実施例1及び実施例2において、意味表現解析システム100が生成する直列化グラフ形式は、辺情報を基礎としているため、互いを変換可能である。したがって、直列化グラフ生成部120において直列化グラフを生成する際に、エンコーダ・デコーダのニューラルネットワークが特定の記述形式で直列化グラフを出力したとしても、直列化グラフ変換部130において適宜、所望の形式に直列化グラフを変換することができる。
なお、上述した各実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての要素および構成を備えるものに限定されない。したがって、本発明は上述した各実施例に限定されるものではないし、合理的な範囲で様々な変形例を含んでよい。例えば、矛盾しない限りにおいて、ある実施例の要素や構成の一部を他の実施例の構成で置き換え、ある実施例の要素や構成に他の実施例の要素や構成を加えてもよい。また、各実施例の要素や構成の一部について、要素や構成の追加、削除、置換、統合、または分散を実行してもよい。また、実施例で示した要素、構成および処理は、処理効率または実装効率に基づいて適宜分散、統合、または入れ替えてもよい。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
10 コンピュータ装置
11 プロセッサ
12 記憶デバイス
13 入力デバイス
14 出力デバイス
15 通信インタフェース
16 バス
100 意味表現解析システム
110 入力部
120 直列化グラフ生成部
121 トークン分割部
122 系列生成部
123 同一性判定部
130 直列化グラフ変換部
131 トークン処理部
132 トークン保持部
133 ノード・辺情報
134 グラフ整形部
140 出力部
210 入力データ
220 直列化グラフ
230 出力グラフ
310 意味表現グラフ
320,330,340 直列化グラフ

Claims (9)

  1. 入力データの意味表現を解析する意味表現解析システムであって、
    テキストまたはグラフによる前記入力データを受け付ける入力部と、
    前記入力データに対応するグラフ構造を表すトークン列を生成する直列化グラフ生成部と、を備え、
    前記トークン列は、前記入力データに対応するグラフ構造におけるノードを示す第1トークンと、前記ノード間の関係を表す辺を示す第2トークンと、を少なくとも含んで構成される
    ことを特徴とする意味表現解析システム。
  2. 前記直列化グラフ生成部によって生成される前記トークン列は、前記入力データの意味表現を等価に記述する
    ことを特徴とする請求項1に記載の意味表現解析システム。
  3. 前記直列化グラフ生成部は、前記グラフ構造を表すトークン列に含まれる前記第1トークンについて、グラフ上におけるノードの同一性を判定し、該当する複数の前記第1トークンに同一性を示す情報を付与する同一性判定部を有する
    ことを特徴とする請求項1に記載の意味表現解析システム。
  4. 前記入力データがテキストである場合、前記入力部は、前記入力データにおける前記テキストを、前記直列化グラフ生成部における前記トークン列の生成が可能な所定の文字コードに変換し、当該変換後の前記入力データを前記直列化グラフ生成部に入力する
    ことを特徴とする請求項1に記載の意味表現解析システム。
  5. 前記入力データがグラフである場合、前記入力部は、前記入力データを当該グラフと等価な、前記直列化グラフ生成部で生成される前記トークン列と同一の記述形式で記述されたトークン列に変換し、当該変換後の前記入力データを前記直列化グラフ生成部に入力する
    ことを特徴とする請求項1に記載の意味表現解析システム。
  6. 前記直列化グラフ生成部によって生成された、前記入力データに対応するグラフ構造を表す第1のトークン列に対して、当該グラフ構造における前記辺の情報を構築するための変換処理を行って第2のトークン列に変換する直列化グラフ変換部をさらに備え、
    前記直列化グラフ変換部は、前記変換処理において、前記第1のトークン列を構成する各トークンに対して、当該トークンの種類に応じたアクションを実行する
    ことを特徴とする請求項1に記載の意味表現解析システム。
  7. 前記直列化グラフ変換部は、前記変換処理において、前記入力データの意味表現を等価に記述することは維持しながら、前記第1のトークン列と前記第2のトークン列とで記述形式を変換可能とする
    ことを特徴とする請求項6に記載の意味表現解析システム。
  8. 前記第1のトークン列及び前記第2のトークン列は、前記入力データに対応するグラフ構造に準拠して記述する第1の記述形式、または当該トークン列を構成するトークンの数を抑制するように記述する第2の記述形式の何れかで記述される
    ことを特徴とする請求項6に記載の意味表現解析システム。
  9. 入力データの意味表現を解析する意味表現解析システムによる意味表現解析方法であって、
    テキストまたはグラフによる前記入力データを受け付ける入力ステップと、
    前記入力ステップで受け付けた前記入力データに基づいて、当該入力データに対応するグラフ構造を表すトークン列を生成する直列化グラフ生成ステップと、を備え、
    前記トークン列は、前記入力データに対応するグラフ構造におけるノードを示す第1トークンと、前記ノード間の関係を表す辺を示す第2トークンと、を少なくとも含んで構成される
    ことを特徴とする意味表現解析方法。
JP2020179627A 2020-10-27 2020-10-27 意味表現解析システム及び意味表現解析方法 Pending JP2022070523A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020179627A JP2022070523A (ja) 2020-10-27 2020-10-27 意味表現解析システム及び意味表現解析方法
US18/025,742 US20230351112A1 (en) 2020-10-27 2021-08-23 Meaning representation analyzing system and meaning representation analyzing method
PCT/JP2021/030813 WO2022091536A1 (ja) 2020-10-27 2021-08-23 意味表現解析システム及び意味表現解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020179627A JP2022070523A (ja) 2020-10-27 2020-10-27 意味表現解析システム及び意味表現解析方法

Publications (1)

Publication Number Publication Date
JP2022070523A true JP2022070523A (ja) 2022-05-13

Family

ID=81382232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020179627A Pending JP2022070523A (ja) 2020-10-27 2020-10-27 意味表現解析システム及び意味表現解析方法

Country Status (3)

Country Link
US (1) US20230351112A1 (ja)
JP (1) JP2022070523A (ja)
WO (1) WO2022091536A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4992715B2 (ja) * 2005-08-04 2012-08-08 日本電気株式会社 データ処理装置、データ処理方法、データ処理プログラム
JP6622236B2 (ja) * 2017-03-06 2019-12-18 株式会社日立製作所 発想支援装置及び発想支援方法

Also Published As

Publication number Publication date
WO2022091536A1 (ja) 2022-05-05
US20230351112A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
KR101805946B1 (ko) 입-출력 예시를 사용한 텍스트 조작 프로그램 생성
WO2022218186A1 (zh) 个性化知识图谱的生成方法、装置及计算机设备
JP4886693B2 (ja) 情報処理方法、情報処理装置および情報処理プログラム
JP4940973B2 (ja) 論理構造認識処理プログラム、論理構造認識処理方法および論理構造認識処理装置
JP2011013750A (ja) システムの構成要素の設計アーキテクチャを自動設計する自動設計装置、自動設計方法及び自動設計プログラム
JP2010044637A (ja) データ処理装置、方法、及びプログラム
CN110245349B (zh) 一种句法依存分析方法、装置及一种电子设备
JP2010520532A (ja) 画数の入力
WO2022091536A1 (ja) 意味表現解析システム及び意味表現解析方法
JPH10222510A (ja) 文書変換方法
JP6261669B2 (ja) クエリ校正システムおよび方法
CN112699642B (zh) 复杂医疗文书的索引提取方法及装置、介质及电子设备
JP6619932B2 (ja) 形態素解析装置およびプログラム
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP2008108266A (ja) 2レベル形態規則をコンパイルするための方法及びその装置
JP6753190B2 (ja) 文書検索装置及びプログラム
JP5219543B2 (ja) 情報処理装置及び情報処理方法及びプログラム
WO2014030258A1 (ja) 形態素解析装置、テキスト分析方法、及びそのプログラム
JP6827610B1 (ja) 開発支援装置、プログラム及び開発支援方法
CN117407492B (zh) 基于知识图谱的关键字词序列生成方法、系统及设备
WO2024116688A1 (ja) 発想支援システム及び方法
WO2023243103A1 (ja) 判定装置、判定方法、及びプログラム
WO2020179519A1 (ja) 生成装置、生成方法及びプログラム
KR100319776B1 (ko) 소프트웨어 프로세스 모형화 장치 및 그 방법
JPH0798707A (ja) 文書処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230512