JP2023166252A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2023166252A JP2023166252A JP2022077175A JP2022077175A JP2023166252A JP 2023166252 A JP2023166252 A JP 2023166252A JP 2022077175 A JP2022077175 A JP 2022077175A JP 2022077175 A JP2022077175 A JP 2022077175A JP 2023166252 A JP2023166252 A JP 2023166252A
- Authority
- JP
- Japan
- Prior art keywords
- token
- processing
- block
- blocks
- tokens
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 53
- 238000003672 processing method Methods 0.000 title 1
- 238000012545 processing Methods 0.000 claims abstract description 126
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000003058 natural language processing Methods 0.000 claims abstract description 33
- 230000014509 gene expression Effects 0.000 claims abstract description 19
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims abstract description 13
- 239000000284 extract Substances 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000000605 extraction Methods 0.000 abstract description 7
- 230000001629 suppression Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 description 16
- 230000004048 modification Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000012015 optical character recognition Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- XDDAORKBJWWYJS-UHFFFAOYSA-N glyphosate Chemical compound OC(=O)CNCP(O)(O)=O XDDAORKBJWWYJS-UHFFFAOYSA-N 0.000 description 3
- 241001672694 Citrus reticulata Species 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】固有表現抽出における精度の向上と処理時間増大の抑制とを両立させる情報処理装置、制御方法及びプログラムを提供する。【解決手段】情報処理装置は、文書を読み取った文書画像からテキストデータを取得するOCR部と、該データをトークン単位に分解する処理を行ってトークン列に変換するテキスト変換部と、トークン列に基づき、自然言語処理モデルで処理するために必要な処理回数を算出する処理回数算出部と、トークン列を自然言語処理モデルで処理可能な単位のブロックに分割し、ブロック毎に自然言語処理モデルに入力して、固有表現を推定するブロック生成部とを有する。ブロック生成部は、算出した処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするようにトークン列をブロックに分割し、隣り合うブロック間でオーバーラップした部分に属する各トークンについては、夫々のブロックから得られる推定結果の一方を選択する。【選択図】図2
Description
文書から固有表現を抽出する技術に関する。
文書から予め定義した項目に対応する文字列(固有表現)を抽出する技術として、一般的にNER(Named Entity Recognition)が知られている。このNERによれば、例えば項目「法人名」と「有効期限」を予め定義しておくことで、「法人名」と「有効期限」それぞれに該当する文字列“ABC Company”と“2022/03/07”を、文書内のテキストから抽出することができる。近年、自然言語処理において主流となっているSeq2SeqやTransformerに代表される自然言語処理モデルは、文書内のテキストをトークンと呼ばれる単位に分割したトークン列を入力として、処理結果を得ることができる。このようなモデルを固有表現抽出に用いた場合、入力されたトークン列の中から固有表現を効率的に推定できる。その一方、モデルに一度に入力できるトークン数には上限があるため、長いテキストを入力する場合は複数のトークン列に分割して入力する必要があった。この点、特許文献1には、文書を章や節、段落といったセクションに分割し、セクションごとに固有表現の抽出を行う手法が開示されている。
上記特許文献1の手法によって文書内のテキストを所定のセクションに分割してトークン列を得る場合、トークン列を構成するトークンの数が入力上限に収まる可能性は高くなる。しかしながら、1つ1つのセクションが独立して処理される結果、固有表現の判別に必要なキーワードがなくなったり、文章全体の文脈が失われてしまい、その結果、上手く固有表現を抽出できないということが起こり得る。また、セクションの単位を細かく規定するほどモデルに入力して処理する回数が増え、結果的に処理時間が増大してしまう。
本開示は係る問題に鑑みてなされたものであり、固有表現抽出における精度の向上と処理時間増大の抑制とを両立させることを目的とする。
本開示に係る情報処理装置は、自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置であって、前記文書を読み取った文書画像からテキストデータを取得する取得手段と、前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換手段と、前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出手段と、前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割手段と、前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理手段と、を有し、前記分割手段は、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、前記処理手段は、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、ことを特徴とする。
本開示によれば、処理時間の増大を抑えつつ、固有表現抽出の精度を向上させることができる。
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。最初に各実施形態に示す情報処理装置のハードウェア構成について、図1を用いて説明する。
図1は、情報処理装置100のハードウェア構成図である。図1において、CPU101は、システムバス109に接続された各種デバイスの制御を行う。ROM102は、BIOS(Basic Input/Output System)のプログラムやブートプログラムを記憶する。RAM103は、CPU101の主記憶装置として使用される。外部メモリ104は、情報処理装置が処理するプログラムを格納する。入力部105は、情報等の入力に用いる各種デバイス、例えばタッチパネルやキーボード、マウス、ロボットコントローラーなどで構成される。表示装置106は、液晶モニタ、プロジェクタ、LEDインジケータなどで構成され、CPU101からの指示に従ってユーザインタフェース画面(UI画面)や演算結果等を表示する。通信I/F107は、イーサネット(登録商標)、USB、WiFiといった通信規格に従って、LANやインターネット等のネットワークを介して外部装置と情報通信を行うインタフェースである。I/O108は、例えば不図示のスキャナと接続して文書のスキャン画像(以下、「文書画像」と呼ぶ。)のデータを受信したりする入出力部である。
[実施形態1]
本実施形態では、入力テキストから得たトークン列のトークン数が自然言語処理モデルに入力可能な上限を超える場合に、その全部を処理するのに必要な処理回数を求め、当該処理回数が増加しない範囲でトークン列同士が重なるように入力テキストを分割する。こうすることで、処理時間の増大を抑えつつ、固有表現抽出の精度を向上させる。事前学習した自然言語処理モデルとしては、例えばBERT(Bidirectional Encoder Representations from Transformers)やXLNetなどが挙げられる。なお、上記のような一般公開されているモデルを利用するのに代えて、事前学習を1から行ったモデルを利用してもよい。また、必ずしもtransformerベースの構造を持つモデルでなくてもよく、事前学習された高精度な自然言語処理モデルであればよい。例えば、独自設計の構造を持つモデルでも、AUTOMLなどにより自動設計された構造を持つモデルでも構わない。以降、事前学習した自然言語処理モデルとしてBERTを利用する場合を例に説明を行うものとする。
本実施形態では、入力テキストから得たトークン列のトークン数が自然言語処理モデルに入力可能な上限を超える場合に、その全部を処理するのに必要な処理回数を求め、当該処理回数が増加しない範囲でトークン列同士が重なるように入力テキストを分割する。こうすることで、処理時間の増大を抑えつつ、固有表現抽出の精度を向上させる。事前学習した自然言語処理モデルとしては、例えばBERT(Bidirectional Encoder Representations from Transformers)やXLNetなどが挙げられる。なお、上記のような一般公開されているモデルを利用するのに代えて、事前学習を1から行ったモデルを利用してもよい。また、必ずしもtransformerベースの構造を持つモデルでなくてもよく、事前学習された高精度な自然言語処理モデルであればよい。例えば、独自設計の構造を持つモデルでも、AUTOMLなどにより自動設計された構造を持つモデルでも構わない。以降、事前学習した自然言語処理モデルとしてBERTを利用する場合を例に説明を行うものとする。
<システム構成>
図2は、本実施形態に係る、文書画像から固有表現を抽出する情報処理装置100の機能構成例を示す図である。情報処理装置100は、OCR部201、テキスト変換部202、処理回数算出部203、区切り条件取得部204、ブロック生成部205、固有表現処理部206を有する。以下、各機能部について説明する。
図2は、本実施形態に係る、文書画像から固有表現を抽出する情報処理装置100の機能構成例を示す図である。情報処理装置100は、OCR部201、テキスト変換部202、処理回数算出部203、区切り条件取得部204、ブロック生成部205、固有表現処理部206を有する。以下、各機能部について説明する。
OCR部201は、文書画像内の文字に対応する画像領域(文字領域)に対してOCR(Optical Character Recognition)を行うことによって、文書内に存在する文字の情報(テキストデータ)を取得する。このテキストデータは、各文字領域の座標に基づき例えば左から右、上から下に走査して、認識された対応する文字列を順に結合することで生成される。ただし、テキストデータの取得方法は、文書画像をOCRする方法に限定されず、例えば、文書の電子ファイル内に画像データとは別にテキストデータが含まれている場合にはそれを取得してもよい。或いは、音声情報から文字起こしによって得られたテキストデータを取得してもよい。取得したテキストデータはテキスト変換部202に渡される。
テキスト変換部202は、入力されたテキストデータに対して形態素解析を行い、得られた形態素毎に分かち書きを行ってトークンに分解し、トークンの集合であるトークン列に変換する。ここで、トークンとは、ニューラルネットワークモデルに入力する言語情報の最小単位である。ここでは、トークンの単位を形態素としているがこれに限定されない。例えば、トークンの単位として、文節単位や単語単位、文字単位を採用してもよい。固有表現の推定に用いる自然言語処理モデルが、学習時に設定したトークンの単位に合わせてトークンに分解すればよい。得られたトークン列は、処理回数算出部203とブロック生成部205に渡される。
処理回数算出部203は、テキスト変換部202から受け取ったトークン列を構成するトークンの数と、使用する自然言語処理モデルで処理可能(一度に入力可能)なトークンの最大数とに基づいて、処理回数を算出する。具体的には、トークン列を構成するトークン数(トークン列の長さ)をT、自然言語処理モデルに対してトークン列から一度に入力可能な最大トークン数(上限トークン数)をLとすると、処理回数Pは以下の式(1)で表される。
P=RoundUp(T/L) ・・・式(1)
P=RoundUp(T/L) ・・・式(1)
上記式(1)において“RoundUp”は小数点以下を切り上げるための関数である。この処理回数Pは、トークン数TをBERTにすべて入力するために要求される、処理しなければならない最小限の回数である。後述するブロック生成部205にてトークン列をオーバーラップさせながら入力ブロックを生成するとき、少なくともM個のトークンをオーバーラップさせるようにするには、上記式(1)を以下の式(2)に置き換えればよい。
P=RoundUp((T-M)/(L-M)) ・・・式(2)
P=RoundUp((T-M)/(L-M)) ・・・式(2)
上記式(1)又は上記式(2)を用いて算出された処理回数Pの情報は、ブロック生成部205に渡される。ここで、具体例を示す。いま、BERTに一度に入力可能なトークン数は512個であり、トークン列の始まりと終わりを表す特殊トークンである“CLS”と“SEP”を用いる場合には、上限トークン数L=512-2=510となる。入力するトークン列のトークン数が1000個であるならば、上記式(1)より、1000/510=1.96・・となり、切り上げによって処理回数P=2となる。また、オーバーラップさせたいトークン数をM=32とした場合、上記式(2)より、(1000-32)/(510-32)=2.02となり、切り上げによって処理回数P=3となる。
区切り条件取得部204は、後述するブロック生成部205にてトークン列を入力ブロックに分割する際に、文脈を理解するのに適切な箇所で区切るための条件(以下、「区切り条件」と呼ぶ。)を取得する。区切り条件としては、“段落で区切る”、“改行で区切る”、“句点で区切る”、“句読点で句切る”、“トークンで区切る”、といったものが挙げられる。区切り条件取得部204は、少なくとも2つ以上の区切り条件を取得し、区切りの細かさに応じてそれらを段階分けする。トークン列が最も細かく区切られることになるのは、トークン列のどこで区切っても構わない“トークン単位で区切る”である。一例を挙げると、例えば「これはりんごです。あれはみかんです。」という文章があったとする。後述する仮の入力ブロックが「です。あれはみかんです。」だった場合、区切り条件が“句点で区切る”であれば、「です。」と「あれはみかんです。」で分割して、入力ブロックを「あれはみかんです。」にすることができる。段階分けされた区切り条件によって例えば先頭に唐突に文字列「です。」が現れて文脈を理解しづらくなるような影響を軽減することができ、推定や学習の精度を上げること可能になる。このような段階分けされた区切り条件(以下、「条件群」と呼ぶ。)は、ブロック生成部205に渡される。
ブロック生成部205は、テキスト変換部202から受け取ったトークン列を、BERTに入力可能な数のトークンの塊(以下、「入力ブロック」と表記)に分割する。テキストデータから固有表現を推定する場合、トークン列のどの辺りに固有表現が存在するかを事前に知ることは困難である。特別な知識によって、トークン列内の特定の範囲には固有表現は存在しない或いは推定する必要がないということが事前に分かっている場合を除き、通常はトークン列全てをBERTに入力することになる。ブロック生成部205は、最初に、トークン列同士が互いにオーバーラップするように、処理回数Pに基づき、ブロック同士の重なりを許容しつつ、上限トークン数L個のトークンから成る仮の入力ブロックをP個決定する。ここで決定されるP個の仮の入力ブロックを、以下、「仮ブロック」とする。さらに、ブロック生成部205は、各仮ブロックにおいて、条件群に含まれる区切り条件に基づいて仮ブロックの両端のトークンを削除する。このように仮ブロックの端部からトークンを削って得られる入力ブロックが、BERTに入力されることになる。トークン列を入力ブロックに分割する処理の詳細については後述する。分割された入力ブロックのデータは固有表現処理部206に渡される。
固有表現処理部206は、推定部207、決定部208、学習部209で構成され、トークン列から固有表現を抽出するために必要な各処理を行う。以下、固有表現処理部206を構成する各部について説明する。
推定部207は、ブロック生成部205から受け取った入力ブロックをBERTに入力して、入力ブロックから固有表現を推定する処理を行う。ここで用いるBERTは、詳しくは、BERT層に多クラス分類を行うための全結合層(独自層)を追加したニューラルネットワークモデルである。入力ブロックに含まれる各トークンは、エンコードした後にBERTに入力可能な形式のベクトルに変換されて、BERT層に入力される。BERT層の出力をさらに全結合層によって多クラス分類することによって、入力トークンに対応した固有表現のタグが得られる。例えば、入力ブロックが“ABC株式会社”である場合において、“ABC”と“株式会社”の2つのトークンが含まれていたとする。それぞれのトークンに対して、IOB(Inside-Outside-Beginning)形式の固有表現タグとして、法人名の先頭トークンを指す“B-ORG”と、後に続く“I-ORG”を推定する。これにより、固有表現として、法人名のABC株式会社を推定できたことになる。なお、「B」から始まるタグは固有表現の先頭トークンを表し、「I」から始まるタグは固有表現の2番目以降のトークンを表す。こうした多クラス分類問題を解けるように、後述する学習部209でBERT層と全結合層の学習を行っておく。これにより、推定部207は固有表現の推定を実現する。固有表現タグを推定する際には、トークン毎に、推定候補となる固有表現タグ毎に尤もらしさを表すスコアを算出し、スコアが最大となる固有表現タグを推定結果とする。こうして推定したIOB形式の固有表現タグ及びスコアの情報は決定部208に渡される。
決定部208は、推定部207から受け取った固有表現タグとスコアに基づき、最終的に出力する固有表現を決定する。まず、入力ブロックのうちオーバーラップのない範囲については、推定部207が推定した固有表現タグはトークン毎に1つだけであるから、その結果を固有表現として決定すればよい。一方、入力ブロックのうちオーバーラップのある範囲については、推定部207がトークン毎に複数の固有表現タグを推定している。そのため、複数の固有表現タグの中から1つの固有表現タグを決定する必要がある。複数の中から1つの固有表現タグを選ぶ際には、その中でスコアが大きい方の固有表現タグを選べばよい。或いは、固有表現タグ毎に得られている複数のスコアの和を計算し、スコアの和が最大となる固有表現タグを選んでもよい。このようにして、入力ブロックにオーバーラップがある部分では、スコアが最大の固有表現タグを選択して固有表現の値を決定する。決定した固有表現の値は、例えば表示部105に表示される。
学習部209は、入力ブロックを構成するトークンを用いて、推定部207で推定を行うためのBERT層と全結合層を多クラス分類器として学習を行う。この学習には、入力と出力のデータセット、具体的には、様々な文書画像に通常「GT(Ground Truth)」と呼ばれる正解データを付与した教師データを用いる。本実施形態の場合、トークン列に含まれる各トークンに対して、固有表現タグである“B-ORG”等がGTとして付与される。例えば、固有表現として、法人名、個人名、日付の3つを入力ブロックから推定したい場合には、固有表現タグとして、法人名を表す“B-ORG”、それに続く“I-ORG”、個人名を表す“B-PERSON”、それに続く“I-PERSON”、日付を表す“B-DATE”、それに続く“I-DATE”、さらに固有表現ではないことを表す“O”の計7つの固有表現タグのうち1つを各トークンに割り当てる。ここで、見積書のスキャン画像から固有表現を抽出する場合の具体例を、図3を参照して説明する。いま、文書画像300から法人名、個人名、日付の3種類を固有表現として推定することを考えると、文字領域301の文字列“ABC株式会社”と文字領域302の文字列“DEF真空株式会社”には法人名のGTを付与する。そして、文字領域303の文字列“山田太郎”には個人名のGTを付与し、文字領域304の文字列“10月31日”には日付のGTを付与しておく。図4は、図3に示す文書画像300に含まれる、トークンに対応する文字列にGTを付与した結果を表すテーブルである。図4に示すテーブル400は、「識別子」、「トークン文字列」、「GT」の3列から成り、各行はトークンを表している。例えば、1行目のトークン“見積”と2行目のトークン“書”にはそれぞれ固有表現ではないことを表す“O”のタグが付与されている。また、3行目のトークン“ABC”には“B-ORG”、4行目のトークン“株式会社”には“I-ORG”が付与されており、これにより“ABC株式会社”が法人名“ORG”であることを示している。このようにして、文書内のテキストに対応するトークン列に固有表現タグをGTとして付与しておく。学習部209は、入力ブロック単位のテーブル400を参照し、「トークン文字列」内の各トークンをエンコードした後にベクトル化してBERT層に入力する。そして、全結合層から出力された多クラス分類結果とトークンそれぞれの対応するGTとを比較してLossおよび勾配を求め、BERT層および全結合層の重みを修正する。これを繰り返し行って、BERT層と全結合層の重みを更新することで学習を行う。学習によって得られた重みは、推定部207における推定処理において用いられる。
なお、本実施形態では、1つの情報処理装置100が有する固有表現処理部206内に推定部207、決定部208、学習部209の3つの機能が存在しているが、これら3つの機能部は必ずしも1つの装置が有していなくてもよい。例えば、推定部207と決定部208の両機能を備えた比較的スペックの低いハードウェア構成を持つ第1の情報処理装置と、学習部209の機能を備えた比較的スペックの高いハードウェア構成を持つ第2の情報処理装置との2つに分かれていてもよい。この場合、第2の情報処理装置で多くの教師データを用いて大量の学習を行い、第1の情報処理装置で負荷の軽い推定を行うことで、コストを抑えてサーバーエッジ型のシステムを提供することができる。
<トークン列の分割>
次に、トークン列を分割して入力ブロックを生成する処理の流れを、図5のフローチャートを参照して説明する。以下の説明において記号「S」はステップを意味する。
次に、トークン列を分割して入力ブロックを生成する処理の流れを、図5のフローチャートを参照して説明する。以下の説明において記号「S」はステップを意味する。
S501では、初期化処理が行われる。具体的には、以下のような処理を行う。
・自然言語処理モデル(以下、単に「モデル」と表記)の重みをロードし、入力の上限トークン数Lを取得・設定
・分かち書きのためのトークン分割方法を取得・設定
・モデルに一度に入力可能な上限トークン数L、オーバーラップさせる最小トークン数Mを取得・設定
・区切り条件の条件群を取得して段階分けを行い、ブロック生成部205に出力
S502では、OCR部101が、文書画像からテキストデータを取得する。取得したテキストデータは、テキスト変換部202に渡される。
・分かち書きのためのトークン分割方法を取得・設定
・モデルに一度に入力可能な上限トークン数L、オーバーラップさせる最小トークン数Mを取得・設定
・区切り条件の条件群を取得して段階分けを行い、ブロック生成部205に出力
S502では、OCR部101が、文書画像からテキストデータを取得する。取得したテキストデータは、テキスト変換部202に渡される。
S503では、テキスト変換部202が、入力されたテキストデータに対して、トークンの単位に分解する処理を行って、トークン列に変換する。変換されたトークン列は処理回数算出部203とブロック生成部205に渡される。
S504では、処理回数算出部203が、S501で設定された上限トークン数Lに基づいて、S503で得られたトークン列についての処理回数を算出する。算出した処理回数はブロック生成部205に渡される。
S505では、ブロック生成部205が、長さTのトークン列と処理回数Pを受け取り、上限トークン数Lに従ったP個の仮ブロックを決定する。図6は、処理回数P=3の場合において、長さTのトークン列をオーバーラップさせて仮ブロックを決定する様子を示す図である。一部がオーバーラップした3つの仮ブロック601~603が決定されている。この場合において、Mgは、仮ブロック601と仮ブロック602がオーバーラップしている範囲を表している。ここで、処理回数Pの下でオーバーラップする範囲をなるべく多くした場合、範囲Mgの長さは、次の式(3)で求められる。
Mg=(P×L-T)/(P-1) 式(3)
Mg=(P×L-T)/(P-1) 式(3)
仮に処理回数P=3、上限トークン数L=512、トークン列の長さT=1200の場合であれば、Mg=(3×510-1200)/(3-1)=165となり、1つの仮ブロックあたり165個のトークンがオーバーラップすることになる。
また、先頭(1番目)の仮ブロックに対するk番目の仮ブロックの開始位置Psと終了位置Peはそれぞれ以下の式(4)及び式(5)で表される。
Ps=(k-1)×(L-Mg) ・・・式(4)
Pe=(k-1)×(L-Mg)+L ・・・式(5)
Ps=(k-1)×(L-Mg) ・・・式(4)
Pe=(k-1)×(L-Mg)+L ・・・式(5)
よって、図6の例において、1番目の仮ブロック601は最初のトークンの位置である開始位置Ps_1から終了位置Pe_2までである。また、2番目の仮ブロック602は、開始位置Ps_2から終了位置Pe_2までであり、開始位置Ps_2はL-Mgと等しい。同様に、3番目の仮ブロック603は、開始位置Ps_3から終了位置Pe_3までであり、開始位置Ps_3は2L-2Mgと等しい。そして、3つの仮ブロック601~603の長さはいずれも上限トークン数Lである。最後の仮ブロックにおける最後のトークンが、長さTのトークン列の最後に来るようになっており、これによりデータを効率よく用いることができる。このようにして、ブロック生成部205はトークン列の長さTと処理回数Pから、まずP個の仮ブロックを決定する。
次のS506でブロック生成部205は、区切り条件取得部204から受け取った条件群に含まれる各区切り条件に応じて、S505にて決定された仮ブロックの両端(若しくはいずれか一方の端)にあるトークンを削って、入力ブロックを生成する。ここで具体例を用いて説明する。図7は、“今日は日曜日。次の日は、月曜日ですか。それとも、火曜日ですか。”のトークン列700について決定された2つの仮ブロックに対し3種類の区切り条件を適用した場合の結果を示している。いま、第一の仮ブロック701は“今日は日曜日。次の日は、月曜日で”の範囲であり、次の第二の仮ブロック702は“。次の日は、月曜日ですか。それとも、火曜日ですか。”までの範囲である。ここでは、受け取った条件群に含まれる区切り条件が、「句点で区切る」、「句読点で区切る」、「トークンで区切る」、の順により細かくなる3段階であった場合について説明する。
≪句点で区切る場合≫
トークン列710は、トークン列700を句点で区切って分割した場合の文字列を示しており、“/”は区切り位置を示している。区切り条件「句点で区切る」に応じて仮ブロックの端を削る結果、“/”と“/”とで挟まれた範囲が最長ブロックとなるような入力ブロックが得られる。句点で区切った場合のトークン列710からは、まず、第一の仮ブロック701の後端から“次の日は、月曜日で”を削って、「今日は日曜日。」までの範囲が第一の入力ブロックとして生成される。さらに、第二の仮ブロック702の先端から“。”を削って、「次の日は、月曜日ですか。それとも、火曜日ですか。」までの範囲が第二の入力ブロックとして生成されることになる。
トークン列710は、トークン列700を句点で区切って分割した場合の文字列を示しており、“/”は区切り位置を示している。区切り条件「句点で区切る」に応じて仮ブロックの端を削る結果、“/”と“/”とで挟まれた範囲が最長ブロックとなるような入力ブロックが得られる。句点で区切った場合のトークン列710からは、まず、第一の仮ブロック701の後端から“次の日は、月曜日で”を削って、「今日は日曜日。」までの範囲が第一の入力ブロックとして生成される。さらに、第二の仮ブロック702の先端から“。”を削って、「次の日は、月曜日ですか。それとも、火曜日ですか。」までの範囲が第二の入力ブロックとして生成されることになる。
≪句読点で区切る場合≫
トークン列720は、トークン列700を句読点で区切って分割した場合の文字列を示しており、“/”は区切り位置を示している。区切り条件「句読点で区切る」に応じて仮ブロックの端を削る結果、“/”と“/”とで挟まれた範囲が最長ブロックとなるような入力ブロックが得られる。句読点で区切った場合のトークン列720からは、まず、第一の仮ブロック701の後端から“月曜日で”を削って、「今日は日曜日。次の日は、」までの範囲が第一の入力ブロックとして生成される。さらに、第二の仮ブロック702の先端から“。”を削って、「次の日は、月曜日ですか。それとも、火曜日ですか。」までの範囲が第二の入力ブロックとして生成されることになる。
トークン列720は、トークン列700を句読点で区切って分割した場合の文字列を示しており、“/”は区切り位置を示している。区切り条件「句読点で区切る」に応じて仮ブロックの端を削る結果、“/”と“/”とで挟まれた範囲が最長ブロックとなるような入力ブロックが得られる。句読点で区切った場合のトークン列720からは、まず、第一の仮ブロック701の後端から“月曜日で”を削って、「今日は日曜日。次の日は、」までの範囲が第一の入力ブロックとして生成される。さらに、第二の仮ブロック702の先端から“。”を削って、「次の日は、月曜日ですか。それとも、火曜日ですか。」までの範囲が第二の入力ブロックとして生成されることになる。
≪トークンで区切る場合≫
トークン列730は、トークン列700をトークン単位で区切って分割した場合の文字列を示しており、“/”は区切り位置を示している。区切り条件「トークンで区切る」に応じて仮ブロックの端を削る結果、“/”と“/”とで挟まれた範囲が最長ブロックとなるような入力ブロックが得られる。トークンで区切った場合のトークン列730からは、まず、第一の仮ブロック701の後端から“で”を削って、「今日は日曜日。次の日は、月曜日」までの範囲が第一の入力ブロックとして生成される。さらに、第二の仮ブロック702の先端からは何も削らずに、「。次の日は、月曜日ですか。それとも、火曜日ですか。」までの範囲が第二の入力ブロックとして生成されることになる。
トークン列730は、トークン列700をトークン単位で区切って分割した場合の文字列を示しており、“/”は区切り位置を示している。区切り条件「トークンで区切る」に応じて仮ブロックの端を削る結果、“/”と“/”とで挟まれた範囲が最長ブロックとなるような入力ブロックが得られる。トークンで区切った場合のトークン列730からは、まず、第一の仮ブロック701の後端から“で”を削って、「今日は日曜日。次の日は、月曜日」までの範囲が第一の入力ブロックとして生成される。さらに、第二の仮ブロック702の先端からは何も削らずに、「。次の日は、月曜日ですか。それとも、火曜日ですか。」までの範囲が第二の入力ブロックとして生成されることになる。
ブロック生成部205は、条件群に含まれる複数の区切り条件のうち最も粗く区切られる区切り条件からスタートし、区切り条件を変更しながら、仮ブロックを削って入力ブロックを生成する。なお、仮ブロックを削った結果(或いは最初から)、入力ブロックのトークン数が上限トークン数Lよりも短い場合は、先頭側に詰め、上限トークン数Lに足りない分は、末尾側にパディングトークンと呼ばれる特殊トークンで埋める処理を行う。これにより、入力ブロックを構成するトークン数が、モデルへ入力可能な上限トークン数Lと等しくなるようにする。
S507では、ブロック生成部205は、生成したすべての入力ブロックにおいて、隣り合う入力ブロック同士の間でオーバーラップする部分があるかを確認する。もし、全ての入力ブロック間でオーバーラップ部分が確認できた場合は、最適な入力ブロックが生成できたと判断して、処理を終了する。一方、オーバーラップ部分のない箇所が1カ所でもあった場合には、S508へ進む。
S508では、ブロック生成部205は、適用する区切り条件を1段階細かいものに変更する。例えば、条件群に上述の3つの区切り条件が含まれており、現在適用中の区切り条件が「句点で区切る」であってオーバーラップが確認できない箇所があった場合、「句読点で区切る」に変更されることになる。区切り条件を1段階変更した後は、S506に戻って処理を続行する。このような処理が、全ての入力ブロック間でオーバーラップが残るまで繰り返されることになる。上述の図7の例では、区切り条件として「句読点で区切る」を適用した時点で、“次の日は、”の部分がオーバーラップするので、この段階で処理終了となる。
以上が、本実施形態に係る、トークン列から入力ブロックを生成する処理の内容である。これにより、長さTのトークン列から、最小限の処理回数を担保しつつ、文脈を理解しやすい形の入力ブロックを得ることが可能になり、その結果、固有表現の推定や学習の精度向上に寄与することになる。
<固有表現の抽出処理>
次に、上述のようにしてトークン列から生成した入力ブロック群から、固有表現処理部206にて固有表現を抽出する処理の流れを、図8のフローチャートを参照して説明する。以下の説明において記号「S」はステップを意味する。
S801では、推定部207が、受け取った入力ブロック群の中から注目する入力ブロックを決定してモデルに入力し、トークン毎に固有表現タグを推定する。推定結果(推定された1又は複数の固有表現タグおよび各固有表現タグに対するスコア)は決定部208へ渡される。
次に、上述のようにしてトークン列から生成した入力ブロック群から、固有表現処理部206にて固有表現を抽出する処理の流れを、図8のフローチャートを参照して説明する。以下の説明において記号「S」はステップを意味する。
S801では、推定部207が、受け取った入力ブロック群の中から注目する入力ブロックを決定してモデルに入力し、トークン毎に固有表現タグを推定する。推定結果(推定された1又は複数の固有表現タグおよび各固有表現タグに対するスコア)は決定部208へ渡される。
S802では、受け取った入力ブロック群に含まれるすべての入力ブロックについての推定が完了したかどうかが判定される。全ての入力ブロックに対する推定処理が完了していればS803に進む。一方、未処理の入力ブロックが残っていればS801に戻って次の注目する入力ブロックを決定して、固有表現の推定処理を続行する。
S803では、決定部208が、入力ブロック群に含まれる全ての入力ブロックに対する推定結果(推定された固有表現タグとそのスコア)に基づき、トークン毎に1つの固有表現タグを決定する。
S803では、決定部208が、入力ブロック群に含まれる全ての入力ブロックに対する推定結果(推定された固有表現タグとそのスコア)に基づき、トークン毎に1つの固有表現タグを決定する。
以上が、固有表現処理部206における固有表現抽出処理の内容である。こうしてトークン毎に決定された固有表現タグは、例えば表示部106に表示してユーザに提示する。例えば、{“トークン文字列”,『固有表現タグ』}の組で表す以下のような処理結果が得られたとする。
・{“見積”,『O』}
・{“書”,『O』}
・{ABC,『B-ORG』}
・{株式会社,『I-ORG』}
・{山田,『B-PERSON』}
・{様,『O』}
・{2021,『B-DATE』}
・{年,『I-DATE』}
・{10,『I-DATE』}
・{月,『I-DATE』}
・{31,『I-DATE』}
・{日,『I-DATE』}
・{“見積”,『O』}
・{“書”,『O』}
・{ABC,『B-ORG』}
・{株式会社,『I-ORG』}
・{山田,『B-PERSON』}
・{様,『O』}
・{2021,『B-DATE』}
・{年,『I-DATE』}
・{10,『I-DATE』}
・{月,『I-DATE』}
・{31,『I-DATE』}
・{日,『I-DATE』}
この場合、例えば表示部106に、法人名を表す「ORG」として“ABC株式会社”、個人名を表す「PERSON」として“山田”、日付を表す「DATE」として“2021年10月31日”を表示する。なお、処理結果の出力態様としてディスプレイへの表示は一例であり、これに限定されない。
<変形例1>
トークン列から入力ブロックを生成する際、図5のフローチャートでは、区切り条件に従って仮ブロックの端のトークンを削った後に、オーバーラップがない箇所が1カ所もないことを条件に処理を終了していた(S507)。しかしながら、以下に示す条件を満たす場合には、オーバーラップがない箇所があっても処理を終了してもよい。
トークン列から入力ブロックを生成する際、図5のフローチャートでは、区切り条件に従って仮ブロックの端のトークンを削った後に、オーバーラップがない箇所が1カ所もないことを条件に処理を終了していた(S507)。しかしながら、以下に示す条件を満たす場合には、オーバーラップがない箇所があっても処理を終了してもよい。
≪条件≫
・オーバーラップがない箇所に対応する2つの入力ブロックに関し、仮ブロックの段階では互いにオーバーラップしている
・区切り条件に従って端のトークンを削って得られた前側の入力ブロックの最終トークンの次トークンが、後ろ側の入力ブロックの先頭トークンになっていて、処理されないトークンが存在しない
・オーバーラップがない箇所に対応する2つの入力ブロックに関し、仮ブロックの段階では互いにオーバーラップしている
・区切り条件に従って端のトークンを削って得られた前側の入力ブロックの最終トークンの次トークンが、後ろ側の入力ブロックの先頭トークンになっていて、処理されないトークンが存在しない
これにより、より粗いレベルでの分割による入力ブロックを生成でき、より文脈のまとまりを把握しやすくなる。
<変形例2>
トークン列から入力ブロックを生成する際、図5のフローチャートでは、処理回数Pを固定し、区切り条件を段階的に変更していくことで、入力ブロックを生成していた。しかしながら、区切り条件の方を固定し、処理回数Pの方を増やすようにしてもよい。具体的には、まず、固定する区切り条件を1つ決定する。次に、処理回数Pにおいて各仮ブロックを区切り条件に従って削った時、隣り合う入力ブロック間でオーバーラップしないトークンが出てくる場合には、処理回数Pをインクリメント(P+1)する。そして、前述の式(3)からMgを求め直し、求めたMgを前述の式(4)及び式(5)に適用して、仮ブロックの範囲を決める。こうして決めた各仮ブロックを固定の区切り条件に従って削り、得られたすべての入力ブロックにおいてオーバーラップがない箇所が1カ所もないかどうかを確認する。そして、オーバーラップがない箇所が1カ所でもあれば、再度、処理回数Pをインクリメントして同様の処理を繰り返す。仮に条件が満たされることがなければ、入力ブロックの生成を終了すればよい。本変形例の場合、処理回数は増えてしまうものの、より文脈のまとまりを把握しやすくなるために、固有表現の推定精度を向上させることができる。
トークン列から入力ブロックを生成する際、図5のフローチャートでは、処理回数Pを固定し、区切り条件を段階的に変更していくことで、入力ブロックを生成していた。しかしながら、区切り条件の方を固定し、処理回数Pの方を増やすようにしてもよい。具体的には、まず、固定する区切り条件を1つ決定する。次に、処理回数Pにおいて各仮ブロックを区切り条件に従って削った時、隣り合う入力ブロック間でオーバーラップしないトークンが出てくる場合には、処理回数Pをインクリメント(P+1)する。そして、前述の式(3)からMgを求め直し、求めたMgを前述の式(4)及び式(5)に適用して、仮ブロックの範囲を決める。こうして決めた各仮ブロックを固定の区切り条件に従って削り、得られたすべての入力ブロックにおいてオーバーラップがない箇所が1カ所もないかどうかを確認する。そして、オーバーラップがない箇所が1カ所でもあれば、再度、処理回数Pをインクリメントして同様の処理を繰り返す。仮に条件が満たされることがなければ、入力ブロックの生成を終了すればよい。本変形例の場合、処理回数は増えてしまうものの、より文脈のまとまりを把握しやすくなるために、固有表現の推定精度を向上させることができる。
<変形例3>
トークン列から入力ブロックを生成する際、図5のフローチャートでは、仮ブロックを決定した後で区切り条件に従って仮ブロックの端にあるトークンを削って入力ブロックを生成していた。しかしながら、例えば、区切り条件によって区切ることが可能な位置を先に特定しておき、その後に処理回数Pの下で入力ブロックを生成するようにしてもよい。具体的な手法は以下のとおりである。まず前提として、区切り条件によって区切ることができる位置としてD_1からD_NまでN個が存在するものとする。この場合において、N個の中にはトークン列の先頭と末尾も含まれているものとする。これらN個の中からD_IとD_Jの2個を選択すると、D_IからD_Jまでの間のトークン数がモデルに入力可能な上限トークン数Lよりも小さければ入力ブロックとして生成可能である。N個から2個を選び出す全ての組み合わせを確認して、入力ブロックの候補群を生成する。そして、これらの入力ブロックの候補群の中からP個の入力ブロックを選んで、全トークンを処理できるような組み合わせを選ぶことができれば、それらを入力ブロックとする。一方で、入力ブロックの候補群の中からP個の入力ブロックをどのように選んでも全トークンを処理できない場合には、より細かく区切ることが可能な区切り条件に変更して同様の処理を繰り返せばよい。本変形例による効果について、仮ブロックを決定してから区切り条件を適用して入力ブロックを生成した場合と比較して説明する。図9において、トークン列900は長さTを有している。D_1~D_6はある区切り条件によって区切ることのできる位置を表している。いま、処理回数P=3である。
トークン列から入力ブロックを生成する際、図5のフローチャートでは、仮ブロックを決定した後で区切り条件に従って仮ブロックの端にあるトークンを削って入力ブロックを生成していた。しかしながら、例えば、区切り条件によって区切ることが可能な位置を先に特定しておき、その後に処理回数Pの下で入力ブロックを生成するようにしてもよい。具体的な手法は以下のとおりである。まず前提として、区切り条件によって区切ることができる位置としてD_1からD_NまでN個が存在するものとする。この場合において、N個の中にはトークン列の先頭と末尾も含まれているものとする。これらN個の中からD_IとD_Jの2個を選択すると、D_IからD_Jまでの間のトークン数がモデルに入力可能な上限トークン数Lよりも小さければ入力ブロックとして生成可能である。N個から2個を選び出す全ての組み合わせを確認して、入力ブロックの候補群を生成する。そして、これらの入力ブロックの候補群の中からP個の入力ブロックを選んで、全トークンを処理できるような組み合わせを選ぶことができれば、それらを入力ブロックとする。一方で、入力ブロックの候補群の中からP個の入力ブロックをどのように選んでも全トークンを処理できない場合には、より細かく区切ることが可能な区切り条件に変更して同様の処理を繰り返せばよい。本変形例による効果について、仮ブロックを決定してから区切り条件を適用して入力ブロックを生成した場合と比較して説明する。図9において、トークン列900は長さTを有している。D_1~D_6はある区切り条件によって区切ることのできる位置を表している。いま、処理回数P=3である。
まず、比較例について説明する。図9において、中央に示す3つのブロック920、921、922は、左側に示す3つの仮ブロック910、911、912に対して現状の区切り条件に従ってトークンの一部を削って生成した入力ブロックを表している。この場合、区切り位置D_3から区切り位置D_4の間のトークン列は処理できないことが分かる。結果として、より細かく区切ることができる区切り条件に変更して処理を継続するか、処理回数Pを3回から4回に増やして処理を行うことになる。
一方、本変形例の場合、決定済みの区切り位置に基づいて入力ブロックを生成するため、図9において右側に示す3つの入力ブロック930、931、932を得ることができる。つまり、本変形例の場合は、区切り条件も処理回数も変更することなく入力ブロックを生成することができ、その結果、処理時間も抑えた精度の高い固有表現推定が可能となる。
<変形例4>
決定部208は、オーバーラップ部分の各トークンについて複数の固有表現推定結果から1つを選ぶ際、オーバーラップ部分の前半部に属するトークンであるのか、後半部に属するトークンであるのかによって決定してもよい。具体的には、前半部に属するトークンについてはトークン列の先頭寄りの入力ブロックの推定結果を用い、後半部に属するトークンについては末尾寄りの入力ブロックの推定結果を採用する。以下、本変形例に係る、決定部208における処理の流れについて、図10のフローチャートを参照して説明する。
決定部208は、オーバーラップ部分の各トークンについて複数の固有表現推定結果から1つを選ぶ際、オーバーラップ部分の前半部に属するトークンであるのか、後半部に属するトークンであるのかによって決定してもよい。具体的には、前半部に属するトークンについてはトークン列の先頭寄りの入力ブロックの推定結果を用い、後半部に属するトークンについては末尾寄りの入力ブロックの推定結果を採用する。以下、本変形例に係る、決定部208における処理の流れについて、図10のフローチャートを参照して説明する。
S1001では、複数の入力ブロックに対応する固有表現タグの推定結果の中から、オーバーラップしている部分を特定する。ここで、図11の具体例を参照して説明する。いま、トークン列1101について、第一の入力ブロックに対する固有表現タグの推定結果1102と、第二の入力ブロックに対する固有表現タグの推定結果1103が得られている。第一の入力ブロックと第二の入力ブロックとの間において、トークン1からトークン9までがオーバーラップしており、複数の推定結果が得られている。この場合、トークン1からトークン9までのトークン列がオーバーラップ部分として特定される。
S1002では、特定されたオーバーラップ部分における注目するトークンが決定され、当該注目するトークンについての2つの推定結果が取得される。この際、特定されたオーバーラップ部分に含まれる各トークンのうち先頭に近い方のトークンから順に注目するトークンとして決定する。
S1003では、取得した2つの推定結果が所定条件を満足するかによって処理が振り分けられる。ここで、所定条件は以下のとおりである。
≪条件1≫
・2つの推定結果が、同一であること
≪条件2≫
・2つの推定結果が、推定すべき固有表現タグ(本実施形態では、“B-ORG”、“I-ORG”、“B-PERSON”、“I-PERSON”、“B-DATE”、“I-DATE”)以外のタグ(本実施形態では“O”)であること
≪条件3≫
・条件1と条件2を満たすトークンが2つ連続していること
≪条件1≫
・2つの推定結果が、同一であること
≪条件2≫
・2つの推定結果が、推定すべき固有表現タグ(本実施形態では、“B-ORG”、“I-ORG”、“B-PERSON”、“I-PERSON”、“B-DATE”、“I-DATE”)以外のタグ(本実施形態では“O”)であること
≪条件3≫
・条件1と条件2を満たすトークンが2つ連続していること
上記3つの条件をすべて満たしている場合はS1004に進み、満たしていない場合はS1002に戻って次の注目するトークンを決定して処理を続行する。例えば、図11の例において、文字列“31”のトークン1に注目すると、第一の入力ブロックの推定結果1102では“I-DATE”、第二の入力ブロックの推定結果1103では“O”となっており一致しないので、条件1を満たさない。また、第一の入力ブロックの推定結果1102では“I-DATE”なので条件2も満たしていない。よって、この場合はS1002に戻り、文字列“日”のトークン2を次の注目するトークンに決定して処理が続行されることになる。このようにして、上記3つの条件を満たすトークンが見つかるまで、順に確認していく。図11の例では、文字列“担当”のトークン6で条件1と条件2を満たし、さらに文字列“者”のトークン7でも条件1と条件2を満たすため、条件3も満たすことになる。よって、トークン7まで処理が進んだ段階でS1004へ進むことになる。
S1004では、上記所定の条件を満たしたトークンの手前までを前半部、上記所定の条件を満たしたトークン以降を後半部として境界を決定する。図11の例では、オーバーラップ部分に含まれるトークン1からトークン9のうち、トークン1からトークン6までを前半部、トークン7からトークン9までを後半部とするように、トークン6とトークン7との間が境界として決定されることになる。
S1005では、決定された境界に従い、前半部に属するトークンについては第一の入力ブロックの推定結果を採用し、後半部に属するトークンについては第二の入力ブロックの推定結果が採用される。
以上が、本変形例に係る、オーバーラップ部分における各トークンの推定結果の決定方法である。なお、オーバーラップ部分に含まれる全トークンを確認しても上記条件1~3をすべて満たすトークンが見つからない場合がある。その場合は、S1003において、条件1または条件2のどちらかの条件を無いものとした時に、残り2つの条件を満たすかどうかによって処理を振り分けてもよい。それでも条件を満たすトークンが見つからない場合には、例えば上述の図11の例において“株式会社”のトークン5までを前半部、“担当”のトークン6からを後半部といったように、オーバーラップ部分の真ん中で前半部と後半部を分けてもよい。或いは、オーバーラップ部分の全体を1としたとき、例えば先頭から0.7のところまでを前半部といった具合に、境界となる位置を確定するための割合を予め決めておき、当該割合に従って前半部と後半部とに分けてもよい。また、条件3は、2つ連続に限るものではなく、3つ連続としてもよいし、1つだけ(すなわち、条件1と条件2だけを満たせばよい)としてもよい。
このようにして、前半部に属するトークンか、後半部に属するトークンであるかによっていずれの推定結果を採用するのかを決定してもよい。これにより、1つの入力ブロック内で連続した推定結果を採用することができ、推定精度が向上する。
<変形例5>
決定部208は、オーバーラップ部分の各トークンについて複数の固有表現推定結果から1つを選ぶ際、システムのタイプが、固有表現推定が再現率を優先するタイプか適合率を優先するタイプかによって選択方法を変えてもよい。以下、具体例を用いて説明する。
決定部208は、オーバーラップ部分の各トークンについて複数の固有表現推定結果から1つを選ぶ際、システムのタイプが、固有表現推定が再現率を優先するタイプか適合率を優先するタイプかによって選択方法を変えてもよい。以下、具体例を用いて説明する。
≪再現率を優先するタイプのシステムの場合≫
このタイプのシステムは、固有表現の複数の推定結果をユーザに提示して、その中から所望の固有表現を選択させるようなユーザーインターフェース(UI)を提供するシステムである。このタイプの場合、未検出の固有表現が存在した場合にはユーザはその固有表現を選択することができなくなってしまう。したがって、なるべく多くの推定結果を返す方が適切である。よって、このタイプのシステムの場合、オーバーラップ部分において、第一の入力ブロックと第二の入力ブロックそれぞれの固有表現タグの推定結果が異なっており、どちらか一方が“O”である場合には、“O”ではない推定結果を選ぶようにする。また、どちらも“O”以外(すなわち、いずれの推定結果も推定するべき固有表現タグである場合には、前後のトークンにおける推定結果からIOB形式のタグとして違反しない推定結果を選ぶようにする。例えば、注目するトークンに対し、“I-ORG”と“I-PERSON”の2つの固有表現タグが推定されていた場合を考える。この場合、その1つ前のトークンの推定結果が“B-ORG”であれば、“I-PERSON”が続くことは違反となるため、“I-ORG”を選択するようにする。どちらの推定結果を選んでも違反に該当しない場合には、スコアがより高い方の推定結果を選ぶようにする。このようにすることで、ユーザ価値を高めることができる。
このタイプのシステムは、固有表現の複数の推定結果をユーザに提示して、その中から所望の固有表現を選択させるようなユーザーインターフェース(UI)を提供するシステムである。このタイプの場合、未検出の固有表現が存在した場合にはユーザはその固有表現を選択することができなくなってしまう。したがって、なるべく多くの推定結果を返す方が適切である。よって、このタイプのシステムの場合、オーバーラップ部分において、第一の入力ブロックと第二の入力ブロックそれぞれの固有表現タグの推定結果が異なっており、どちらか一方が“O”である場合には、“O”ではない推定結果を選ぶようにする。また、どちらも“O”以外(すなわち、いずれの推定結果も推定するべき固有表現タグである場合には、前後のトークンにおける推定結果からIOB形式のタグとして違反しない推定結果を選ぶようにする。例えば、注目するトークンに対し、“I-ORG”と“I-PERSON”の2つの固有表現タグが推定されていた場合を考える。この場合、その1つ前のトークンの推定結果が“B-ORG”であれば、“I-PERSON”が続くことは違反となるため、“I-ORG”を選択するようにする。どちらの推定結果を選んでも違反に該当しない場合には、スコアがより高い方の推定結果を選ぶようにする。このようにすることで、ユーザ価値を高めることができる。
≪適合率を優先するタイプのシステムの場合≫
このタイプのシステムは、固有表現の推定結果を用いて、他のタスクの処理を自動で行うように構成されたシステムである。このタイプの場合、過検出をしてしまうと、それに伴い他のタスクまで処理されてしまうため、適合率が高い方が望ましい。このようなシステムとしては、例えば、固有表現の推定結果として“××有限会社”の法人名が抽出された場合には、OCR部101が取得した文字列に対応するメールを削除するシステムなどが挙げられる。こうした適合率を優先するタイプのシステムでは、オーバーラップ部分において2つの固有表現タグの推定結果が異なる場合や、推定された固有表現タグのスコアが閾値よりも低い場合には、“O”のタグに決定する。このようにして、適合率を優先するタイプのシステムでは、決定部208は過検出が抑制されるよう推定結果を決定することで、ユーザ価値を高めることができる。
このタイプのシステムは、固有表現の推定結果を用いて、他のタスクの処理を自動で行うように構成されたシステムである。このタイプの場合、過検出をしてしまうと、それに伴い他のタスクまで処理されてしまうため、適合率が高い方が望ましい。このようなシステムとしては、例えば、固有表現の推定結果として“××有限会社”の法人名が抽出された場合には、OCR部101が取得した文字列に対応するメールを削除するシステムなどが挙げられる。こうした適合率を優先するタイプのシステムでは、オーバーラップ部分において2つの固有表現タグの推定結果が異なる場合や、推定された固有表現タグのスコアが閾値よりも低い場合には、“O”のタグに決定する。このようにして、適合率を優先するタイプのシステムでは、決定部208は過検出が抑制されるよう推定結果を決定することで、ユーザ価値を高めることができる。
また、再現率を優先するか適合率を優先するかについてもユーザ選択可能にして、選択結果に応じて決定部208における選択方法を切り替えてもよい。
≪変形例6≫
上述の実施形態では、OCR部101が取得した全てのトークンを処理する例について説明したが、それに限るものではない。例えば、図5のフローチャートにおいて、トークン列への変換(S503)を行った後、処理回数の算出(S504)を行う前に、固有表現推定に不要なトークンを削除する処理を追加で行ってもよい。本変形例の場合、不要なトークンが削除されたトークン列が処理回数算出部203に渡されることになる。なお、トークン列から不要なトークンを検出する方法は限定されない。例えば、日本語と英語が混在したテキストデータを対象として、固有表現は日本語からのみ推定したいという場合には、英語の文字列は不要である。このケースであれば英語のトークンを検出して削除すればよい。また、文書のヘッダーやフッター部分の文字列からは固有表現を推定しない場合には、OCR部101において、文字列の位置やフォントサイズの情報に基づき、ヘッダーやフッターに属する文字列を削除してもよい。具体的には、文書画像からテキストデータを取得する際に、各文字列について、文書内の位置やフォントサイズの情報も取得するようにする。そして、取得した位置やサイズの情報に基づき、例えば、文字列の位置が文書内の所定位置(例えば上端から10%の位置)より上部でかつフォントサイズが所定サイズ以下であるトークンはヘッダーに属する文字列と判断して削除する。同様に、文字列の位置が文書内の所定位置(例えば下端から10%の位置)より下部でかつフォントサイズが所定サイズ以下であるトークンはフッターに属する文字列と判断して削除する。これにより、処理対象のトークン列を構成するトークン数が減少するため、処理回数を減らして処理時間を短縮したり、同じ処理回数でもオーバーラップ部分を増やすことで、固有表現の推定精度を高めたりすることができる。
上述の実施形態では、OCR部101が取得した全てのトークンを処理する例について説明したが、それに限るものではない。例えば、図5のフローチャートにおいて、トークン列への変換(S503)を行った後、処理回数の算出(S504)を行う前に、固有表現推定に不要なトークンを削除する処理を追加で行ってもよい。本変形例の場合、不要なトークンが削除されたトークン列が処理回数算出部203に渡されることになる。なお、トークン列から不要なトークンを検出する方法は限定されない。例えば、日本語と英語が混在したテキストデータを対象として、固有表現は日本語からのみ推定したいという場合には、英語の文字列は不要である。このケースであれば英語のトークンを検出して削除すればよい。また、文書のヘッダーやフッター部分の文字列からは固有表現を推定しない場合には、OCR部101において、文字列の位置やフォントサイズの情報に基づき、ヘッダーやフッターに属する文字列を削除してもよい。具体的には、文書画像からテキストデータを取得する際に、各文字列について、文書内の位置やフォントサイズの情報も取得するようにする。そして、取得した位置やサイズの情報に基づき、例えば、文字列の位置が文書内の所定位置(例えば上端から10%の位置)より上部でかつフォントサイズが所定サイズ以下であるトークンはヘッダーに属する文字列と判断して削除する。同様に、文字列の位置が文書内の所定位置(例えば下端から10%の位置)より下部でかつフォントサイズが所定サイズ以下であるトークンはフッターに属する文字列と判断して削除する。これにより、処理対象のトークン列を構成するトークン数が減少するため、処理回数を減らして処理時間を短縮したり、同じ処理回数でもオーバーラップ部分を増やすことで、固有表現の推定精度を高めたりすることができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本実施形態の開示は、以下の構成及び方法を含む。
(構成1)
自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置であって、
前記文書を読み取った文書画像からテキストデータを取得する取得手段と、
前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換手段と、
前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出手段と、
前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割手段と、
前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理手段と、
を有し、
前記分割手段は、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、
前記処理手段は、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、
ことを特徴とする情報処理装置。
自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置であって、
前記文書を読み取った文書画像からテキストデータを取得する取得手段と、
前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換手段と、
前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出手段と、
前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割手段と、
前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理手段と、
を有し、
前記分割手段は、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、
前記処理手段は、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、
ことを特徴とする情報処理装置。
(構成2)
前記算出手段は、前記トークン列に含まれる全てのトークンを処理するのに必要となる最小の処理回数を算出することを特徴とする構成1に記載の情報処理装置。
前記算出手段は、前記トークン列に含まれる全てのトークンを処理するのに必要となる最小の処理回数を算出することを特徴とする構成1に記載の情報処理装置。
(構成3)
前記分割手段は、算出された前記最小の処理回数と同じ数のブロックに前記トークン列を分割すること特徴とする構成2に記載の情報処理装置。
前記分割手段は、算出された前記最小の処理回数と同じ数のブロックに前記トークン列を分割すること特徴とする構成2に記載の情報処理装置。
(構成4)
前記トークン列を所定の単位に区切るための区切り条件を取得する条件取得手段をさらに有し、
前記分割手段は、前記区切り条件に基づいて、前記トークン列を前記ブロックに分割する
ことを特徴とする構成1乃至3のいずれか一項に記載の情報処理装置。
前記トークン列を所定の単位に区切るための区切り条件を取得する条件取得手段をさらに有し、
前記分割手段は、前記区切り条件に基づいて、前記トークン列を前記ブロックに分割する
ことを特徴とする構成1乃至3のいずれか一項に記載の情報処理装置。
(構成5)
前記条件取得手段は、前記トークン列を区切る際の細かさのレベルが異なる複数の区切り条件を取得し、
前記分割手段は、算出された前記処理回数が増えないように前記複数の区切り条件の中から適用する区切り条件を順に変更して、前記トークン列を前記ブロックに分割する、
ことを特徴とする構成4に記載の情報処理装置。
前記条件取得手段は、前記トークン列を区切る際の細かさのレベルが異なる複数の区切り条件を取得し、
前記分割手段は、算出された前記処理回数が増えないように前記複数の区切り条件の中から適用する区切り条件を順に変更して、前記トークン列を前記ブロックに分割する、
ことを特徴とする構成4に記載の情報処理装置。
(構成6)
前記分割手段は、
前記トークン列について、前記ブロックの上限トークン数に従って、前記処理回数と同じ数の仮ブロックを決定し、
前記区切り条件に従って、前記仮ブロックの端にあるトークンを削ることにより、前記ブロックを生成する、
ことを特徴とする構成5に記載の情報処理装置。
前記分割手段は、
前記トークン列について、前記ブロックの上限トークン数に従って、前記処理回数と同じ数の仮ブロックを決定し、
前記区切り条件に従って、前記仮ブロックの端にあるトークンを削ることにより、前記ブロックを生成する、
ことを特徴とする構成5に記載の情報処理装置。
(構成7)
前記分割手段は、前記複数の区切り条件のうち最も粗く区切るものから順に適用し、前記仮ブロックの端にあるトークンを削った後のすべての隣り合うブロック間でオーバーラップのない箇所が1か所もなくなるまで処理を繰り返す、ことを特徴とする構成6に記載の情報処理装置。
前記分割手段は、前記複数の区切り条件のうち最も粗く区切るものから順に適用し、前記仮ブロックの端にあるトークンを削った後のすべての隣り合うブロック間でオーバーラップのない箇所が1か所もなくなるまで処理を繰り返す、ことを特徴とする構成6に記載の情報処理装置。
(構成8)
前記分割手段は、前記複数の区切り条件のうち最も粗く区切るものから順に適用し、前記仮ブロックの端にあるトークンを削った後のいずれかの隣り合うブロック間でオーバーラップのない箇所がある場合でも、当該オーバーラップがない箇所に対応する2つのブロックに関し、前記仮ブロックの段階では互いにオーバーラップしており、かつ、前記端のトークンを削って得られた前側のブロックの最終トークンの次トークンが、後ろ側のブロックの先頭トークンになっている場合は、その時点で処理を終了する、ことを特徴とする構成7に記載の情報処理装置。
前記分割手段は、前記複数の区切り条件のうち最も粗く区切るものから順に適用し、前記仮ブロックの端にあるトークンを削った後のいずれかの隣り合うブロック間でオーバーラップのない箇所がある場合でも、当該オーバーラップがない箇所に対応する2つのブロックに関し、前記仮ブロックの段階では互いにオーバーラップしており、かつ、前記端のトークンを削って得られた前側のブロックの最終トークンの次トークンが、後ろ側のブロックの先頭トークンになっている場合は、その時点で処理を終了する、ことを特徴とする構成7に記載の情報処理装置。
(構成9)
前記区切り条件には、段落で区切る、改行で区切る、句点で区切る、句読点で句切る、トークンで区切る、のうちいずれか2つ以上が含まれ、
段落で区切る、改行で区切る、句点で区切る、句読点で句切る、トークンで区切る、の順に、前記トークン列を粗く区切ることができる、
ことを特徴とする構成5乃至8のいずれか一項に記載の情報処理装置。
前記区切り条件には、段落で区切る、改行で区切る、句点で区切る、句読点で句切る、トークンで区切る、のうちいずれか2つ以上が含まれ、
段落で区切る、改行で区切る、句点で区切る、句読点で句切る、トークンで区切る、の順に、前記トークン列を粗く区切ることができる、
ことを特徴とする構成5乃至8のいずれか一項に記載の情報処理装置。
(構成10)
前記処理手段は、オーバーラップした部分を前半部と後半部に分け、前半部に属するトークンについては先頭寄りのブロックの推定結果をその固有表現として決定し、後半部の属するトークンについては末尾寄りのブロックの推定結果をその固有表現として決定することを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
前記処理手段は、オーバーラップした部分を前半部と後半部に分け、前半部に属するトークンについては先頭寄りのブロックの推定結果をその固有表現として決定し、後半部の属するトークンについては末尾寄りのブロックの推定結果をその固有表現として決定することを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
(構成11)
前記処理手段は、前記前半部と前記後半部との境界を確定するための所定条件に従って、前記オーバーラップした部分を前記前半部と前記後半部とに分ける、ことを特徴とする構成10に記載の情報処理装置。
前記処理手段は、前記前半部と前記後半部との境界を確定するための所定条件に従って、前記オーバーラップした部分を前記前半部と前記後半部とに分ける、ことを特徴とする構成10に記載の情報処理装置。
(構成12)
前記処理手段は、固有表現の推定において再現率を優先する場合、前記オーバーラップした部分に含まれるトークンについてどちらか一方の推定結果が固有表現ではないことを表す推定結果であるときは、固有表現であることを表す方の推定結果を選択する、ことを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
前記処理手段は、固有表現の推定において再現率を優先する場合、前記オーバーラップした部分に含まれるトークンについてどちらか一方の推定結果が固有表現ではないことを表す推定結果であるときは、固有表現であることを表す方の推定結果を選択する、ことを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
(構成13)
前記処理手段は、固有表現の推定において適合率を優先する場合、前記オーバーラップした部分に含まれるトークンについて推定結果が異なるときは、固有表現ではないことを表す推定結果に決定することを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
前記処理手段は、固有表現の推定において適合率を優先する場合、前記オーバーラップした部分に含まれるトークンについて推定結果が異なるときは、固有表現ではないことを表す推定結果に決定することを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
(構成14)
変換された前記トークン列に対し、不要なトークンを削除する削除手段をさらに有し、
前記算出手段は、前記不要なトークンが削除されたトークン列を対象に、前記処理回数の算出を行うことを特徴とする構成1乃至13のいずれか一項に記載の情報処理装置。
変換された前記トークン列に対し、不要なトークンを削除する削除手段をさらに有し、
前記算出手段は、前記不要なトークンが削除されたトークン列を対象に、前記処理回数の算出を行うことを特徴とする構成1乃至13のいずれか一項に記載の情報処理装置。
(構成15)
前記推定結果には、トークンに対応する固有表現タグの尤もらしさを表すスコアが含まれ、
前記処理手段は、前記ブロックのうちオーバーラップした部分に属するトークンについて、前記スコアに基づき一方の推定結果を選択することを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
前記推定結果には、トークンに対応する固有表現タグの尤もらしさを表すスコアが含まれ、
前記処理手段は、前記ブロックのうちオーバーラップした部分に属するトークンについて、前記スコアに基づき一方の推定結果を選択することを特徴とする構成1乃至9のいずれか一項に記載の情報処理装置。
(方法1)
自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置の制御方法であって、
前記文書を読み取った文書画像からテキストデータを取得する取得ステップと、
前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換ステップと、
前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出ステップと、
前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割ステップと、
前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理ステップと、
を含み、
前記分割ステップでは、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、
前記処理ステップでは、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、
ことを特徴とする制御方法。
自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置の制御方法であって、
前記文書を読み取った文書画像からテキストデータを取得する取得ステップと、
前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換ステップと、
前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出ステップと、
前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割ステップと、
前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理ステップと、
を含み、
前記分割ステップでは、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、
前記処理ステップでは、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、
ことを特徴とする制御方法。
(構成16)
コンピュータを、構成1乃至15のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
コンピュータを、構成1乃至15のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
Claims (17)
- 自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置であって、
前記文書を読み取った文書画像からテキストデータを取得する取得手段と、
前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換手段と、
前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出手段と、
前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割手段と、
前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理手段と、
を有し、
前記分割手段は、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、
前記処理手段は、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、
ことを特徴とする情報処理装置。 - 前記算出手段は、前記トークン列に含まれる全てのトークンを処理するのに必要となる最小の処理回数を算出することを特徴とする請求項1に記載の情報処理装置。
- 前記分割手段は、算出された前記最小の処理回数と同じ数のブロックに前記トークン列を分割すること特徴とする請求項2に記載の情報処理装置。
- 前記トークン列を所定の単位に区切るための区切り条件を取得する条件取得手段をさらに有し、
前記分割手段は、前記区切り条件に基づいて、前記トークン列を前記ブロックに分割する、
ことを特徴とする請求項1に記載の情報処理装置。 - 前記条件取得手段は、前記トークン列を区切る際の細かさのレベルが異なる複数の区切り条件を取得し、
前記分割手段は、算出された前記処理回数が増えないように前記複数の区切り条件の中から適用する区切り条件を順に変更して、前記トークン列を前記ブロックに分割する、
ことを特徴とする請求項4に記載の情報処理装置。 - 前記分割手段は、
前記トークン列について、前記ブロックの上限トークン数に従って、前記処理回数と同じ数の仮ブロックを決定し、
前記区切り条件に従って、前記仮ブロックの端にあるトークンを削ることにより、前記ブロックを生成する、
ことを特徴とする請求項5に記載の情報処理装置。 - 前記分割手段は、前記複数の区切り条件のうち最も粗く区切るものから順に適用し、前記仮ブロックの端にあるトークンを削った後のすべての隣り合うブロック間でオーバーラップのない箇所が1か所もなくなるまで処理を繰り返す、ことを特徴とする請求項6に記載の情報処理装置。
- 前記分割手段は、前記複数の区切り条件のうち最も粗く区切るものから順に適用し、前記仮ブロックの端にあるトークンを削った後のいずれかの隣り合うブロック間でオーバーラップのない箇所がある場合でも、当該オーバーラップがない箇所に対応する2つのブロックに関し、前記仮ブロックの段階では互いにオーバーラップしており、かつ、前記端のトークンを削って得られた前側のブロックの最終トークンの次トークンが、後ろ側のブロックの先頭トークンになっている場合は、その時点で処理を終了する、ことを特徴とする請求項7に記載の情報処理装置。
- 前記区切り条件には、段落で区切る、改行で区切る、句点で区切る、句読点で句切る、トークンで区切る、のうちいずれか2つ以上が含まれ、
段落で区切る、改行で区切る、句点で区切る、句読点で句切る、トークンで区切る、の順に、前記トークン列を粗く区切ることができる、
ことを特徴とする請求項5に記載の情報処理装置。 - 前記処理手段は、オーバーラップした部分を前半部と後半部に分け、前半部に属するトークンについては先頭寄りのブロックの推定結果をその固有表現として決定し、後半部の属するトークンについては末尾寄りのブロックの推定結果をその固有表現として決定することを特徴とする請求項1に記載の情報処理装置。
- 前記処理手段は、前記前半部と前記後半部との境界を確定するための所定条件に従って、前記オーバーラップした部分を前記前半部と前記後半部とに分ける、ことを特徴とする請求項10に記載の情報処理装置。
- 前記処理手段は、固有表現の推定において再現率を優先する場合、前記オーバーラップした部分に含まれるトークンについてどちらか一方の推定結果が固有表現ではないことを表す推定結果であるときは、固有表現であることを表す方の推定結果を選択する、ことを特徴とする請求項1に記載の情報処理装置。
- 前記処理手段は、固有表現の推定において適合率を優先する場合、前記オーバーラップした部分に含まれるトークンについて推定結果が異なるときは、固有表現ではないことを表す推定結果に決定することを特徴とする請求項1に記載の情報処理装置。
- 変換された前記トークン列に対し、不要なトークンを削除する削除手段をさらに有し、
前記算出手段は、前記不要なトークンが削除されたトークン列を対象に、前記処理回数の算出を行うことを特徴とする請求項1に記載の情報処理装置。 - 前記推定結果には、トークンに対応する固有表現タグの尤もらしさを表すスコアが含まれ、
前記処理手段は、前記ブロックのうちオーバーラップした部分に属するトークンについて、前記スコアに基づき一方の推定結果を選択することを特徴とする請求項1に記載の情報処理装置。 - 自然言語処理モデルを用いて、文書から固有表現を抽出する情報処理装置の制御方法であって、
前記文書を読み取った文書画像からテキストデータを取得する取得ステップと、
前記テキストデータをトークン単位に分解する処理を行ってトークン列に変換する変換ステップと、
前記トークン列に基づき、前記自然言語処理モデルで処理するために必要な処理回数を算出する算出ステップと、
前記トークン列を、前記自然言語処理モデルで処理可能な単位のブロックに分割する分割ステップと、
前記ブロックごとに前記自然言語処理モデルに入力して、固有表現を推定する処理を行う処理ステップと、
を含み、
前記分割ステップでは、算出された前記処理回数に基づき、隣り合うブロック間で少なくとも一部がオーバーラップするように、前記トークン列を前記ブロックに分割し、
前記処理ステップでは、前記隣り合うブロック間でオーバーラップした部分に属する各トークンについては、それぞれのブロックから得られる推定結果の一方を選択する、
ことを特徴とする制御方法。 - コンピュータに、請求項16に記載の制御方法を実行させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022077175A JP2023166252A (ja) | 2022-05-09 | 2022-05-09 | 情報処理装置、情報処理方法及びプログラム |
EP23171275.3A EP4276676A1 (en) | 2022-05-09 | 2023-05-03 | Information processing apparatus, information processing method, program, and storage medium for extracting a named entity from a document |
US18/313,252 US20230359828A1 (en) | 2022-05-09 | 2023-05-05 | Information processing apparatus, information processing method, and storage medium for extracting a named entity from a document |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022077175A JP2023166252A (ja) | 2022-05-09 | 2022-05-09 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023166252A true JP2023166252A (ja) | 2023-11-21 |
Family
ID=86328735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022077175A Pending JP2023166252A (ja) | 2022-05-09 | 2022-05-09 | 情報処理装置、情報処理方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230359828A1 (ja) |
EP (1) | EP4276676A1 (ja) |
JP (1) | JP2023166252A (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782061B2 (en) * | 2008-06-24 | 2014-07-15 | Microsoft Corporation | Scalable lookup-driven entity extraction from indexed document collections |
EP3716104A1 (en) * | 2019-03-27 | 2020-09-30 | Siemens Aktiengesellschaft | Extracting named entities based using document structure |
KR20220059526A (ko) * | 2019-09-16 | 2022-05-10 | 도큐가미, 인크. | 문서 간 지능형 저작 및 처리 보조기 |
JP2021064143A (ja) | 2019-10-11 | 2021-04-22 | 株式会社Legalscape | 文作成装置、文作成方法および文作成プログラム |
-
2022
- 2022-05-09 JP JP2022077175A patent/JP2023166252A/ja active Pending
-
2023
- 2023-05-03 EP EP23171275.3A patent/EP4276676A1/en active Pending
- 2023-05-05 US US18/313,252 patent/US20230359828A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4276676A1 (en) | 2023-11-15 |
US20230359828A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW490654B (en) | Method and system of automatically extracting new word | |
JP5167711B2 (ja) | 簡体字と繁体字とを相互変換する方法及びその変換装置 | |
US20120066213A1 (en) | Information processing apparatus, information processing method, and computer program product | |
US9965460B1 (en) | Keyword extraction for relationship maps | |
RU2757713C1 (ru) | Распознавание рукописного текста посредством нейронных сетей | |
JP7244223B2 (ja) | 電子文書における強調テキストの識別 | |
JP4861375B2 (ja) | 文書処理装置、文書処理プログラムおよび記録媒体 | |
CN111695349A (zh) | 文本匹配方法和文本匹配系统 | |
EP2497053A2 (en) | System and method for increasing the accuracy of optical character recognition (ocr) | |
CN111488732B (zh) | 一种变形关键词检测方法、系统及相关设备 | |
CN110162773A (zh) | 标题推断器 | |
CN110347806B (zh) | 原创文本甄别方法、装置、设备与计算机可读存储介质 | |
US20190303437A1 (en) | Status reporting with natural language processing risk assessment | |
CN113255331B (zh) | 文本纠错方法、装置及存储介质 | |
JP4787955B2 (ja) | 対象文書からキーワードを抽出する方法、システムおよびプログラム | |
US20130202208A1 (en) | Information processing device and information processing method | |
JP6856916B1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN111639189A (zh) | 一种基于文本内容特征的文本图构建方法 | |
JPWO2020111074A1 (ja) | メール分類装置、メール分類方法、およびコンピュータプログラム | |
JP2023166252A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP4266240B1 (ja) | 項目判定システムおよび項目判定プログラム | |
CN113836941A (zh) | 一种合同导航方法及装置 | |
JP2014106729A (ja) | 情報処理装置及びプログラム | |
CN111860513A (zh) | 光学字符识别支持系统 | |
JP4985096B2 (ja) | 文書解析システム、および文書解析方法、並びにコンピュータ・プログラム |