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

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

▶ 日本放送協会の特許一覧

特許7253951自然言語データ処理装置およびプログラム
<>
  • 特許-自然言語データ処理装置およびプログラム 図1
  • 特許-自然言語データ処理装置およびプログラム 図2
  • 特許-自然言語データ処理装置およびプログラム 図3
  • 特許-自然言語データ処理装置およびプログラム 図4
  • 特許-自然言語データ処理装置およびプログラム 図5
  • 特許-自然言語データ処理装置およびプログラム 図6
  • 特許-自然言語データ処理装置およびプログラム 図7
  • 特許-自然言語データ処理装置およびプログラム 図8
  • 特許-自然言語データ処理装置およびプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-30
(45)【発行日】2023-04-07
(54)【発明の名称】自然言語データ処理装置およびプログラム
(51)【国際特許分類】
   G06F 40/284 20200101AFI20230331BHJP
   G06F 40/216 20200101ALI20230331BHJP
【FI】
G06F40/284
G06F40/216
【請求項の数】 9
(21)【出願番号】P 2019059300
(22)【出願日】2019-03-26
(65)【公開番号】P2020160782
(43)【公開日】2020-10-01
【審査請求日】2022-02-25
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【弁理士】
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【弁理士】
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】後藤 功雄
【審査官】木村 大吾
(56)【参考文献】
【文献】特開2001-083987(JP,A)
【文献】国際公開第2009/101837(WO,A1)
【文献】国際公開第2009/122779(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G10L 13/00-13/10
(57)【特許請求の範囲】
【請求項1】
記号の列として、自然言語データを取得する自然言語データ取得部と、
前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第1特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを前記トークンの列に挿入し、トークン列として出力するトークン化処理部と、
学習モデルを含む人工知能処理部に、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列のいずれかを供給する供給部と、
を備える自然言語データ処理装置。
【請求項2】
前記供給部が供給した前記入力トークン列に基づいて前記人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、
前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、
を備え、
前記非トークン化処理部は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない、
請求項1に記載の自然言語データ処理装置。
【請求項3】
前記トークン化処理部は、前記自然言語データの言語の種別に応じて、前記第1特殊トークンまたは前記第2特殊トークンのいずれか一方のみを前記トークンの列に挿入する、
請求項1または請求項2に記載の自然言語データ処理装置。
【請求項4】
学習モデルを含む人工知能処理部、
をさらに備え、
前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づく処理を実行する、
請求項1から3までのいずれか一項に記載の自然言語データ処理装置。
【請求項5】
前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づき、自然言語の翻訳処理と、自然言語の要約処理と、自然言語の応答処理とのいずれかの処理を実行する、
請求項4に記載の自然言語データ処理装置。
【請求項6】
前記人工知能処理部は、前記トークン化処理部から出力される入力トークン列と出力トークン列とのペアを用いて、前記学習モデルの機械学習処理を行う、
請求項4または請求項5に記載の自然言語データ処理装置。
【請求項7】
学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、
前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、
を備え、
前記出力トークン列は、自然言語における形態素に対応するトークンを含み、
前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第1特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを含み、
前記非トークン化処理部は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない、
自然言語データ処理装置。
【請求項8】
コンピューターを、
記号の列として自然言語データを取得する自然言語データ取得部と、
前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第1特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部と、
学習モデルを含む人工知能処理部に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列のいずれかを供給する供給部と、
を備える自然言語データ処理装置、として機能させるためのプログラム。
【請求項9】
コンピューターを、
学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、
前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、
を備える自然言語データ処理装置として機能させるためのプログラムであって、
前記出力トークン列は、自然言語における形態素に対応するトークンを含み、
前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第1特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを含み、
前記非トークン化処理部は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない、
自然言語データ処理装置、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語データ処理装置およびプログラムに関する。
【背景技術】
【0002】
コンピューターを用いて自動翻訳処理等の自然言語処理を行う場合、通常、入出力文は、単語等の列として扱われる。単語等の列として自然言語データを扱うことにより、他の単位(例えば、文字)の列として自然言語データを扱う場合よりも、妥当且つ効率的な処理を行える。例えば英語で書かれた文章において、単語間は基本的には空白文字で区切られている。つまり、入力された英語の文章を単語等の列に変換する場合には、これらの空白文字は除去される。また、自然言語処理等の結果として出力された単語等の列を普通の英語の文章に変換する場合には、適宜、空白文字が挿入される。
【0003】
特許文献1には、「原文テキストD11に記述される原文に単語の区切りを表す半角のスペースが含まれているが、自動翻訳部11に入力される原文テキストD11には、単語の区切りを表す情報が含まれなくてもよい。原文テキストD11に単語の区切りを表す情報が含まれない場合、自動翻訳部11は、原文テキストD11に、原文における単語の区切り又は各単語の単語位置を表す情報を付加してもよい。」と記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2017-204064号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
単語等を単位として行った自然言語処理の結果は、単語等の列として表現される場合が多い。この単語等の列を普通の自然言語による文章(文字の列)に変換する場合に、どこに空白文字を挿入し、どこに空白文字を挿入しないか、という問題は簡単に解決できるものではない。
【0006】
例えば英語の場合、単語間はほとんどの場合に空白文字(スペース文字)によって明示的に区切られている。しかし、引用符、括弧、カンマ、ピリオド、省略形(例えば、「he is」を「he's」と省略する場合の「's」など)などは、直前や直後の単語に接続し、空白文字では区切られない。機械翻訳処理など単語単位の処理を行った場の後処理では、予め定めたルールに基づいて、単語間に空白文字を挿入するか否かを決定していた。
【0007】
言語学的な単語等の単位を無視して、空白文字も含めて、文を部分文字列に分割する手法もある。例えば、「I've_found_"The_dog."」(本例では、わかりやすいように、文中の空白文字(半角空白文字)をアンダースコアに置き換えて表している)を、「I」、「've_」、「found」、「_"The_」、「dog」、「.」、「"」という部分文字列の系列に変換する。
【0008】
しかしながら、ルールを用いて単語間に空白文字を挿入するか否かを決定する方法では、非常に複雑なルールを必要とする。また、複雑なルールを設定しても、空白文字を挿入するか否かの曖昧性を解消できず、求められる文章に変換することが困難な場合も多くある。
【0009】
例えば、英文における引用符(シングルクォーテーションや、ダブルクォーテーション)は、「開き」として使われている場合(オープンクォーテーションマーク)と、「閉じ」として使われている場合(クロージングクォーテーションマーク)とがある。つまり、単語列に分割された英文から通常の英語表現を復元する際には、これら「開き」と「閉じ」の両者を区別する必要がある。引用符が「開き」として使われる場合は、当該引用符とその右側に隣接する単語との間に空白文字が入らない(削除される)。逆に、引用符が「閉じ」として使われる場合には、当該引用符とその左側に隣接する単語との間には、空白文字が入らない(削除される)。このような場合分けは「開き」と「閉じ」の区別の一例であり、空白文字の有無に関する様々な暖昧性をルールで解消して元の文章、あるいは求められる文章を完全に復元することは困難である。
【0010】
上述した、言語学的な単語の単位を無視して、スペース文字も1つの文字として文を部分文字列に分割する方法を用いる場合には、ルール等に基づいて空白文字を復元する必要はなくなる。しかしながら、ある単語は、隣接する空白文字が付属する場合と付属しない場合とで別の単語として扱わざるを得ないという問題がある。これによって、両方の場合のそれぞれの単語の頻度が少なくなってしまい、単語の頻度に基づく統計情報の品質が低くなってしまう。したがって、機械学習に基づく処理など、統計情報が基礎となる自然言語処理の質が低下してしまうという問題がある。
【0011】
本発明は、上記のような事情を考慮して為されたものであり、複雑なルールを予め記述することが不要で、統計処理の質を落とすことなく、特定記号(特定記号とは、典型的には、空白文字である)を挿入するか否かを適切に判断して処理することのできる自然言語データ処理装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0012】
[1]上記の課題を解決するため、本発明の一態様による自然言語データ処理装置は、記号の列として自然言語データを取得する自然言語データ取得部と、前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第1特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部と、学習モデルを含む人工知能処理部に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列、のいずれかを供給する供給部と、を備えるものである。
【0013】
[2]また、本発明の一態様は、上記の自然言語データ処理装置において、前記供給部が供給した前記入力トークン列に基づいて前記人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、を備え、前記非トークン化処理部は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない、というものである。
【0014】
[3]また、本発明の一態様は、上記の自然言語データ処理装置において、前記トークン化処理部は、前記自然言語データの言語の種別に応じて、前記第1特殊トークンまたは前記第2特殊トークンのいずれか一方のみを前記トークンの列に挿入する、ものである。
【0015】
[4]また、本発明の一態様は、上記の自然言語データ処理装置において、学習モデルを含む人工知能処理部、をさらに備え、前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づく処理を実行する、ものである。
【0016】
[5]また、本発明の一態様は、上記の自然言語データ処理装置において、前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づき、自然言語の翻訳処理と、自然言語の要約処理と、自然言語の応答処理との少なくともいずれかの処理を実行する、ものである。
【0017】
[6]また、本発明の一態様は、上記の自然言語データ処理装置において、前記人工知能処理部は、前記トークン化処理部から出力される入力トークン列と出力トークン列とのペアを用いて、前記学習モデルの機械学習処理を行う、ものである。
【0018】
[7]また、本発明の一態様は、学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、を備え、前記出力トークン列は、自然言語における形態素に対応するトークンを含み、前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第1特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを含み、前記非トークン化処理部は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない、自然言語データ処理装置である。
【0019】
[8]また、本発明の一態様は、コンピューターを、記号の列として自然言語データを取得する自然言語データ取得部と、前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第1特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンの少なくともいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部と、学習モデルを含む人工知能処理部に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列、のいずれかを供給する供給部と、を備える自然言語データ処理装置、として機能させるためのプログラムである。
【0020】
[9]また、本発明の一態様は、コンピューターを、学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、を備える自然言語データ処理装置として機能させるためのプログラムであって、前記出力トークン列は、自然言語における形態素に対応するトークンを含み、前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第1特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンのいずれかを含み、前記非トークン化処理部は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない、自然言語データ処理装置、として機能させるためのプログラムである。
【発明の効果】
【0021】
本発明によれば、自然言語処理全般において、単語分割された表現(トークンの列)から空白文字の有無の復元が簡単且つ正確に行えるようになる。
【図面の簡単な説明】
【0022】
図1】本発明の実施形態による自然言語データ処理装置の概略機能構成を示すブロック図である。
図2】同実施形態において、単語等の間に基本的に空白文字が存在する言語の場合の、自然言語データと、トークン列のデータとの関係の一例を示す概略図である。
図3】同実施形態において、単語等の間に基本的に空白文字が存在しない言語の場合の、自然言語データと、トークン列のデータとの関係の一例を示す概略図である。
図4】同実施形態による、単語等の間に基本的に空白文字が存在する言語による自然言語データの、トークン化処理の手順を示すフローチャートである。
図5】同実施形態による、単語等の間に基本的に空白文字が存在する言語による自然言語データの、非トークン化処理の手順を示すフローチャートである。
図6】同実施形態による、単語等の間に基本的に空白文字が存在しない言語による自然言語データの、トークン化処理の手順を示すフローチャートである。
図7】同実施形態による、単語等の間に基本的に空白文字が存在しない言語による自然言語データの、非トークン化処理の手順を示すフローチャートである。
図8】韓国語による、空白文字を含んだ表現の例を示す概略図である。
図9】日本語による、空白文字を含んだ表現の例を示す概略図である。
【発明を実施するための形態】
【0023】
次に、本発明の一実施形態について、図面を参照しながら説明する。
【0024】
図1は、本実施形態による自然言語データ処理装置の概略機能構成を示すブロック図である。図1に示すように、自然言語データ処理装置1は、自然言語データ取得部2および3と、トークン化処理部4および5(tokenizer)と、非トークン化処理部6(detokenizer)と、自然言語データ出力部7と、学習データ供給部11と、処理データ供給部12と、処理結果データ取得部13と、人工知能処理部20とを含んで構成される。ここに列挙した各部の機能は、例えば、電子回路を用いて実現される。また、その一形態として、ここに列挙した各部の機能を、コンピューターとプログラムとで実現するようにしてもよい。ここに列挙した各部は、必要に応じてデータを少なくとも一時的に記憶するためのメモリーを備える。このメモリーは、例えば、半導体メモリーや、磁気ハードディスク装置等を用いて実現される。各部の機能については後述する。
【0025】
なお、学習データ供給部11と、処理データ供給部12とのそれぞれは、単に「供給部」とも呼ばれる。また、学習データ供給部11と、処理データ供給部12との機能を併せて、その全体を「供給部」と呼んでもよい。また、「非トークン化処理」は、トークナイザー(tokenizer)の逆処理であり、「トークン除去処理」、「反トークン化処理」、「逆トークン化処理」等と呼んでもよい。
【0026】
自然言語データ処理装置1が有する機能の一部分のみの機能から成る自然言語データ処理装置を実施してもよい。例えば、自然言語データ処理装置1aは、自然言語データ取得部2および3と、トークン化処理部4および5と、学習データ供給部11とを含むものである。また、自然言語データ処理装置1bは、自然言語データ取得部2と、トークン化処理部4と、処理データ供給部12とを含むものである。また、自然言語データ処理装置1cは、非トークン化処理部6と、自然言語データ出力部7と、処理結果データ取得部13とを含むものである。
【0027】
人工知能処理部20は、後述するように、自然言語による文章等のデータを処理する。人工知能処理部20は、学習モードと処理モードとのいずれかのモードで動作することができる。学習モードは、学習モデル22の機械学習を行うためのモードである。処理モードは、学習済みの学習モデル22に基づいて、入力された自然言語による文章等のデータを基に、自然言語による別の文章等のデータを出力するものである。
【0028】
自然言語データ取得部2および3は、それぞれ、記号の列として自然言語データを取得する。ここで、記号(シンボル)とは、文字(英語等のアルファベット、日本語の平仮名および片仮名、漢字、数字、その他の各言語用の文字)や、句読点、括弧、引用符、疑問符、感嘆符、カンマ、ピリオド、通貨記号等(ここに例示列挙したものには限定されない)の言語要素である。コンピューターで処理するための記号(文字等)には、標準的な規格に基づく文字コードが付与されている。また、記号の列とは、自然言語で記述された文章等である。
【0029】
なお、自然言語データ取得部2は、人工知能処理部20の入力側の記号列(文章等)を取得するものである。自然言語データ取得部2は、取得した自然言語データを、トークン化処理部4に渡す。また、自然言語データ取得部3は、人工知能処理部20の出力側の記号列を取得するものである。自然言語データ取得部3は、取得した自然言語データを、トークン化処理部5に渡す。自然言語データ取得部3は、人工知能処理部20の出力側の記号列を外部から取得するのは、人工知能処理部20の学習モデル22の機械学習を行う際の出力データ(正解データ等)として用いるためである。
【0030】
トークン化処理部4および5は、それぞれ、自然言語データ取得部2および3から渡された自然言語データに関して、トークン化の処理を行う。トークン化処理部4および5は、具体的には、自然言語データ取得部2および3から渡される自然言語による文章に含まれる形態素を抽出する。形態素を抽出する処理自体は、周知の技術を利用して行える。一例として、MeCabと呼ばれる形態素解析エンジンの技術を利用することができる。トークン化処理部4および5は、抽出された個々の形態素を、トークンのデータとする。自然言語による表現は、通常、形態素の一次元の列である。つまり、トークン化処理部4および5は、自然言語データ取得部2および3から渡される自然言語による文章(形態素列)を、トークンの列に変換して出力する。
【0031】
ここで、形態素は、単語だけには限定されない。例えば、疑問符や、引用符や、句点や、読点や、カンマや、ピリオドや、コロンや、セミコロンなども、形態素としてよい。
【0032】
なお、トークン化処理部4および5は、上記のトークン化の処理を行う際に、特殊なトークンを挿入する場合がある。特殊なトークンとは、特定記号が、元の自然言語の表現内に存在していたか否かを表す情報である。特定記号とは、典型的には、空白を表す文字である。コンピューター処理用の文字コードにおいて空白を表す文字は、いわゆる半角スペースや全角スペースが存在する。ただし、空白を表す文字はこれらに限定されず、文字セット等に応じて他のものがあってもよい。なお、特定記号は、必ずしも空白に限定されない。
【0033】
本実施形態における第1特殊トークンは、列内のその場所に特定記号が存在していた(含まれていた)ことを表す。言い換えれば、第1特殊トークンは、形態素間に特定記号が含まれていた箇所を表すデータである。また、第2特殊トークンは、列内のその場所に特定記号が存在していなかったか、又は含まれていなかったことを表す。言い換えれば、第2特殊トークンは、形態素間に特定記号が含まれていなかった箇所を表すデータである。
【0034】
ある自然言語で書かれた文章をトークン化する処理の際、トークン化処理部4および5は、第1特殊トークンと第2特殊トークンの両方を挿入した状態のトークン列を出力してもよい。ただし、言語の種別ごとの特性を利用すれば、トークン化処理部4および5は、第1特殊トークンと第2特殊トークンのいずれか一方のみを含むトークン列を出力することもできる。
【0035】
一般に自然言語は、語と語の間に基本的に空白文字を置く言語と、置かない言語の2つに大別される。英語やドイツ語やフランス語等の言語(ラテン語を期限とする多くの言語。便宜的に「第1型言語」と呼ぶ。)では、語と語の間に基本的に空白文字を置く。一方、日本語や中国語や韓国語等の言語(便宜的に、「第2型言語」と呼ぶ。)では、語と語の間に基本的に空白文字を置かない。ただし、韓国語では、すべての語間に英語等のように空白文字を置くわけではないが、空白文字がときどき置かれる。つまり、韓国語では、日本語よりは、空白文字の出現頻度が高い。
【0036】
トークン化処理部4および5は、上記の言語ごとの特徴を利用して、第1特殊トークンと第2特殊トークンのいずれか一方のみを含むトークン列を出力するようにできる。つまり、第1型言語(英語やドイツ語やフランス語等)のデータを処理する場合においては基本的には形態素と形態素の間に空白文字が置かれるので、トークン化処理部4および5は、第1特殊トークンを含まず、第2特殊トークンを含むトークン列を出力してよい。また、第2型言語(日本語や中国語や韓国語等)のデータを処理する場合においては、基本的に形態素と形態素の間に空白文字が置かれない。そのため、トークン化処理部4および5は、第2特殊トークンを含まず、第1特殊トークンを含むトークン列を出力してよい。このようにすることによって、トークン化処理部4および5は、出力するトークン列のデータ量を削減することができる。トークン化処理部4および5は、入力される自然言語データが第1型または第2型のいずれの型の言語であるかを、明示されたデータにより、あるいは自動認識することにより、識別する。
【0037】
非トークン化処理部6は、トークン化処理部4および5の逆の処理を行う。つまり、非トークン化処理部6は、第1特殊トークンや第2特殊トークンのいずれかを含んだトークン列のデータを処理結果データ取得部13から受け取り、自然言語データを出力する。このとき、非トークン化処理部6は、トークン列の中における第1特殊トークンおよび第2特殊トークンの位置に基づき、出力する自然言語データ内の対応する位置に、空白文字を含めるか否かを決定する。非トークン化処理部6は、特殊トークンに基づき、適切に空白文字が挿入された自然言語データを出力する。
【0038】
自然言語データ出力部7は、非トークン化処理部6から渡された自然言語データを外部に出力する。
【0039】
学習データ供給部11は、人工知能処理部20が学習モードで動作する際に、機械学習用のデータを機械学習部21に供給する。ここで、学習データは、人工知能処理部20の、入力側のデータであるトークン列と、出力側のデータであるトークン列である。学習データ供給部11は、入力側のトークン列をトークン化処理部4から受け取る。また、学習データ供給部11は、出力側のトークン列をトークン化処理部5から受け取る。入力側の自然言語データと、出力側の自然言語データは、同一の言語で書か荒れたものであってもよい(例えば、入力側も出力側も、英語)し、入力側と出力側とが異なる言語で書かれたものであってもよい(例えば、入力側が中国語で、出力側が日本語)。学習データ供給部11は、入力側および出力側のトークン列の対(多数の対であってもよい)を、機械学習部21に渡す。なお、入力側および出力側のトークン列内には、それぞれの言語に応じた特殊トークン(第1特殊トークンや、第2特殊トークン)が含まれていてもよい。
【0040】
処理データ供給部12は、人工知能処理部20が処理モードで動作する際に、処理のための入力となるデータを、処理実行部23に供給する。ここで供給されるデータは、トークン化処理部4から出力されたトークン列である。このトークン列内には、入力側の言語に応じた特殊トークン(第1特殊トークン、あるいは第2特殊トークン)が含まれていてもよい。
【0041】
処理結果データ取得部13は、人工知能処理部20が処理モードで動作する際に、処理実行部23が処理結果として出力するデータを取得する。処理結果データ取得部13が取得する処理結果データは、特殊トークン(第1特殊トークン、あるいは第2特殊トークン)を含み得る、トークン列のデータである。処理結果データ取得部13は、取得したトークン列のデータを、非トークン化処理部6に渡す。
【0042】
人工知能処理部20は、自然言語データに対応するトークン列データを入力し、自然言語データに対応するトークン列データを出力するための機能である。なお、機械学習可能な学習モデルを用いてデータの処理を行う人工知能処理部20の機能自体は、既存の技術で実現可能なものである。機械学習の方法にも、既存の様々な方法がある。前述の通り、人工知能処理部20は、学習モードと処理モードの、いずれのモードでも動作することができる。
人工知能処理部20は、その内部の構成として、機械学習部21と、学習モデル22と、処理実行部23とを含む。
この構成により、人工知能処理部20は、学習モードで動作する場合には、機械学習用のデータ(入力側および出力側の、それぞれのトークン列データ)を学習データ供給部11から受け取る。人工知能処理部20は、処理モードで動作する場合には、処理の入力となるデータ(トークン列データ)を処理データ供給部12から受け取り、処理結果の出力データ(トークン列データ)を処理結果データ取得部13に渡す。
【0043】
機械学習部21は、学習モデル22が機械学習を行うように制御する。具体的には、機械学習部21は、学習データ供給部11から受け取った学習データを、学習モデル22に渡す。また、機械学習部21は、学習データに基づいて、学習モデル22が内部のパラメーターを更新するよう制御する。
【0044】
学習モデル22は、入力側のデータと出力側のデータとの関係をパラメーター等として保持するモデルである。学習モデル22は、一例として、ニューラルネットワークによって実現される。学習モデル22が、他のモデルとして実現されていてもよい。学習モデル22は、例えばニューラルネットワークで実現されている場合には、逆誤差伝搬法を用いて内部のパラメーターを更新する。
【0045】
処理実行部23は、学習モデル22を参照しながら、入力されるデータに基づく出力データを求めて、出力する。
【0046】
人工知能処理部20は、例えば、自動翻訳処理や、自動応答処理や、自動要約処理などといった処理を行うことができる。人工知能処理部20が、これらのうちのどの処理を行うかは、学習モデル22がどのように機械学習しているかに依存する。言い換えれば、学習モデル22の状態に依存する。
【0047】
自動翻訳処理は、ある言語として、いわゆるソース言語による自然言語文に対応するトークン列を入力し、入力と意味に対応する意味(略同一の意味)を有する他の言語(ターゲット言語)による自然言語文に対応するトークン列を出力する。自動応答処理は、自然言語文の文章に対応するトークン列を入力し、その入力への回答の文に対応するトークン列を出力する。自動応答処理は、例えば、企業等による顧客からの問い合わせに対して回答する業務に利用可能である。自動要約処理は、自然言語文の文章に対応するトークン列を入力し、その入力文を要約した文に対応するトークン列を出力する。
【0048】
なお、人工知能処理部20が行う処理において、入力側の言語と出力側の言語は、同一であっても異なるものであってもよい。ただし、例えば自動翻訳処理の場合には、通常は、入力側の言語と出力側の言語は互いに異なる。例えば自動応答処理や自動要約処理において、入力側の言語と出力側の言語は、同一であっても異なるものであってもよい。
【0049】
次に、図2図3を参照しながら、トークン化前の自然言語データとトークン化処理後のデータとの関係について、実例を用いて説明する。
【0050】
図2は、第1型の言語、即ち、単語等の間に基本的に空白文字が存在する言語の場合の、トークン化処理部4および5に入力される自然言語データと、トークン化処理部4および5から出力されるトークン列のデータとの関係の一例を示す概略図である。
図2に示すように、本例では、入力される自然言語データは、記号(文字等)の列であり、「I've found "The dog."」というものである。この記号列を単語等に分割してそれらの各々をトークンとして、さらに第2特殊トークンを挿入したデータが、出力トークン列である。出力トークン列に含まれる各トークンには参照番号(T1からT12まで)を付している。出力トークン列のうちの、トークンT1,T3,T4,T5,T7,T8,T10,T12は、入力された自然言語データから取り出された単語等である。トークンT3は、語の省略形を示すアポストロフィーを含む「've」に対応する。トークンT5およびT12のそれぞれは、引用符(ダブルクォーテーション)に対応する。トークンT10は、ピリオドに対応する。そして、トークンT2,T6,T9,T11は、単語等の間に空白文字がないことを表すための第2特殊トークンである。第2特殊トークンは [sp]と表記されている。例えば、トークンT2は、第2特殊トークンであり、トークンT1の「I」とトークンT3の「've」との間に空白文字が存在しないことを表すものである。
【0051】
以上、例を用いて説明したように、第1型の自然言語による入力データに対応してトークン化処理部4および5のそれぞれから出力されるトークン列は、特殊トークンを含むことにより、単語等の間に空白文字の有無の情報を保持する。本実施形態では、トークン化処理部4および5のそれぞれは、第1型の自然言語による入力データの場合には、第1特殊トークンを省略して、第2特殊トークンのみを含む出力トークン列を出力する。
【0052】
図3は、第2型の言語、即ち、単語等の間に基本的に空白文字が存在しない言語の場合の、トークン化処理部4および5に入力される自然言語データと、トークン化処理部4および5から出力されるタグ列のデータとの関係を示す概略図である。図示するように、本例では、入力される自然言語データは、記号の列であり、「明日New Yorkに行きます。」というものである。この記号列を形態素解析して、得られた形態素等の各々をトークンとして、さらに第1特殊トークンを挿入したデータが、出力トークン列である。出力トークン列に含まれる各トークンには参照番号(T21からT28まで)を付している。出力トークン列のうちの、トークンT23以外の各トークンは、形態素解析によって得られた形態素等である。トークンT3は、語の省略形を示すアポストロフィーを含む「've」に対応する。トークンT28は、句点に対応するトークンである。そして、トークンT23は、形態素等の間に空白文字があることを表すための第1特殊トークンである。第1特殊トークンは [ss]と表記されている。このトークンT23は、トークンT22の「New」とトークンT24の「York」との間に空白文字が存在することを表すものである。
【0053】
以上、例を用いて説明したように、第2型の自然言語による入力データに対応してトークン化処理部4および5のそれぞれから出力されるトークン列は、特殊トークンを含むことにより、単語等の間に空白文字の有無の情報を保持する。本実施形態では、トークン化処理部4および5のそれぞれは、第2型の自然言語による入力データの場合には、第2特殊トークンを省略して、第1特殊トークンのみを含む出力トークン列を出力する。
【0054】
以上、図2図3を参照しながら、トークン化処理部4および5の入力データと出力データとの関係を説明した。なお、非トークン化処理部6は、トークン化の処理と逆の処理を行う。つまり、非トークン化処理部6は、トークン列を入力し、そのトークン列に対応する記号列を出力する。非トークン化処理部6が扱うトークン列(入力側)と、自然言語データ(出力側、記号列)も、図2図3で説明したデータと同様のデータである。
【0055】
次に、自然言語データ処理装置1内における、主要な処理の手順について、フローチャートを参照しながら説明する。図4図5図6図7は、トークン化(tokenization)および非トークン化(detokenization)の処理を示す。
【0056】
図4は、第1型言語(単語等の間に基本的に空白文字が存在する言語)による自然言語データの、トークン化処理の手順を示すフローチャートである。トークン化処理は、トークン化処理部4や5によって実行される。以下では、代表してトークン化処理部4の動作として説明するが、トークン化処理部5も同様の処理を行うものである。
【0057】
ステップS11において、トークン化処理部4は、自然言語データ取得部2から、自然言語による入力文データを受け取る。
【0058】
ステップS12において、トークン化処理部4は、ルール等に基づいて入力文データ内の単語等を分割する。ここでのルール集合の一部(例)は、次の通りである。
(1)空白文字で区切られた単語を1つのトークンとするために切り出す。
(2)空白文字で区切られていなくても、例えば「have」の省略である「've」や、「is」あるいは「has」の省略形である「's」を、1つのトークンとするために切り出す。
(3)カンマや、ピリオドや、クォーテーションマーク等の記号を、1つのトークンとするために切り出す。
【0059】
ステップS13において、トークン化処理部4は、ステップS12の処理で切り出された各々の単語等を、トークンとする。トークン化処理部4は、本ステップで生成するトークンを、元の入力文データにおける順序に対応付けて、順序付けする。
【0060】
ステップS14において、トークン化処理部4は、元の入力文データにおいて特定文字(空白文字)が含まれていなかった箇所に、第2特殊トークン(図2で示した[sp])を挿入する。本ステップにおいても、生成したトークン列におけるトークンの順序は、元の入力文データに対応している。
【0061】
ステップS15において、トークン化処理部4は、生成したトークン列を出力する。つまり、トークン化処理部4は、生成したトークン列を、学習データ供給部11または処理データ供給部12に渡す。以上により、トークン化処理を終了する。
【0062】
図5は、第1型言語に対応するトークン列のデータを非トークン化する処理の手順を示すフローチャートである。
【0063】
ステップS21において、非トークン化処理部6は、処理結果データ取得部13から、トークン列データを受け取る。ここで処理結果データ取得部13から渡されるトークン列データは、第2特殊トークンを含み、第1特殊トークンを含まない。
【0064】
ステップS22において、非トークン化処理部6は、トークン列に含まれるトークンのうち、単語等に対応するトークン(特殊トークン以外のトークン)を、単語等に変換する。また、非トークン化処理部6は、受け取ったトークン列におけるトークンの順序に従って、返還後の単語等を順番に並べる。
【0065】
ステップS23において、非トークン化処理部6は、ステップS22で並べた単語等の間に、空白文字を挿入する。これにより、単語等は空白文字によって区切られる。
【0066】
ステップS24において、非トークン化処理部6は、受け取ったトークン列の中で第2特殊トークンが存在していた位置に対応する空白文字(ステップS23で挿入した空白文字の、一部)を削除する。図2の例で言うと、例えば、「I」と「've」との間の空白文字が削除され、「I've」を出力できるようにする。これにより、非トークン化処理部6は、空白文字を含む箇所と含まない箇所とを有する自然言語文を生成する。
【0067】
ステップS25において、非トークン化処理部6は、ステップS24で生成された自然言語データを出力する。つまり、非トークン化処理部6は、生成した自然言語による文のデータを、自然言語データ出力部7に渡す。以上により、非トークン化処理を終了する。
【0068】
図6は、第2型言語(単語等の間に基本的に空白文字が存在しない言語)による自然言語データの、トークン化処理の手順を示すフローチャートである。トークン化処理は、トークン化処理部4や5によって実行される。以下では、代表してトークン化処理部4の動作として説明するが、トークン化処理部5も同様の処理を行うものである。
【0069】
ステップS31において、トークン化処理部4は、自然言語データ取得部2から、自然言語による入力文データを受け取る。
【0070】
ステップS32において、トークン化処理部4は、形態素解析処理等により入力文データ内の単語等を分割する。トークン化処理部4は、単語等を1つのトークンとするために切り出す。また、トークン化処理部4は、句読点や引用符等をも、1つのトークンとするために切り出す。
【0071】
ステップS33において、トークン化処理部4は、ステップS32の処理で切り出された各々の単語等を、トークンとする。トークン化処理部4は、本ステップで生成するトークンを、元の入力文データにおける順序に対応付けて、順序付けする。
【0072】
ステップS34において、トークン化処理部4は、元の入力文データにおいて特定文字(空白文字)が含まれていた箇所に、第1特殊トークン(図3で示した[ss])を挿入する。本ステップにおいても、生成したトークン列におけるトークンの順序は、元の入力文データに対応している。
【0073】
ステップS35において、トークン化処理部4は、生成したトークン列を出力する。つまり、トークン化処理部4は、生成したトークン列を、学習データ供給部11または処理データ供給部12に渡す。以上により、トークン化処理を終了する。
【0074】
図7は、第2型言語に対応するトークン列のデータを非トークン化する処理の手順を示すフローチャートである。
【0075】
ステップS41において、非トークン化処理部6は、処理結果データ取得部13から、トークン列データを受け取る。ここで処理結果データ取得部13から渡されるトークン列データは、第1特殊トークンを含み、第2特殊トークンを含まない。
【0076】
ステップS42において、非トークン化処理部6は、トークン列に含まれるトークンのうち、単語等に対応するトークン(特殊トークン以外のトークン)を、単語等に変換する。また、非トークン化処理部6は、受け取ったトークン列におけるトークンの順序に従って、返還後の単語等を順番に並べる。
【0077】
ステップS43において、非トークン化処理部6は、ステップS42で並べた単語等の間のうち、第1特殊トークンが存在していた位置に、空白文字を挿入する。図3の例で言うと、「New」と「York」との間に空白文字を挿入する。これにより、この箇所の記号列は、「New York」となる。つまり、非トークン化処理部6は、形態素等の間で空白文字を含む箇所と含まない箇所とを有する自然言語文を生成する。
【0078】
ステップS44において、非トークン化処理部6は、ステップS43で生成された自然言語データを出力する。つまり、非トークン化処理部6は、生成した自然言語による文のデータを、自然言語データ出力部7に渡す。以上により、非トークン化処理を終了する。
【0079】
[第1変形例]
上の実施形態では、第2型の言語について、空白文字が存在する箇所に第1特殊トークンを用いることとした。第1変形例として、複数種類の空白文字が存在する場合に、空白文字の各種類に対応した複数種類の第1特殊トークンを用いるようにしてもよい。例えば、日本語の文を表現する場合に、いわゆる全角の空白文字と、半角の空白文字とを使い分ける場合がある。全角の空白文字と半角の空白文字とが混在すること自体の是非はともかくとして、本変形例は、このような状況に対応できるようにする。本変形例では、これらの、全角の空白文字と半角の空白文字に、別々の第1特殊トークンを対応付けて、これら両者のトークンを識別可能とする。学習モデル22の学習の際にも、これら両特殊トークンの、片方のみを含んだ学習データや、両方を含んだ学習データなどを用いて、機械学習処理を行うようにする。そのように学習した学習モデル22を使用することにより、処理実行部23は、適宜、全角あるいは半角の空白文字にそれぞれ対応する第1特殊トークンを含んだ処理結果を出力する。この場合、非トークン化処理部6は、非トークン化処理において、全角の空白文字に対応する第1特殊トークンが存在する位置には、全角の空白文字を挿入する。また、半角の空白文字に対応する第1特殊トークンが存在する位置には、半角の空白文字を挿入する。
【0080】
なお、この変形例において、第1特殊トークンの種類数は2に限定されず、3以上であってもよい。また、この変形例を適用する対象は、日本語に限らず、他の言語であってもよい。
【0081】
[第2変形例]
人工知能処理部20が、機械学習を行う機能を持たない構成としてもよい。この場合、人工知能処理部20が機械学習部21を持たない構成としてもよい。この場合、学習モデル22は機械学習済みである。機械学習済みの学習モデル22を、外部で作成し、その学習モデルのデータ(学習パラメーター等)を複写して取り込んだものであってもよい。
【0082】
なお、上述した実施形態における自然言語データ処理装置の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0083】
本実施形態およびその変形例をまとめると、次の通りである。
【0084】
自然言語データ処理装置(1a、1b)は、次の構成を有する。自然言語データ取得部2や3や、記号(文字等)の列として自然言語データを取得する。トークン化処理部4や5は、自然言語データ取得部2や3が取得した前記自然言語データを形態素(単語等)に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第1特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンの少なくともいずれかを前記トークンの列に挿入する。トークン化処理部4や5は、そのように生成したデータをトークン列として出力するものである。供給部(学習データ供給部11および処理データ供給部12)は、学習モデル22を含む人工知能処理部20に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア(学習データ)、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列(処理対象データ)、の少なくともいずれかを供給する。
【0085】
自然言語データ処理装置(1)は、さらに次の構成を有してもよい。処理結果データ取得部13は、前記供給部が供給した前記入力トークン列に基づいて人工知能処理部20が処理を実行した結果として出力される出力トークン列を取得する。非トークン化処理部6は、処理結果データ取得部13が取得した出力トークン列を記号の列に変換して出力する。なお、非トークン化処理部6は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号(空白文字等)に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない。
【0086】
トークン化処理部4や5は、前記自然言語データの言語の種別(第1型言語、第2型言語、日本語、英語、ドイツ語、フランス語、中国語、韓国語等)に応じて、前記第1特殊トークンまたは前記第2特殊トークンのいずれか一方のみを前記トークンの列に挿入するようにしてもよい。これらのいずれか一方のみを挿入する形としても、他方の情報は失われない。
【0087】
自然言語データ処理装置(1)が、人工知能処理部20をさらに備える構成としてもよい。人工知能処理部20は、前記供給部(処理データ供給部12)が供給した前記入力トークン列を入力として、前記学習モデルに基づく処理(処理実行部23による処理)を実行する。
【0088】
上記の人工知能処理部20は、前記供給部(処理データ供給部12)が供給した前記入力トークン列を入力として、前記学習モデルに基づき、自然言語の翻訳処理と、自然言語の要約処理と、自然言語の応答処理との少なくともいずれかの処理を実行する。処理の種類は、学習モデル22に蓄えられた知識に依存する。
【0089】
上記の人工知能処理部20は、前記トークン化処理部4および5からそれぞれ出力される入力トークン列と出力トークン列とのペアを用いて、学習モデル22の機械学習処理を行う。これにより、学習モデル22は、第1および第2の特殊トークンの存在を前提とした統計的特徴を知識として蓄える。
【0090】
また、自然言語データ処理装置(1c)を、次の構成としてもよい。即ち、自然言語データ処理装置(1c)は、処理結果データ取得部13と非トークン化処理部6とを含む構成である。処理結果データ取得部13は、学習モデルを含む人工知能処理部20が処理を実行した結果として出力される出力トークン列を取得する。非トークン化処理部6は、処理結果データ取得部13が取得した出力トークン列を記号の列に変換して出力する。なお、前記の出力トークン列は、自然言語における形態素(単語等)に対応するトークンを含む。また、前記の出力トークン列は、自然言語の表現として形態素間に特定記号(空白文字等)が含まれる箇所を表す第1特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第2特殊トークンの少なくともいずれかを含む。そして、非トークン化処理部6は、前記出力トークン列に含まれる前記第1特殊トークンを当該第1特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第2特殊トークンの箇所には前記特定記号を挿入しない。その具体的な処理の手順は、既に説明した通りである。
【0091】
以上、説明したように、本実施形態(変形例を含む)によれば、自然言語の文章において元々存在した空白文字の情報を維持したまま、自然言語処理(機械翻訳処理、テキスト等による自動応答処理、自然言語で記述された文章の要約処理等)を行う。これにより、自然言語処理の結果として出力されるデータ(トークン列)は、空白文字の有無を表す情報を持っている。これにより、出力する文章には、適切に空白文字を入れたり、入れなかったりすることが可能となる。
【0092】
また、本実施形態(変形例を含む)によれば、空白文字で単語が基本的に区切られている言語(第1型言語と呼んだ)とそれ以外の言語(第2型言語と呼んだ)で、空白の有無を表す情報(特殊トークン)の埋め込み方法を変える。
【0093】
つまり、単語が基本的にスペース文字で区切られている言語(第1型言語)の場合(英語等の場合)、単語等の間で空白文字が存在しない場合に、そのことを表す第2特殊トークンを用いる。単語等の間で空白文字が存在することは普通のことであるため、そのことを表す特殊トークンをわざわざ用いない。逆に、単語が基本的にスペース文字で区切られていない言語(第2型言語)の場合(日本語等の場合)、単語等の間で空白文字が存在する場合に、そのことを表す第1特殊トークンを用いる。単語等の間で空白文字が存在しないことは普通のことであるため、そのことを表す特殊トークンをわざわざ用いない。これにより、表現としてのデータの量を節約することができる。また、人工知能処理部20による処理を行う際に、統計情報が無駄に膨れ上がることもない。
【0094】
つまり、本実施形態により、複雑なルールをあらかじめ準備することなく、簡単な方法で、適切に、空白文字の挿入の有無をコントロールすることができる。
【0095】
例えば、韓国語で書かれた通常の文章では、基本的に単語等の間には空白文字が入らないものの、ところどころ(例えば日本語よりは多い頻度で)空白文字が挿入される。こういった状況で、どういう場合に空白文字が挿入されて、どういう場合に空白文字が挿入されないかを、ルールとして完全に記述することが非常に困難である。本実施形態では、特殊トークンを用いることにより、簡単な処理で、空白文字を挿入することができる。
【0096】
図8は、韓国語による表現の例を示す概略図である。同図に示す韓国語のテキストは、日本語に翻訳すると「東京湾に面した漁師の町であった千葉県浦安市。」という意味である。図示するように、韓国語では、すべての単語間に空白文字が挿入されるわけではないが、ところどころに空白文字が挿入されている。
【0097】
図9は、日本語による表現の例を示す概略図である。同図に示す日本語のテキストは、「日程調整中 東アジアサミット」である。この表現では、「中」と「東」の間に空白文字が挿入されている。これは、仮にこの空白がないと、この表現が「東アジアサミット」について表すものか「中東アジアサミット」について表すものかが曖昧になる。この表現は、その曖昧性を避けるために意図的に空白文字を含むようにしている。このように、通常は単語間に空白文字を含まない日本語であっても、場合によっては、意図的に空白文字が挿入される。本実施形態は、そのような空白文字の存在の情報を維持しながら、自然言語データの処理を可能とする。
【0098】
以上、この発明の実施形態および変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0099】
本発明は、例えば、自然言語を利用した情報の伝達等の全般に広く利用することができる。但し、本発明の利用範囲はここに例示したものには限られない。また、実施形態では、英語や日本語の例を用いて説明したが、その他の自然言語にも本発明を適用することが可能である。
【符号の説明】
【0100】
1,1a,1b,1c 自然言語データ処理装置
2,3 自然言語データ取得部
4,5 トークン化処理部
6 非トークン化処理部
7 自然言語データ出力部
11 学習データ供給部
12 処理データ供給部
13 処理結果データ取得部
20 人工知能処理部
21 機械学習部
22 学習モデル
23 処理実行部
図1
図2
図3
図4
図5
図6
図7
図8
図9