(57)【要約】【課題】複雑なルールを予め記述することなく、特定記号（空白文字等）を挿入するか否かを適切に判断して処理することのできる自然言語データ処理装置を提供する。【解決手段】自然言語データ処理装置は、記号の列として自然言語データを取得する自然言語データ取得部と、前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第１特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部とを備える。供給部は、上記トークン列を、学習モデルを含む人工知能処理部に対して供給する。【選択図】図１
2020160782.tif 000002
【特許請求の範囲】
【請求項１】
記号の列として、自然言語データを取得する自然言語データ取得部と、
前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第１特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを前記トークンの列に挿入し、トークン列として出力するトークン化処理部と、
学習モデルを含む人工知能処理部に、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列のいずれかを供給する供給部と、
を備える自然言語データ処理装置。
【請求項２】
前記供給部が供給した前記入力トークン列に基づいて前記人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、
前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、
を備え、
前記非トークン化処理部は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない、
請求項１に記載の自然言語データ処理装置。
【請求項３】
前記トークン化処理部は、前記自然言語データの言語の種別に応じて、前記第１特殊トークンまたは前記第２特殊トークンのいずれか一方のみを前記トークンの列に挿入する、
請求項１または請求項２に記載の自然言語データ処理装置。
【請求項４】
学習モデルを含む人工知能処理部、
をさらに備え、
前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づく処理を実行する、
請求項１から３までのいずれか一項に記載の自然言語データ処理装置。
【請求項５】
前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づき、自然言語の翻訳処理と、自然言語の要約処理と、自然言語の応答処理とのいずれかの処理を実行する、
請求項４に記載の自然言語データ処理装置。
【請求項６】
前記人工知能処理部は、前記トークン化処理部から出力される入力トークン列と出力トークン列とのペアを用いて、前記学習モデルの機械学習処理を行う、
請求項４または請求項５に記載の自然言語データ処理装置。
【請求項７】
学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、
前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、
を備え、
前記出力トークン列は、自然言語における形態素に対応するトークンを含み、
前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第１特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを含み、
前記非トークン化処理部は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない、
自然言語データ処理装置。
【請求項８】
コンピューターを、
記号の列として自然言語データを取得する自然言語データ取得部と、
前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第１特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部と、
学習モデルを含む人工知能処理部に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列のいずれかを供給する供給部と、
を備える自然言語データ処理装置、として機能させるためのプログラム。
【請求項９】
コンピューターを、
学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、
前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、
を備える自然言語データ処理装置として機能させるためのプログラムであって、
前記出力トークン列は、自然言語における形態素に対応するトークンを含み、
前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第１特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを含み、
前記非トークン化処理部は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない、
自然言語データ処理装置、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語データ処理装置およびプログラムに関する。
【背景技術】
【０００２】
コンピューターを用いて自動翻訳処理等の自然言語処理を行う場合、通常、入出力文は、単語等の列として扱われる。単語等の列として自然言語データを扱うことにより、他の単位（例えば、文字）の列として自然言語データを扱う場合よりも、妥当且つ効率的な処理を行える。例えば英語で書かれた文章において、単語間は基本的には空白文字で区切られている。つまり、入力された英語の文章を単語等の列に変換する場合には、これらの空白文字は除去される。また、自然言語処理等の結果として出力された単語等の列を普通の英語の文章に変換する場合には、適宜、空白文字が挿入される。
【０００３】
特許文献１には、「原文テキストＤ１１に記述される原文に単語の区切りを表す半角のスペースが含まれているが、自動翻訳部１１に入力される原文テキストＤ１１には、単語の区切りを表す情報が含まれなくてもよい。原文テキストＤ１１に単語の区切りを表す情報が含まれない場合、自動翻訳部１１は、原文テキストＤ１１に、原文における単語の区切り又は各単語の単語位置を表す情報を付加してもよい。」と記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２０４０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
単語等を単位として行った自然言語処理の結果は、単語等の列として表現される場合が多い。この単語等の列を普通の自然言語による文章（文字の列）に変換する場合に、どこに空白文字を挿入し、どこに空白文字を挿入しないか、という問題は簡単に解決できるものではない。
【０００６】
例えば英語の場合、単語間はほとんどの場合に空白文字（スペース文字）によって明示的に区切られている。しかし、引用符、括弧、カンマ、ピリオド、省略形(例えば、「he is」を「he's」と省略する場合の「's」など)などは、直前や直後の単語に接続し、空白文字では区切られない。機械翻訳処理など単語単位の処理を行った場の後処理では、予め定めたルールに基づいて、単語間に空白文字を挿入するか否かを決定していた。
【０００７】
言語学的な単語等の単位を無視して、空白文字も含めて、文を部分文字列に分割する手法もある。例えば、「I've_found_"The_dog."」（本例では、わかりやすいように、文中の空白文字（半角空白文字）をアンダースコアに置き換えて表している）を、「I」、「've_」、「found」、「_"The_」、「dog」、「.」、「"」という部分文字列の系列に変換する。
【０００８】
しかしながら、ルールを用いて単語間に空白文字を挿入するか否かを決定する方法では、非常に複雑なルールを必要とする。また、複雑なルールを設定しても、空白文字を挿入するか否かの曖昧性を解消できず、求められる文章に変換することが困難な場合も多くある。
【０００９】
例えば、英文における引用符（シングルクォーテーションや、ダブルクォーテーション）は、「開き」として使われている場合（オープンクォーテーションマーク）と、「閉じ」として使われている場合（クロージングクォーテーションマーク）とがある。つまり、単語列に分割された英文から通常の英語表現を復元する際には、これら「開き」と「閉じ」の両者を区別する必要がある。引用符が「開き」として使われる場合は、当該引用符とその右側に隣接する単語との間に空白文字が入らない（削除される）。逆に、引用符が「閉じ」として使われる場合には、当該引用符とその左側に隣接する単語との間には、空白文字が入らない（削除される）。このような場合分けは「開き」と「閉じ」の区別の一例であり、空白文字の有無に関する様々な暖昧性をルールで解消して元の文章、あるいは求められる文章を完全に復元することは困難である。
【００１０】
上述した、言語学的な単語の単位を無視して、スペース文字も1つの文字として文を部分文字列に分割する方法を用いる場合には、ルール等に基づいて空白文字を復元する必要はなくなる。しかしながら、ある単語は、隣接する空白文字が付属する場合と付属しない場合とで別の単語として扱わざるを得ないという問題がある。これによって、両方の場合のそれぞれの単語の頻度が少なくなってしまい、単語の頻度に基づく統計情報の品質が低くなってしまう。したがって、機械学習に基づく処理など、統計情報が基礎となる自然言語処理の質が低下してしまうという問題がある。
【００１１】
本発明は、上記のような事情を考慮して為されたものであり、複雑なルールを予め記述することが不要で、統計処理の質を落とすことなく、特定記号（特定記号とは、典型的には、空白文字である）を挿入するか否かを適切に判断して処理することのできる自然言語データ処理装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１２】
［１］上記の課題を解決するため、本発明の一態様による自然言語データ処理装置は、記号の列として自然言語データを取得する自然言語データ取得部と、前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第１特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部と、学習モデルを含む人工知能処理部に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列、のいずれかを供給する供給部と、を備えるものである。
【００１３】
［２］また、本発明の一態様は、上記の自然言語データ処理装置において、前記供給部が供給した前記入力トークン列に基づいて前記人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、を備え、前記非トークン化処理部は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない、というものである。
【００１４】
［３］また、本発明の一態様は、上記の自然言語データ処理装置において、前記トークン化処理部は、前記自然言語データの言語の種別に応じて、前記第１特殊トークンまたは前記第２特殊トークンのいずれか一方のみを前記トークンの列に挿入する、ものである。
【００１５】
［４］また、本発明の一態様は、上記の自然言語データ処理装置において、学習モデルを含む人工知能処理部、をさらに備え、前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づく処理を実行する、ものである。
【００１６】
［５］また、本発明の一態様は、上記の自然言語データ処理装置において、前記人工知能処理部は、前記供給部が供給した前記入力トークン列を入力として、前記学習モデルに基づき、自然言語の翻訳処理と、自然言語の要約処理と、自然言語の応答処理との少なくともいずれかの処理を実行する、ものである。
【００１７】
［６］また、本発明の一態様は、上記の自然言語データ処理装置において、前記人工知能処理部は、前記トークン化処理部から出力される入力トークン列と出力トークン列とのペアを用いて、前記学習モデルの機械学習処理を行う、ものである。
【００１８】
［７］また、本発明の一態様は、学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、を備え、前記出力トークン列は、自然言語における形態素に対応するトークンを含み、前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第１特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを含み、前記非トークン化処理部は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない、自然言語データ処理装置である。
【００１９】
［８］また、本発明の一態様は、コンピューターを、記号の列として自然言語データを取得する自然言語データ取得部と、前記自然言語データ取得部が取得した前記自然言語データを形態素に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第１特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンの少なくともいずれかを前記トークンの列に挿入して、トークン列として出力するトークン化処理部と、学習モデルを含む人工知能処理部に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列、のいずれかを供給する供給部と、を備える自然言語データ処理装置、として機能させるためのプログラムである。
【００２０】
［９］また、本発明の一態様は、コンピューターを、学習モデルを含む人工知能処理部が処理を実行した結果として出力される出力トークン列を取得する処理結果データ取得部と、前記処理結果データ取得部が取得した出力トークン列を記号の列に変換して出力する非トークン化処理部と、を備える自然言語データ処理装置として機能させるためのプログラムであって、前記出力トークン列は、自然言語における形態素に対応するトークンを含み、前記出力トークン列は、自然言語の表現として形態素間に特定記号が含まれる箇所を表す第１特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンのいずれかを含み、前記非トークン化処理部は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない、自然言語データ処理装置、として機能させるためのプログラムである。
【発明の効果】
【００２１】
本発明によれば、自然言語処理全般において、単語分割された表現（トークンの列）から空白文字の有無の復元が簡単且つ正確に行えるようになる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態による自然言語データ処理装置の概略機能構成を示すブロック図である。
【図２】同実施形態において、単語等の間に基本的に空白文字が存在する言語の場合の、自然言語データと、トークン列のデータとの関係の一例を示す概略図である。
【図３】同実施形態において、単語等の間に基本的に空白文字が存在しない言語の場合の、自然言語データと、トークン列のデータとの関係の一例を示す概略図である。
【図４】同実施形態による、単語等の間に基本的に空白文字が存在する言語による自然言語データの、トークン化処理の手順を示すフローチャートである。
【図５】同実施形態による、単語等の間に基本的に空白文字が存在する言語による自然言語データの、非トークン化処理の手順を示すフローチャートである。
【図６】同実施形態による、単語等の間に基本的に空白文字が存在しない言語による自然言語データの、トークン化処理の手順を示すフローチャートである。
【図７】同実施形態による、単語等の間に基本的に空白文字が存在しない言語による自然言語データの、非トークン化処理の手順を示すフローチャートである。
【図８】韓国語による、空白文字を含んだ表現の例を示す概略図である。
【図９】日本語による、空白文字を含んだ表現の例を示す概略図である。
【発明を実施するための形態】
【００２３】
次に、本発明の一実施形態について、図面を参照しながら説明する。
【００２４】
図１は、本実施形態による自然言語データ処理装置の概略機能構成を示すブロック図である。図１に示すように、自然言語データ処理装置１は、自然言語データ取得部２および３と、トークン化処理部４および５（tokenizer）と、非トークン化処理部６（detokenizer）と、自然言語データ出力部７と、学習データ供給部１１と、処理データ供給部１２と、処理結果データ取得部１３と、人工知能処理部２０とを含んで構成される。ここに列挙した各部の機能は、例えば、電子回路を用いて実現される。また、その一形態として、ここに列挙した各部の機能を、コンピューターとプログラムとで実現するようにしてもよい。ここに列挙した各部は、必要に応じてデータを少なくとも一時的に記憶するためのメモリーを備える。このメモリーは、例えば、半導体メモリーや、磁気ハードディスク装置等を用いて実現される。各部の機能については後述する。
【００２５】
なお、学習データ供給部１１と、処理データ供給部１２とのそれぞれは、単に「供給部」とも呼ばれる。また、学習データ供給部１１と、処理データ供給部１２との機能を併せて、その全体を「供給部」と呼んでもよい。また、「非トークン化処理」は、トークナイザー（tokenizer）の逆処理であり、「トークン除去処理」、「反トークン化処理」、「逆トークン化処理」等と呼んでもよい。
【００２６】
自然言語データ処理装置１が有する機能の一部分のみの機能から成る自然言語データ処理装置を実施してもよい。例えば、自然言語データ処理装置１ａは、自然言語データ取得部２および３と、トークン化処理部４および５と、学習データ供給部１１とを含むものである。また、自然言語データ処理装置１ｂは、自然言語データ取得部２と、トークン化処理部４と、処理データ供給部１２とを含むものである。また、自然言語データ処理装置１ｃは、非トークン化処理部６と、自然言語データ出力部７と、処理結果データ取得部１３とを含むものである。
【００２７】
人工知能処理部２０は、後述するように、自然言語による文章等のデータを処理する。人工知能処理部２０は、学習モードと処理モードとのいずれかのモードで動作することができる。学習モードは、学習モデル２２の機械学習を行うためのモードである。処理モードは、学習済みの学習モデル２２に基づいて、入力された自然言語による文章等のデータを基に、自然言語による別の文章等のデータを出力するものである。
【００２８】
自然言語データ取得部２および３は、それぞれ、記号の列として自然言語データを取得する。ここで、記号（シンボル）とは、文字（英語等のアルファベット、日本語の平仮名および片仮名、漢字、数字、その他の各言語用の文字）や、句読点、括弧、引用符、疑問符、感嘆符、カンマ、ピリオド、通貨記号等（ここに例示列挙したものには限定されない）の言語要素である。コンピューターで処理するための記号（文字等）には、標準的な規格に基づく文字コードが付与されている。また、記号の列とは、自然言語で記述された文章等である。
【００２９】
なお、自然言語データ取得部２は、人工知能処理部２０の入力側の記号列（文章等）を取得するものである。自然言語データ取得部２は、取得した自然言語データを、トークン化処理部４に渡す。また、自然言語データ取得部３は、人工知能処理部２０の出力側の記号列を取得するものである。自然言語データ取得部３は、取得した自然言語データを、トークン化処理部５に渡す。自然言語データ取得部３は、人工知能処理部２０の出力側の記号列を外部から取得するのは、人工知能処理部２０の学習モデル２２の機械学習を行う際の出力データ（正解データ等）として用いるためである。
【００３０】
トークン化処理部４および５は、それぞれ、自然言語データ取得部２および３から渡された自然言語データに関して、トークン化の処理を行う。トークン化処理部４および５は、具体的には、自然言語データ取得部２および３から渡される自然言語による文章に含まれる形態素を抽出する。形態素を抽出する処理自体は、周知の技術を利用して行える。一例として、ＭｅＣａｂと呼ばれる形態素解析エンジンの技術を利用することができる。トークン化処理部４および５は、抽出された個々の形態素を、トークンのデータとする。自然言語による表現は、通常、形態素の一次元の列である。つまり、トークン化処理部４および５は、自然言語データ取得部２および３から渡される自然言語による文章（形態素列）を、トークンの列に変換して出力する。
【００３１】
ここで、形態素は、単語だけには限定されない。例えば、疑問符や、引用符や、句点や、読点や、カンマや、ピリオドや、コロンや、セミコロンなども、形態素としてよい。
【００３２】
なお、トークン化処理部４および５は、上記のトークン化の処理を行う際に、特殊なトークンを挿入する場合がある。特殊なトークンとは、特定記号が、元の自然言語の表現内に存在していたか否かを表す情報である。特定記号とは、典型的には、空白を表す文字である。コンピューター処理用の文字コードにおいて空白を表す文字は、いわゆる半角スペースや全角スペースが存在する。ただし、空白を表す文字はこれらに限定されず、文字セット等に応じて他のものがあってもよい。なお、特定記号は、必ずしも空白に限定されない。
【００３３】
本実施形態における第１特殊トークンは、列内のその場所に特定記号が存在していた（含まれていた）ことを表す。言い換えれば、第１特殊トークンは、形態素間に特定記号が含まれていた箇所を表すデータである。また、第２特殊トークンは、列内のその場所に特定記号が存在していなかったか、又は含まれていなかったことを表す。言い換えれば、第２特殊トークンは、形態素間に特定記号が含まれていなかった箇所を表すデータである。
【００３４】
ある自然言語で書かれた文章をトークン化する処理の際、トークン化処理部４および５は、第１特殊トークンと第２特殊トークンの両方を挿入した状態のトークン列を出力してもよい。ただし、言語の種別ごとの特性を利用すれば、トークン化処理部４および５は、第１特殊トークンと第２特殊トークンのいずれか一方のみを含むトークン列を出力することもできる。
【００３５】
一般に自然言語は、語と語の間に基本的に空白文字を置く言語と、置かない言語の２つに大別される。英語やドイツ語やフランス語等の言語（ラテン語を期限とする多くの言語。便宜的に「第１型言語」と呼ぶ。）では、語と語の間に基本的に空白文字を置く。一方、日本語や中国語や韓国語等の言語（便宜的に、「第２型言語」と呼ぶ。）では、語と語の間に基本的に空白文字を置かない。ただし、韓国語では、すべての語間に英語等のように空白文字を置くわけではないが、空白文字がときどき置かれる。つまり、韓国語では、日本語よりは、空白文字の出現頻度が高い。
【００３６】
トークン化処理部４および５は、上記の言語ごとの特徴を利用して、第１特殊トークンと第２特殊トークンのいずれか一方のみを含むトークン列を出力するようにできる。つまり、第１型言語（英語やドイツ語やフランス語等）のデータを処理する場合においては基本的には形態素と形態素の間に空白文字が置かれるので、トークン化処理部４および５は、第１特殊トークンを含まず、第２特殊トークンを含むトークン列を出力してよい。また、第２型言語（日本語や中国語や韓国語等）のデータを処理する場合においては、基本的に形態素と形態素の間に空白文字が置かれない。そのため、トークン化処理部４および５は、第２特殊トークンを含まず、第１特殊トークンを含むトークン列を出力してよい。このようにすることによって、トークン化処理部４および５は、出力するトークン列のデータ量を削減することができる。トークン化処理部４および５は、入力される自然言語データが第１型または第２型のいずれの型の言語であるかを、明示されたデータにより、あるいは自動認識することにより、識別する。
【００３７】
非トークン化処理部６は、トークン化処理部４および５の逆の処理を行う。つまり、非トークン化処理部６は、第１特殊トークンや第２特殊トークンのいずれかを含んだトークン列のデータを処理結果データ取得部１３から受け取り、自然言語データを出力する。このとき、非トークン化処理部６は、トークン列の中における第１特殊トークンおよび第２特殊トークンの位置に基づき、出力する自然言語データ内の対応する位置に、空白文字を含めるか否かを決定する。非トークン化処理部６は、特殊トークンに基づき、適切に空白文字が挿入された自然言語データを出力する。
【００３８】
自然言語データ出力部７は、非トークン化処理部６から渡された自然言語データを外部に出力する。
【００３９】
学習データ供給部１１は、人工知能処理部２０が学習モードで動作する際に、機械学習用のデータを機械学習部２１に供給する。ここで、学習データは、人工知能処理部２０の、入力側のデータであるトークン列と、出力側のデータであるトークン列である。学習データ供給部１１は、入力側のトークン列をトークン化処理部４から受け取る。また、学習データ供給部１１は、出力側のトークン列をトークン化処理部５から受け取る。入力側の自然言語データと、出力側の自然言語データは、同一の言語で書か荒れたものであってもよい（例えば、入力側も出力側も、英語）し、入力側と出力側とが異なる言語で書かれたものであってもよい（例えば、入力側が中国語で、出力側が日本語）。学習データ供給部１１は、入力側および出力側のトークン列の対（多数の対であってもよい）を、機械学習部２１に渡す。なお、入力側および出力側のトークン列内には、それぞれの言語に応じた特殊トークン（第１特殊トークンや、第２特殊トークン）が含まれていてもよい。
【００４０】
処理データ供給部１２は、人工知能処理部２０が処理モードで動作する際に、処理のための入力となるデータを、処理実行部２３に供給する。ここで供給されるデータは、トークン化処理部４から出力されたトークン列である。このトークン列内には、入力側の言語に応じた特殊トークン（第１特殊トークン、あるいは第２特殊トークン）が含まれていてもよい。
【００４１】
処理結果データ取得部１３は、人工知能処理部２０が処理モードで動作する際に、処理実行部２３が処理結果として出力するデータを取得する。処理結果データ取得部１３が取得する処理結果データは、特殊トークン（第１特殊トークン、あるいは第２特殊トークン）を含み得る、トークン列のデータである。処理結果データ取得部１３は、取得したトークン列のデータを、非トークン化処理部６に渡す。
【００４２】
人工知能処理部２０は、自然言語データに対応するトークン列データを入力し、自然言語データに対応するトークン列データを出力するための機能である。なお、機械学習可能な学習モデルを用いてデータの処理を行う人工知能処理部２０の機能自体は、既存の技術で実現可能なものである。機械学習の方法にも、既存の様々な方法がある。前述の通り、人工知能処理部２０は、学習モードと処理モードの、いずれのモードでも動作することができる。
人工知能処理部２０は、その内部の構成として、機械学習部２１と、学習モデル２２と、処理実行部２３とを含む。
この構成により、人工知能処理部２０は、学習モードで動作する場合には、機械学習用のデータ（入力側および出力側の、それぞれのトークン列データ）を学習データ供給部１１から受け取る。人工知能処理部２０は、処理モードで動作する場合には、処理の入力となるデータ（トークン列データ）を処理データ供給部１２から受け取り、処理結果の出力データ（トークン列データ）を処理結果データ取得部１３に渡す。
【００４３】
機械学習部２１は、学習モデル２２が機械学習を行うように制御する。具体的には、機械学習部２１は、学習データ供給部１１から受け取った学習データを、学習モデル２２に渡す。また、機械学習部２１は、学習データに基づいて、学習モデル２２が内部のパラメーターを更新するよう制御する。
【００４４】
学習モデル２２は、入力側のデータと出力側のデータとの関係をパラメーター等として保持するモデルである。学習モデル２２は、一例として、ニューラルネットワークによって実現される。学習モデル２２が、他のモデルとして実現されていてもよい。学習モデル２２は、例えばニューラルネットワークで実現されている場合には、逆誤差伝搬法を用いて内部のパラメーターを更新する。
【００４５】
処理実行部２３は、学習モデル２２を参照しながら、入力されるデータに基づく出力データを求めて、出力する。
【００４６】
人工知能処理部２０は、例えば、自動翻訳処理や、自動応答処理や、自動要約処理などといった処理を行うことができる。人工知能処理部２０が、これらのうちのどの処理を行うかは、学習モデル２２がどのように機械学習しているかに依存する。言い換えれば、学習モデル２２の状態に依存する。
【００４７】
自動翻訳処理は、ある言語として、いわゆるソース言語による自然言語文に対応するトークン列を入力し、入力と意味に対応する意味（略同一の意味）を有する他の言語（ターゲット言語）による自然言語文に対応するトークン列を出力する。自動応答処理は、自然言語文の文章に対応するトークン列を入力し、その入力への回答の文に対応するトークン列を出力する。自動応答処理は、例えば、企業等による顧客からの問い合わせに対して回答する業務に利用可能である。自動要約処理は、自然言語文の文章に対応するトークン列を入力し、その入力文を要約した文に対応するトークン列を出力する。
【００４８】
なお、人工知能処理部２０が行う処理において、入力側の言語と出力側の言語は、同一であっても異なるものであってもよい。ただし、例えば自動翻訳処理の場合には、通常は、入力側の言語と出力側の言語は互いに異なる。例えば自動応答処理や自動要約処理において、入力側の言語と出力側の言語は、同一であっても異なるものであってもよい。
【００４９】
次に、図２と図３を参照しながら、トークン化前の自然言語データとトークン化処理後のデータとの関係について、実例を用いて説明する。
【００５０】
図２は、第１型の言語、即ち、単語等の間に基本的に空白文字が存在する言語の場合の、トークン化処理部４および５に入力される自然言語データと、トークン化処理部４および５から出力されるトークン列のデータとの関係の一例を示す概略図である。
図２に示すように、本例では、入力される自然言語データは、記号（文字等）の列であり、「I've found "The dog."」というものである。この記号列を単語等に分割してそれらの各々をトークンとして、さらに第２特殊トークンを挿入したデータが、出力トークン列である。出力トークン列に含まれる各トークンには参照番号（Ｔ１からＴ１２まで）を付している。出力トークン列のうちの、トークンＴ１，Ｔ３，Ｔ４，Ｔ５，Ｔ７，Ｔ８，Ｔ１０，Ｔ１２は、入力された自然言語データから取り出された単語等である。トークンＴ３は、語の省略形を示すアポストロフィーを含む「've」に対応する。トークンＴ５およびＴ１２のそれぞれは、引用符（ダブルクォーテーション）に対応する。トークンＴ１０は、ピリオドに対応する。そして、トークンＴ２，Ｔ６，Ｔ９，Ｔ１１は、単語等の間に空白文字がないことを表すための第２特殊トークンである。第２特殊トークンは [sp]と表記されている。例えば、トークンＴ２は、第２特殊トークンであり、トークンＴ１の「I」とトークンＴ３の「've」との間に空白文字が存在しないことを表すものである。
【００５１】
以上、例を用いて説明したように、第１型の自然言語による入力データに対応してトークン化処理部４および５のそれぞれから出力されるトークン列は、特殊トークンを含むことにより、単語等の間に空白文字の有無の情報を保持する。本実施形態では、トークン化処理部４および５のそれぞれは、第１型の自然言語による入力データの場合には、第１特殊トークンを省略して、第２特殊トークンのみを含む出力トークン列を出力する。
【００５２】
図３は、第２型の言語、即ち、単語等の間に基本的に空白文字が存在しない言語の場合の、トークン化処理部４および５に入力される自然言語データと、トークン化処理部４および５から出力されるタグ列のデータとの関係を示す概略図である。図示するように、本例では、入力される自然言語データは、記号の列であり、「明日New Yorkに行きます。」というものである。この記号列を形態素解析して、得られた形態素等の各々をトークンとして、さらに第１特殊トークンを挿入したデータが、出力トークン列である。出力トークン列に含まれる各トークンには参照番号（Ｔ２１からＴ２８まで）を付している。出力トークン列のうちの、トークンＴ２３以外の各トークンは、形態素解析によって得られた形態素等である。トークンＴ３は、語の省略形を示すアポストロフィーを含む「've」に対応する。トークンＴ２８は、句点に対応するトークンである。そして、トークンＴ２３は、形態素等の間に空白文字があることを表すための第１特殊トークンである。第１特殊トークンは [ss]と表記されている。このトークンＴ２３は、トークンＴ２２の「New」とトークンＴ２４の「York」との間に空白文字が存在することを表すものである。
【００５３】
以上、例を用いて説明したように、第２型の自然言語による入力データに対応してトークン化処理部４および５のそれぞれから出力されるトークン列は、特殊トークンを含むことにより、単語等の間に空白文字の有無の情報を保持する。本実施形態では、トークン化処理部４および５のそれぞれは、第２型の自然言語による入力データの場合には、第２特殊トークンを省略して、第１特殊トークンのみを含む出力トークン列を出力する。
【００５４】
以上、図２と図３を参照しながら、トークン化処理部４および５の入力データと出力データとの関係を説明した。なお、非トークン化処理部６は、トークン化の処理と逆の処理を行う。つまり、非トークン化処理部６は、トークン列を入力し、そのトークン列に対応する記号列を出力する。非トークン化処理部６が扱うトークン列（入力側）と、自然言語データ（出力側、記号列）も、図２と図３で説明したデータと同様のデータである。
【００５５】
次に、自然言語データ処理装置１内における、主要な処理の手順について、フローチャートを参照しながら説明する。図４，図５，図６，図７は、トークン化（tokenization）および非トークン化（detokenization）の処理を示す。
【００５６】
図４は、第１型言語（単語等の間に基本的に空白文字が存在する言語）による自然言語データの、トークン化処理の手順を示すフローチャートである。トークン化処理は、トークン化処理部４や５によって実行される。以下では、代表してトークン化処理部４の動作として説明するが、トークン化処理部５も同様の処理を行うものである。
【００５７】
ステップＳ１１において、トークン化処理部４は、自然言語データ取得部２から、自然言語による入力文データを受け取る。
【００５８】
ステップＳ１２において、トークン化処理部４は、ルール等に基づいて入力文データ内の単語等を分割する。ここでのルール集合の一部（例）は、次の通りである。
（１）空白文字で区切られた単語を１つのトークンとするために切り出す。
（２）空白文字で区切られていなくても、例えば「have」の省略である「've」や、「is」あるいは「has」の省略形である「's」を、１つのトークンとするために切り出す。
（３）カンマや、ピリオドや、クォーテーションマーク等の記号を、１つのトークンとするために切り出す。
【００５９】
ステップＳ１３において、トークン化処理部４は、ステップＳ１２の処理で切り出された各々の単語等を、トークンとする。トークン化処理部４は、本ステップで生成するトークンを、元の入力文データにおける順序に対応付けて、順序付けする。
【００６０】
ステップＳ１４において、トークン化処理部４は、元の入力文データにおいて特定文字（空白文字）が含まれていなかった箇所に、第２特殊トークン（図２で示した[sp]）を挿入する。本ステップにおいても、生成したトークン列におけるトークンの順序は、元の入力文データに対応している。
【００６１】
ステップＳ１５において、トークン化処理部４は、生成したトークン列を出力する。つまり、トークン化処理部４は、生成したトークン列を、学習データ供給部１１または処理データ供給部１２に渡す。以上により、トークン化処理を終了する。
【００６２】
図５は、第１型言語に対応するトークン列のデータを非トークン化する処理の手順を示すフローチャートである。
【００６３】
ステップＳ２１において、非トークン化処理部６は、処理結果データ取得部１３から、トークン列データを受け取る。ここで処理結果データ取得部１３から渡されるトークン列データは、第２特殊トークンを含み、第１特殊トークンを含まない。
【００６４】
ステップＳ２２において、非トークン化処理部６は、トークン列に含まれるトークンのうち、単語等に対応するトークン（特殊トークン以外のトークン）を、単語等に変換する。また、非トークン化処理部６は、受け取ったトークン列におけるトークンの順序に従って、返還後の単語等を順番に並べる。
【００６５】
ステップＳ２３において、非トークン化処理部６は、ステップＳ２２で並べた単語等の間に、空白文字を挿入する。これにより、単語等は空白文字によって区切られる。
【００６６】
ステップＳ２４において、非トークン化処理部６は、受け取ったトークン列の中で第２特殊トークンが存在していた位置に対応する空白文字（ステップＳ２３で挿入した空白文字の、一部）を削除する。図２の例で言うと、例えば、「I」と「've」との間の空白文字が削除され、「I've」を出力できるようにする。これにより、非トークン化処理部６は、空白文字を含む箇所と含まない箇所とを有する自然言語文を生成する。
【００６７】
ステップＳ２５において、非トークン化処理部６は、ステップＳ２４で生成された自然言語データを出力する。つまり、非トークン化処理部６は、生成した自然言語による文のデータを、自然言語データ出力部７に渡す。以上により、非トークン化処理を終了する。
【００６８】
図６は、第２型言語（単語等の間に基本的に空白文字が存在しない言語）による自然言語データの、トークン化処理の手順を示すフローチャートである。トークン化処理は、トークン化処理部４や５によって実行される。以下では、代表してトークン化処理部４の動作として説明するが、トークン化処理部５も同様の処理を行うものである。
【００６９】
ステップＳ３１において、トークン化処理部４は、自然言語データ取得部２から、自然言語による入力文データを受け取る。
【００７０】
ステップＳ３２において、トークン化処理部４は、形態素解析処理等により入力文データ内の単語等を分割する。トークン化処理部４は、単語等を１つのトークンとするために切り出す。また、トークン化処理部４は、句読点や引用符等をも、１つのトークンとするために切り出す。
【００７１】
ステップＳ３３において、トークン化処理部４は、ステップＳ３２の処理で切り出された各々の単語等を、トークンとする。トークン化処理部４は、本ステップで生成するトークンを、元の入力文データにおける順序に対応付けて、順序付けする。
【００７２】
ステップＳ３４において、トークン化処理部４は、元の入力文データにおいて特定文字（空白文字）が含まれていた箇所に、第１特殊トークン（図３で示した[ss]）を挿入する。本ステップにおいても、生成したトークン列におけるトークンの順序は、元の入力文データに対応している。
【００７３】
ステップＳ３５において、トークン化処理部４は、生成したトークン列を出力する。つまり、トークン化処理部４は、生成したトークン列を、学習データ供給部１１または処理データ供給部１２に渡す。以上により、トークン化処理を終了する。
【００７４】
図７は、第２型言語に対応するトークン列のデータを非トークン化する処理の手順を示すフローチャートである。
【００７５】
ステップＳ４１において、非トークン化処理部６は、処理結果データ取得部１３から、トークン列データを受け取る。ここで処理結果データ取得部１３から渡されるトークン列データは、第１特殊トークンを含み、第２特殊トークンを含まない。
【００７６】
ステップＳ４２において、非トークン化処理部６は、トークン列に含まれるトークンのうち、単語等に対応するトークン（特殊トークン以外のトークン）を、単語等に変換する。また、非トークン化処理部６は、受け取ったトークン列におけるトークンの順序に従って、返還後の単語等を順番に並べる。
【００７７】
ステップＳ４３において、非トークン化処理部６は、ステップＳ４２で並べた単語等の間のうち、第１特殊トークンが存在していた位置に、空白文字を挿入する。図３の例で言うと、「New」と「York」との間に空白文字を挿入する。これにより、この箇所の記号列は、「New York」となる。つまり、非トークン化処理部６は、形態素等の間で空白文字を含む箇所と含まない箇所とを有する自然言語文を生成する。
【００７８】
ステップＳ４４において、非トークン化処理部６は、ステップＳ４３で生成された自然言語データを出力する。つまり、非トークン化処理部６は、生成した自然言語による文のデータを、自然言語データ出力部７に渡す。以上により、非トークン化処理を終了する。
【００７９】
［第１変形例］
上の実施形態では、第２型の言語について、空白文字が存在する箇所に第１特殊トークンを用いることとした。第１変形例として、複数種類の空白文字が存在する場合に、空白文字の各種類に対応した複数種類の第１特殊トークンを用いるようにしてもよい。例えば、日本語の文を表現する場合に、いわゆる全角の空白文字と、半角の空白文字とを使い分ける場合がある。全角の空白文字と半角の空白文字とが混在すること自体の是非はともかくとして、本変形例は、このような状況に対応できるようにする。本変形例では、これらの、全角の空白文字と半角の空白文字に、別々の第１特殊トークンを対応付けて、これら両者のトークンを識別可能とする。学習モデル２２の学習の際にも、これら両特殊トークンの、片方のみを含んだ学習データや、両方を含んだ学習データなどを用いて、機械学習処理を行うようにする。そのように学習した学習モデル２２を使用することにより、処理実行部２３は、適宜、全角あるいは半角の空白文字にそれぞれ対応する第１特殊トークンを含んだ処理結果を出力する。この場合、非トークン化処理部６は、非トークン化処理において、全角の空白文字に対応する第１特殊トークンが存在する位置には、全角の空白文字を挿入する。また、半角の空白文字に対応する第１特殊トークンが存在する位置には、半角の空白文字を挿入する。
【００８０】
なお、この変形例において、第１特殊トークンの種類数は２に限定されず、３以上であってもよい。また、この変形例を適用する対象は、日本語に限らず、他の言語であってもよい。
【００８１】
［第２変形例］
人工知能処理部２０が、機械学習を行う機能を持たない構成としてもよい。この場合、人工知能処理部２０が機械学習部２１を持たない構成としてもよい。この場合、学習モデル２２は機械学習済みである。機械学習済みの学習モデル２２を、外部で作成し、その学習モデルのデータ（学習パラメーター等）を複写して取り込んだものであってもよい。
【００８２】
なお、上述した実施形態における自然言語データ処理装置の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８３】
本実施形態およびその変形例をまとめると、次の通りである。
【００８４】
自然言語データ処理装置（１ａ、１ｂ）は、次の構成を有する。自然言語データ取得部２や３や、記号（文字等）の列として自然言語データを取得する。トークン化処理部４や５は、自然言語データ取得部２や３が取得した前記自然言語データを形態素（単語等）に対応するトークンの列に変換するとともに、前記自然言語データにおいて形態素間に特定記号が含まれていた箇所を表す第１特殊トークンまたは前記自然言語データにおいて形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンの少なくともいずれかを前記トークンの列に挿入する。トークン化処理部４や５は、そのように生成したデータをトークン列として出力するものである。供給部（学習データ供給部１１および処理データ供給部１２）は、学習モデル２２を含む人工知能処理部２０に対して、前記学習モデルを学習させるための前記トークン化処理部から出力される入力トークン列と出力トークン列とのペア（学習データ）、または前記学習モデルによる処理を実行するための前記トークン化処理部から出力される入力トークン列（処理対象データ）、の少なくともいずれかを供給する。
【００８５】
自然言語データ処理装置（１）は、さらに次の構成を有してもよい。処理結果データ取得部１３は、前記供給部が供給した前記入力トークン列に基づいて人工知能処理部２０が処理を実行した結果として出力される出力トークン列を取得する。非トークン化処理部６は、処理結果データ取得部１３が取得した出力トークン列を記号の列に変換して出力する。なお、非トークン化処理部６は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号（空白文字等）に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない。
【００８６】
トークン化処理部４や５は、前記自然言語データの言語の種別（第１型言語、第２型言語、日本語、英語、ドイツ語、フランス語、中国語、韓国語等）に応じて、前記第１特殊トークンまたは前記第２特殊トークンのいずれか一方のみを前記トークンの列に挿入するようにしてもよい。これらのいずれか一方のみを挿入する形としても、他方の情報は失われない。
【００８７】
自然言語データ処理装置（１）が、人工知能処理部２０をさらに備える構成としてもよい。人工知能処理部２０は、前記供給部（処理データ供給部１２）が供給した前記入力トークン列を入力として、前記学習モデルに基づく処理（処理実行部２３による処理）を実行する。
【００８８】
上記の人工知能処理部２０は、前記供給部（処理データ供給部１２）が供給した前記入力トークン列を入力として、前記学習モデルに基づき、自然言語の翻訳処理と、自然言語の要約処理と、自然言語の応答処理との少なくともいずれかの処理を実行する。処理の種類は、学習モデル２２に蓄えられた知識に依存する。
【００８９】
上記の人工知能処理部２０は、前記トークン化処理部４および５からそれぞれ出力される入力トークン列と出力トークン列とのペアを用いて、学習モデル２２の機械学習処理を行う。これにより、学習モデル２２は、第１および第２の特殊トークンの存在を前提とした統計的特徴を知識として蓄える。
【００９０】
また、自然言語データ処理装置（１ｃ）を、次の構成としてもよい。即ち、自然言語データ処理装置（１ｃ）は、処理結果データ取得部１３と非トークン化処理部６とを含む構成である。処理結果データ取得部１３は、学習モデルを含む人工知能処理部２０が処理を実行した結果として出力される出力トークン列を取得する。非トークン化処理部６は、処理結果データ取得部１３が取得した出力トークン列を記号の列に変換して出力する。なお、前記の出力トークン列は、自然言語における形態素（単語等）に対応するトークンを含む。また、前記の出力トークン列は、自然言語の表現として形態素間に特定記号（空白文字等）が含まれる箇所を表す第１特殊トークン、または自然言語の表現として形態素間に特定記号が含まれていなかった箇所を表す第２特殊トークンの少なくともいずれかを含む。そして、非トークン化処理部６は、前記出力トークン列に含まれる前記第１特殊トークンを当該第１特殊トークンに対応する特定記号に置換し、前記出力トークン列に含まれる前記第２特殊トークンの箇所には前記特定記号を挿入しない。その具体的な処理の手順は、既に説明した通りである。
【００９１】
以上、説明したように、本実施形態（変形例を含む）によれば、自然言語の文章において元々存在した空白文字の情報を維持したまま、自然言語処理（機械翻訳処理、テキスト等による自動応答処理、自然言語で記述された文章の要約処理等）を行う。これにより、自然言語処理の結果として出力されるデータ（トークン列）は、空白文字の有無を表す情報を持っている。これにより、出力する文章には、適切に空白文字を入れたり、入れなかったりすることが可能となる。
【００９２】
また、本実施形態（変形例を含む）によれば、空白文字で単語が基本的に区切られている言語（第１型言語と呼んだ）とそれ以外の言語（第２型言語と呼んだ）で、空白の有無を表す情報（特殊トークン）の埋め込み方法を変える。
【００９３】
つまり、単語が基本的にスペース文字で区切られている言語（第１型言語）の場合（英語等の場合）、単語等の間で空白文字が存在しない場合に、そのことを表す第２特殊トークンを用いる。単語等の間で空白文字が存在することは普通のことであるため、そのことを表す特殊トークンをわざわざ用いない。逆に、単語が基本的にスペース文字で区切られていない言語（第２型言語）の場合（日本語等の場合）、単語等の間で空白文字が存在する場合に、そのことを表す第１特殊トークンを用いる。単語等の間で空白文字が存在しないことは普通のことであるため、そのことを表す特殊トークンをわざわざ用いない。これにより、表現としてのデータの量を節約することができる。また、人工知能処理部２０による処理を行う際に、統計情報が無駄に膨れ上がることもない。
【００９４】
つまり、本実施形態により、複雑なルールをあらかじめ準備することなく、簡単な方法で、適切に、空白文字の挿入の有無をコントロールすることができる。
【００９５】
例えば、韓国語で書かれた通常の文章では、基本的に単語等の間には空白文字が入らないものの、ところどころ（例えば日本語よりは多い頻度で）空白文字が挿入される。こういった状況で、どういう場合に空白文字が挿入されて、どういう場合に空白文字が挿入されないかを、ルールとして完全に記述することが非常に困難である。本実施形態では、特殊トークンを用いることにより、簡単な処理で、空白文字を挿入することができる。
【００９６】
図８は、韓国語による表現の例を示す概略図である。同図に示す韓国語のテキストは、日本語に翻訳すると「東京湾に面した漁師の町であった千葉県浦安市。」という意味である。図示するように、韓国語では、すべての単語間に空白文字が挿入されるわけではないが、ところどころに空白文字が挿入されている。
【００９７】
図９は、日本語による表現の例を示す概略図である。同図に示す日本語のテキストは、「日程調整中  東アジアサミット」である。この表現では、「中」と「東」の間に空白文字が挿入されている。これは、仮にこの空白がないと、この表現が「東アジアサミット」について表すものか「中東アジアサミット」について表すものかが曖昧になる。この表現は、その曖昧性を避けるために意図的に空白文字を含むようにしている。このように、通常は単語間に空白文字を含まない日本語であっても、場合によっては、意図的に空白文字が挿入される。本実施形態は、そのような空白文字の存在の情報を維持しながら、自然言語データの処理を可能とする。
【００９８】
以上、この発明の実施形態および変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００９９】
本発明は、例えば、自然言語を利用した情報の伝達等の全般に広く利用することができる。但し、本発明の利用範囲はここに例示したものには限られない。また、実施形態では、英語や日本語の例を用いて説明したが、その他の自然言語にも本発明を適用することが可能である。
【符号の説明】
【０１００】
１，１ａ，１ｂ，１ｃ  自然言語データ処理装置
２，３  自然言語データ取得部
４，５  トークン化処理部
６  非トークン化処理部
７  自然言語データ出力部
１１  学習データ供給部
１２  処理データ供給部
１３  処理結果データ取得部
２０  人工知能処理部
２１  機械学習部
２２  学習モデル
２３  処理実行部
【図１】
2020160782.tif 000003
【図２】
2020160782.tif 000004
【図３】
2020160782.tif 000005
【図４】
2020160782.tif 000006
【図５】
2020160782.tif 000007
【図６】
2020160782.tif 000008
【図７】
2020160782.tif 000009
【図８】
2020160782.tif 000010
【図９】
2020160782.tif 000011