(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-14
(45)【発行日】2025-01-22
(54)【発明の名称】自然言語処理方法、自然言語処理システム及び、自然言語処理プログラム
(51)【国際特許分類】
G06F 40/30 20200101AFI20250115BHJP
G06F 40/56 20200101ALI20250115BHJP
G06F 16/90 20190101ALI20250115BHJP
【FI】
G06F40/30
G06F40/56
G06F16/90 100
(21)【出願番号】P 2023034573
(22)【出願日】2023-03-07
【審査請求日】2023-04-19
(73)【特許権者】
【識別番号】520424836
【氏名又は名称】株式会社シーマン人工知能研究所
(74)【代理人】
【識別番号】100137338
【氏名又は名称】辻田 朋子
(74)【代理人】
【識別番号】100224719
【氏名又は名称】長谷川 隆治
(72)【発明者】
【氏名】齋藤 裕
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開平07-219952(JP,A)
【文献】特開2009-176168(JP,A)
【文献】特開平08-147297(JP,A)
【文献】吉岡 孝治、外3名,常識的連想によるニュースヘッドラインからの会話文生成,情報処理学会研究報告 平成21年度6 [DVD-ROM],日本,社団法人情報処理学会,2010年04月15日,p.1-8
【文献】元永 靖和、外2名,意味的共起関係を用いた動詞と名詞の同音異義語の仮名漢字変換,言語処理学会第6回年次大会発表論文集,日本,言語処理学会,2000年03月07日,p.167-170
【文献】陸 烽、外1名,第二言語作文支援のための句構造解析と係り受け解析を利用した句共起関係コーパスの構築,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2016年02月27日,第115巻,第492号,p.115-118
【文献】内田 臣了、外4名,経験的属性によるオブジェクト検索,日本データベース学会和文論文誌,日本,日本データベース学会,2016年11月16日,第14-J巻,p.1-7
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コンピュータが、それ自体が意味を持つ要素である単語に対し属性情報を付与した単語辞書と、
単語と組み合わせて意味を持つ要素であるエレメントに対し属性情報を付与したエレメント辞書と、
1または複数の単語グループの指定、1または複数のエレメントグループの指定および、それらの配列を定義し、入力文に含まれた要素の組み合わせおよび、配列から入力文を認識する為の対話テンプレートと、
複数の単語グループの指定、0、1または複数のエレメントグループの指定および、それらの配列を定義し、入力文に含まれた連続する複数の要素のまとまりを1単位の要素として認識する為のワードテンプレートと、を記憶部に格納し、
入力文を
要素に分解して、該入力文を構成する
一部の要素
であって連続する複数の要素のまとまりと前記ワードテンプレートをマッチングし、前記ワードテンプレートにマッチングした前記まとまりを1単位の要素とし、
前記1単位の要素および、該入力文を構成するその他の要素に基づいて、前記入力文に対応するテンプレートを選択する自然言語処理方法。
【請求項2】
前記ワードテンプレートを用いた対話テンプレートにマッチングにおいては、前記ワードテンプレートによって1単位の要素とされた前記まとまりを代表する要素と、該入力文を構成するその他の要素に基づいて、入力文に対応するテンプレートを前記選択する、請求項1に記載の自然言語処理方法。
【請求項3】
前記対話テンプレートと紐づけて、前記入力文に呼応して実行されるアクションを示す指示情報を登録し、
入力文に対して選択された前記対話テンプレートに応じて、紐づけられた前記指示情報を実行する、請求項1に記載の自然言語処理方法。
【請求項4】
指示情報は、回答文の生成、回答文の出力または、制御命令の送信を含む、請求項1に記載の自然言語処理方法。
【請求項5】
前記指示情報は、回答テンプレートを用いた回答文の生成指示である、請求項4に記載の自然言語処理方法。
【請求項6】
回答文の生成指示に係る前記指示情報は、前記入力文に含まれた特定の要素の属性情報を用いて、共通属性を有する単語への置換、エレメントの活用形の変換、単語の上位概念への変換、単語を立場変換する処理の何れかを含む、請求項4
または請求項5に記載の自然言語処理方法。
【請求項7】
前記属性情報は、単語の意味を、2層以上の階層構造をとる分類の組み合わせにより定義する第1属性を含み、
回答文の生成指示に係る前記指示情報は、前記入力文に含まれる単語の前記第1属性を、前記階層構造における位置関係を操作することで特定される所定の単語を用い
て回答文
を生成
する指示
を含む、請求項6に記載の自然言語処理方法。
【請求項8】
回答文の生成指示に係る前記指示情報は、前記入力文に含まれる前記エレメントの前記属性情報を、所定の属性情報に変換することで特定される所定のエレメントを用い
て回答文
を生成
する指示
を含む、請求項6に記載の自然言語処理方法。
【請求項9】
回答文の生成指示に係る前記指示情報は、前記入力文に含まれる所定の単語の
配列を定義する位置情報を、別の位置情報に変換
して回答文
を生成
する指示
を含む、請求項6に記載の自然言語処理方法。
【請求項10】
入力文
を受け付け、入力文を構成する
各要素
を含む要素のグループを決定し、決定した要素のグループ
を、該入力文における要素の配列に従って配列して新たなテンプレートを生成する、請求項1に記載の自然言語処理方法。
【請求項11】
前記単語辞書は、前記属性情報として、単語の意味を、2層以上の階層構造をとる分類の組み合わせにより定義する第1属性を含み、
入力文を構成する単語の第1属性により定義される単語のグループに基づき、新たなテンプレートを生成する、請求項10に記載の自然言語処理方法。
【請求項12】
入力文を構成するエレメントの属性情報により定義されるエレメントのグループに基づき、新たなテンプレートを生成する、請求項10
または請求項11に記載の自然言語処理方法。
【請求項13】
それ自体が意味を持つ要素である単語に対し属性情報を付与した単語辞書と、
単語と組み合わせて意味を持つ要素であるエレメントに対し属性情報を付与したエレメント辞書と、
1または複数の単語グループの指定、1または複数のエレメントグループの指定および、それらの配列を定義し、入力文に含まれた要素の組み合わせおよび、配列から入力文を認識する為の対話テンプレートと、
複数の単語グループの指定、0、1または複数のエレメントグループの指定および、それらの配列を定義し、入力文に含まれた連続する複数の要素のまとまりを1単位の要素として認識する為のワードテンプレートと、を格納する記憶部と、
入力文を
要素に分解して、該入力文を構成する
一部の要素
であって連続する複数の要素のまとまりと前記ワードテンプレートをマッチングし、前記ワードテンプレートにマッチングした前記まとまりを1単位の要素とし、
前記1単位の要素および、該入力文を構成するその他の要素に基づいて、前記入力文に対応するテンプレートを選択するテンプレート処理部と、を備える自然言語処理システム。
【請求項14】
それ自体が意味を持つ要素である単語に対し属性情報を付与した単語辞書と、
単語と組み合わせて意味を持つ要素であるエレメントに対し属性情報を付与したエレメント辞書と、
1または複数の単語グループの指定、1または複数のエレメントグループの指定および、それらの配列を定義し、入力文に含まれた要素の組み合わせおよび、配列から入力文を認識する為の対話テンプレートと、
複数の単語グループの指定、0、1または複数のエレメントグループの指定および、それらの配列を定義し、入力文に含まれた連続する複数の要素のまとまりを1単位の要素として認識する為のワードテンプレートと、を記憶部に格納したコンピュータを、
入力文を
要素に分解して、該入力文を構成する
一部の要素
であって連続する複数の要素のまとまりと前記ワードテンプレートをマッチングし、前記ワードテンプレートにマッチングした前記まとまりを1単位の要素とし、
前記1単位の要素および、該入力文を構成するその他の要素に基づいて、前記入力文に対応するテンプレートを選択するテンプレート処理部として機能させる、自然言語処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、日本語の自然言語処理方法、自然言語処理システム及び、自然言語処理プログラムに関する。
【背景技術】
【0002】
従来、自然言語処理を行うコンピュータと人が対話する技術が知られている。言語別に適した自然言語処理とすることで、コンピュータと人の間で、より自然な対話を実現可能であり、特に日本語に適合した自然言語処理技術が知られている。
【0003】
特許文献1は、中間述部に補う必要がある機能語をより適切に補完する技術を開示している。特許文献1は、述部の機能表現に意味ラベルを付与し、さらにそれらをMod,Foc,Tという3種類に分類する。時制判定部71が、補完対象となる中間述部の機能表現の意味と種類及び中間述部に後続する接続詞から、その中間述部に対し何らかの機能表現を補完する必要があるか判断する。補完処理部72は、補完すべき機能表現が必要だと判断された中間述部に対して、その中間述部とその直後にある補完もと述部の機能表現の意味ラベルを比較する。その中間述部の機能表現の種類(Mod,Foc,T)から、その中間述部の「欠如」している機能表現を判断する。直後の述部の機能表現から、その中間述部が欠如しているもののみを補完する、ことを開示している。
【0004】
特許文献2は、低コストで、適切な質問文を生成することができる技術を開示している。特許文献2は、質問文候補生成部29が、質問文から作成された、質問文に含まれる単語を空欄とし、空欄に単語の品詞及び意味属性を付与したテンプレートに対し、少なくとも1つのラベルを入力として、空欄に付与された品詞及び意味属性と対応する、入力されたラベルに特徴的な単語によって空欄を置き換えることにより、質問文候補を生成する。質問文評価部30は、質問文候補の各々について、入力されたラベルに対応する言語モデルを用いて、尤もらしさを表すスコアを計算し、尤もらしさが高い質問文候補を、質問文として出力する、ことを開示している。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2011-164678号公報
【文献】特開2017-27233
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、日本語の自然言語処理において、より自然な対話を行う為の新規な技術を提供することを解決すべき課題とする。
【課題を解決するための手段】
【0007】
上述したような課題を解決するために、本発明は、自然言語処理方法であって、コンピュータが、それ自体が意味を持つ要素である単語に対し属性情報を付与した単語辞書と、複数の要素の組み合わせが定義された、テンプレートと、を記憶部に格納し、入力文を構成する要素の組み合わせに基づいて、前記入力文に対応するテンプレートを選択する。
【0008】
また、本発明は、自然言語処理システムであって、それ自体が意味を持つ要素である単語に対し属性情報を付与した単語辞書と、複数の要素の組み合わせが定義された、テンプレートと、を格納する記憶部と、入力文を構成する要素の組み合わせに基づいて、前記入力文に対応するテンプレートを選択するテンプレート処理部と、を備える。
【0009】
また、本発明は、自然言語処理プログラムであって、それ自体が意味を持つ要素である単語に対し属性情報を付与した単語辞書と、複数の要素の組み合わせが定義された、テンプレートと、を記憶部に格納したコンピュータを、入力文を構成する要素の組み合わせに基づいて、前記入力文に対応するテンプレートを選択するテンプレート処理部として機能させる。
【0010】
本発明の好ましい形態では、前記要素は、単語と組み合わせて意味を持つ要素であるエレメントを含み、前記テンプレートは、1又は複数の前記単語のグループ並びに、0、1又は複数の前記エレメントのグループを比較対象として有すると共に、入力文における前記比較対象の並び順を示す位置情報を有し、前記入力文を構成する要素の属するグループを前記並び順に従って比較することで、前記テンプレートを選択する。
【0011】
日本語は、語句の順序に関する明確な文法定義が存在せず、語順が変化した場合の語句同士の係り受け関係を認識することが困難である。また、日本語は、口語による崩れ表現について、文法上の明確な定義が存在しない。崩れ表現の中には、文章全体の意味を左右する重要な意味を含むこともある一方で、自然言語処理では、崩れ表現が含む意味を正確に認識することが困難であった。上述した構成とすることで、入力文を属性の組み合わせとして分類できる為、係り受け関係や崩れ表現認識を含めて抽象的に認識することができる。
【0012】
本発明の好ましい形態では、前記テンプレートは、入力文に含まれた要素の組み合わせから入力文を認識する為の対話テンプレート及び、入力文に含まれた連続した複数の要素を1単位の要素として認識する為のワードテンプレートを含み、入力文を構成する連続した複数の要素を、前記ワードテンプレートを適用して1単位の要素にまとめ、前記ワードテンプレートによってまとめられた要素を用いて、前記対話テンプレートを選択する。
【0013】
このような構成とすることで、他の単語を修飾する単語やエレメント等と、修飾される単語を区別することができ、入力文の意味認識をより正確に行うことができる。
【0014】
本発明の好ましい形態では、さらに、入力文に対する回答文の指示情報を、前記テンプレートに紐づけて記憶し、前記選択されたテンプレートに紐づけられた指示情報に従って、入力文に対する回答文を生成する。
本発明の好ましい形態では、前記指示情報は、前記入力文に含まれた特定の要素の属性情報を用いて、共通属性を有する単語への置換、エレメントの活用形の変換、単語の上位概念への変換、単語を立場変換する処理の何れかを含む。
本発明の好ましい形態では、前記指示情報は、特定のテンプレートを用いた回答文の生成指示である。
本発明の好ましい形態では、前記属性情報は、単語の意味を、2層以上の階層構造をとる分類の組み合わせにより定義する第1属性を含み、前記指示情報は、前記入力文に含まれる単語の前記第1属性を、前記階層構造における位置関係を操作することで特定される所定の単語を用いた回答文の生成指示である。
本発明の好ましい形態では、前記要素は、単語と組み合わせて意味を持つ要素であるエレメントを含み、前記エレメントに対し、エレメントの意味を示す属性情報を付与したエレメント辞書を記憶部に格納し、前記指示情報は、前記入力文に含まれる前記エレメントの前記属性情報を、所定の属性情報に変換することで特定される所定のエレメントを用いた回答文の生成指示である。
本発明の好ましい形態では、前記テンプレートは、1又は複数の単語並びに、該単語の文中における位置情報を含み、前記指示情報は、前記入力文に含まれる所定の単語の前記位置情報を、別の位置情報に変換する回答文の生成指示である。
【0015】
共通の対象を話題とする場合であっても、話者によって対象の表現は変化する。人とコンピュータの対話において、コンピュータによる対象の表現の変化が適切でないと、人は対話に違和感を覚えることになる。このような構成とすることで、入力文を属性情報の組み合わせとして認識することで入力文の意味を抽象化し、当該意味に対する好ましい回答文を生成し、対象の表現の変化を反映させた違和感のない回答文を生成することができる。
【0016】
本発明の好ましい形態では、入力文を構成する要素について、要素のグループを決定し、要素のグループに基づいて新たなテンプレートを生成する。
本発明の好ましい形態では、前記単語辞書は、前記属性情報として、単語の意味を、2層以上の階層構造をとる分類の組み合わせにより定義する第1属性を含み、入力文を構成する単語の第1属性により定義される単語のグループに基づき、新たなテンプレートを生成する。
本発明の好ましい形態では、他の単語と組み合わせて意味を持たせる要素であるエレメントに属性情報を付与したエレメント辞書を、記憶部に格納し、入力文を構成するエレメントの属性情報により定義されるエレメントのグループに基づき、新たなテンプレートを生成する。
【0017】
このような構成とすることで、新たなテンプレートを容易に生成し、認識可能な入力文のバリエーションを増幅することができる。
【発明の効果】
【0018】
本発明によれば、日本語の自然言語処理において、より自然な対話を行う為の新規な技術を提供することができる。
【図面の簡単な説明】
【0019】
【
図1】本実施形態の自然言語処理システムの構成図。
【
図7】本実施形態の対話データの構成要素の概要図。
【
図10】本実施形態の対話テンプレート登録に関する処理フローチャート。
【
図11】本実施形態のワードテンプレート登録に関する処理フローチャート。
【
図12】本実施形態のユーザと対話を行う際の処理フローチャート。
【
図13】本実施形態の入力文から対話テンプレートを特定するまでの処理フローチャート。
【発明を実施するための形態】
【0020】
以下、図面を用いて、本発明の自然言語処理システムについて説明する。なお、以下に示す実施形態は本発明の一例であり、本発明を以下の実施形態に限定するものではなく、様々な構成を採用することもできる。
【0021】
本実施形態では自然言語処理システムの構成、動作等について説明するが、同様の構成の方法、装置、コンピュータのプログラム及び当該プログラムを格納したプログラム記録媒体なども、同様の作用効果を奏することができる。以下で説明する本実施形態にかかる一連の処理は、コンピュータで実行可能なプログラムとして提供され、CD-ROMやフレキシブルディスクなどの非一過性コンピュータ可読記録媒体、更には通信回線を経て提供可能である。また、本実施形態において、プログラムは、クライアント端末においてその機能を実現するために外部のコンピュータにおいて当該プログラムを起動するような、いわゆるクラウドコンピューティングの態様であってもよい。
【0022】
自然言語処理システムは、コンピュータ装置により構成される。コンピュータ装置は、CPU(Central Processing Unit)などの演算装置及び記憶装置を有する。当該コンピュータ装置は、記憶装置に格納される自然言語処理プログラムを、演算装置により実行することで、当該コンピュータ装置を自然言語処理装置として機能させることができる。自然言語処理方法は、自然言語処理装置を含むコンピュータ装置の処理により実現される。
【0023】
<1.1.システム構成>
図1は、自然言語処理システム1のシステム構成図の一例を示す。自然言語処理システム1は、
図1に示すように、入力文取得部10と、自然言語処理部20と、回答文出力部30と、データベースDBと、を備える。
【0024】
入力文取得部10は、対話者による入力データから入力文としてのテキストデータを取得する。入力文取得部10は、入力文を自然言語処理部20に対して出力する。入力データは、音声データ、画像データ又はテキストデータの何れであってもよい。入力データが音声データの場合、入力文取得部10は、音声データを文字起こし(テキスト認識)処理して、入力文を取得する。入力データが画像データの場合、入力文取得部10は、画像データをOCR処理等し、入力文を取得する。
【0025】
自然言語処理部20は、入力文取得部10より入力文を取得し、入力文を自然言語処理することで、回答文を生成する。自然言語処理部20は、入力文に応じた回答文を回答文出力部30に対して出力する。本実施形態では、自然言語処理部20は、登録部21と、分割部22と、ワード処理部23と、テンプレート処理部24と、回答文生成部25と、を備える。なお、本実施形態では、登録部21と、分割部22と、ワード処理部23とを用いて新規のテンプレート登録を行う。
【0026】
回答文出力部30は、自然言語処理部20より回答文を取得し、取得した回答文から生成した出力データを出力する。出力データは、音声データ又はテキストデータである。
【0027】
データベースDBは、自然言語処理部20とデータ通信可能に構成されている。
【0028】
<1.2.ハードウェア構成>
一実施形態において、自然言語処理システム1は、対話装置100及び自然言語処理装置200として構成される。対話装置100は、対話ロボット又は、端末装置などを含み、入力文取得部10及び回答文出力部30を備える。自然言語処理装置200は、サーバ装置などを含み、自然言語処理部20を備える。対話装置100及び自然言語処理装置200は、通信ネットワークに接続され、データ通信可能に構成される。
【0029】
図2(a)は、対話装置100のハードウェア構成図の一例を示す。対話装置100は、ハードウェア構成として、通信部101、制御部102、記憶部103、入力部104、出力部105を備える。
【0030】
通信部101は、通信ネットワークとの通信を制御し、対話装置100を動作させるために必要な入力や、動作結果に関するデータ出力を行う。
【0031】
制御部102は、CPU等の1又は2以上のプロセッサを含み、対話プログラム、OS、その他のアプリケーションを実行することで、対話装置100の動作処理全体を制御する。制御部102は、記憶部103に記憶されている対話プログラムに基づき、処理を実行することによって、コンピュータ装置を対話装置100として機能させ、後述する機能構成要素が実現される。
【0032】
記憶部103は、HDD(Hard disk Drive)、ROM(Read Only Memory)、RAM(Random Access Memory)等であって、対話プログラム及び、制御部102が当該プログラムに基づき処理を実行する際に利用するデータ等を記憶する。
【0033】
入力部104は、音声データ又はテキストデータを含む入力データを制御部102に入力する。入力部104は、音声データを取得するマイク、テキストデータを取得するキーボード、タッチパネルなどにより構成される。
【0034】
出力部105は、音声データ又はテキストデータを含む出力データを出力する。出力部105は、音声データを出力するスピーカ、テキストデータを表示するディスプレイなどにより構成される。
【0035】
図2(b)は、自然言語処理装置200のハードウェア構成図の一例を示す。自然言語処理装置200は、ハードウェア構成として、通信部201、制御部202、記憶部203を備える。
【0036】
通信部201は、通信ネットワークとの通信を制御し、自然言語処理装置200を動作させるために必要な入力や、動作結果に関するデータ出力を行う。
【0037】
制御部202は、CPU等の1又は2以上のプロセッサを含み、自然言語処理プログラム、OS、その他のアプリケーションを実行することで、自然言語処理装置200の動作処理全体を制御する。制御部202は、記憶部203に記憶されている自然言語処理プログラムに基づき、処理を実行することによって、コンピュータ装置を自然言語処理装置200として機能させ、後述する機能構成要素が実現される。
【0038】
記憶部203は、HDD(Hard disk Drive)、ROM(Read Only Memory)、RAM(Random Access Memory)等であって、自然言語処理プログラム及び、制御部202が当該プログラムに基づき処理を実行する際に利用するデータ等を記憶する。
【0039】
<1.3.データベース>
データベースDBは、単語辞書を格納する単語DB1と、エレメント辞書を格納するエレメントDB(活用辞書を格納する活用DB2、及び語尾辞書を格納する語尾DB3)と、ワードテンプレートを格納するワードテンプレートDB4と、対話テンプレートを格納する対話テンプレートDB5と、回答テンプレートを格納する回答テンプレートDB6と、対話シナリオを格納する対話シナリオDB7と、単語グループDB8と、を備える。
【0040】
<2.1.単語、エレメント>
図3は、本実施形態における単語、エレメント等の定義を示す概念図である。本実施形態において、それ自体が意味を持つ要素を「単語」と呼称する。単語は、例えば、「私」、「食べ」、「今日」、などを含む。単語は、従来の品詞として、名詞、動詞、形容詞、形容動詞、副詞、連体詞、接続詞、感動詞を含む。単語は、単語DB1の単語辞書に格納される。
【0041】
本実施形態において、それ自体が意味を持たず、単語と組み合わせて入力文に含まれる要素を「エレメント」と呼称する。エレメントは、私「は」、私「の」、食べ「る」、食べ「たい」、などの単語の活用を含む。エレメントは、従来の品詞としての助詞や助動詞を含む。活用は、活用DB2の活用辞書に格納される。
【0042】
また、エレメントは、更に単語又は他のエレメント(活用)に連なる語尾を含んでもよい。語尾は、例えば、食べたい「です」、食べたい「わ」などを含む。語尾は、語尾DB3の語尾辞書に格納される。活用DB2及び語尾DB3をエレメントDBとする。
【0043】
<2.2.ワード>
本実施形態において、1又は複数のを少なくとも含み、入力文に含まれた意味単位を示すひとまとまりの要素の組み合わせを「ワード」と呼称する。ワードは、「1又は複数の単語のみ」の場合もあれば、「1又は複数の単語+1又は複数のエレメント(活用及び/又は語尾)」の場合もある。ワードの具体例として、例えば、「焼肉弁当:単語+単語」、「私は:単語+活用」、「食べたい:単語+活用」、「食べたいです:単語+活用+語尾」などが挙げられる。また、「手の指の骨」のように、複数の単語と1又は複数のエレメントが組み合わされてワードを形成する場合もある。なお、「私:単語」についてもワードとして扱ってもよい。
【0044】
<2.3.単語グループ、エレメントグループ>
ここで、単語の集合を定義するグループを単語グループ(
図3の一点鎖線)、エレメントの集合を定義するグループをエレメントグループ(
図3の二点鎖線)とする。要素のグループとして、本実施形態では、1又は複数の単語の集合である単語グループと、1又は複数のエレメントの集合であるエレメントグループと、を含む。
単語DB1に格納された単語には単語グループが1又は複数設定される。単語グループは、例えば、単語に設定された1又は複数の属性情報(後述)によって定義される属性グループや、対応付けられたエレメントグループが共通する単語が属する単語修飾グループ等、単語に設定された情報によって定義されるグループと、グループリストに単語を追加等することで定義されるグループ等が挙げられる。
【0045】
また、エレメントDB格納されたエレメントは1又は複数のエレメントグループに属する。ここで、単語DB1の単語は参照する(連結され得るエレメントを示す)エレメントグループが対応付けられている。エレメントグループは、同じ要素に連結可能なエレメントの集合を定義するグループである。エレメントと組み合わせられる単語は、いわゆる主格や語幹等である。なお、エレメントグループは、活用の集合である活用グループ及び、語尾の集合である語尾グループを含む。活用グループは、例えば、共通する語幹に適用が可能な複数の活用の集合である。語尾グループは、例えば、日本語表現上、置換しても違和感のない複数の語尾の集合である。
【0046】
単語グループに属する単語のリスト等、単語グループを定義する為の情報が、単語グループDB8に格納されていてもよいし、単語の有する属性情報等に基づいて、単語グループが定義されてもよい。本実施形態では、同じエレメントグループが対応付けられる単語の集合を、共通活用グループなる単語グループとして定義し、共通活用グループの識別子であるグループIDをキーに、グループに属する複数の単語のリストを単語グループDB8に格納する。共通活用グループと活用グループがリストによって定義されることで、データベースDBにおいて単語とエレメントが紐付けされる。
【0047】
<2.4.属性情報>
本実施形態において、自然言語処理部20は、単語DB1及びエレメントDBに格納される単語及びエレメントを参照し、入力文に含まれる要素の属性情報に基づき自然言語処理を行う。属性情報は、要素の意味を示す情報であって、単語に関する単語属性と、エレメントに関するエレメント属性を含む。
【0048】
単語属性は、自体の意味内容又は質等を示す情報であり、本実施形態では、第1属性及び第2属性を含む。
第1属性は、単語の意味内容又は質を示す単語カテゴリとして定義される。本実施形態において、単語カテゴリは、単語の意味を示す分類であり、2層以上の階層構造をとる。分類の組み合わせによって、単語の意味が表される。
第2属性は、単語の意味内容又は質を示す修飾属性として定義される。修飾属性は、単語修飾グループなる単語グループ別に設定され、修飾属性の項目と、単語が持つ修飾的な意味を、テキスト、数値又は論理値(真理値)により表現した修飾属性値を有する。なお、単語修飾グループは、任意に指定された1又は複数の単語、及び/又は、任意に指定された1又は複数の単語カテゴリによって決定する1又は複数の単語が含まれ、単語に設定された単語修飾グループに応じて、単語の修飾属性が決定される。
【0049】
エレメント属性は、単語を補足するエレメントの情報であって、エレメントによって生じる話者の感情、意思、ニュアンス又は状況等を示し、本実施形態では、第3属性及び第4属性を含む。
第3属性は、活用の意味を示す活用属性として定義される。活用属性は、活用属性の項目と、活用の意味を、テキスト、数値又は論理値(真理値)により表現した活用属性値を有する。
第4属性は、語尾の意味を示す語尾属性として定義される。語尾属性は、語尾属性の項目と、単語に付与される語尾の意味を、テキスト、数値又は論理値(真理値)により表現した語尾属性値を示す。
【0050】
<2.5.単語辞書>
単語DB1は、複数の単語を定義した単語辞書を格納する。単語は、単語の意味に基づく単語カテゴリによって分類される。本実施形態において、単語カテゴリは、意味の抽象度に応じた階層構造を有する。階層構造は、2層以上の階層を有し、階層の数に限定はない。
【0051】
<2.6.単語カテゴリ>
図4(a)は、単語辞書の単語カテゴリの構成例を示す。単語カテゴリは、単語カテゴリに固有の識別子である単語カテゴリIDと、関連する単語カテゴリを示す関連単語カテゴリIDと、単語カテゴリ名と、を有する。関連単語カテゴリは、階層構造の親子関係を示す単語カテゴリIDを含み、本実施形態では、親となる単語カテゴリIDを指す。例えば、単語カテゴリ名「ブランド」は、親関係に該当する単語カテゴリ名「流通系」の関連単語カテゴリIDを有し、単語カテゴリ名「流通系」は、親関係に該当する単語カテゴリ名「食べ物」の関連単語カテゴリIDを有する。なお、関連単語カテゴリは、孫関係、兄弟関係、従兄関係など同じ単語グループに属する単語であれば、親子関係に限定されない。
【0052】
図4(b)は、単語辞書における単語の第1属性を示すデータ構成例である。構成例を示す。また、
図4(c)は、
図4(a)及び
図4(b)によって定義された単語の第1属性を示す概念図である。
図4(c)の単語カテゴリは、
図4(a)に示す関連単語カテゴリIDによって階層構造が定義されるものであり、左側が上位階層の単語カテゴリを、右側が下位階層の単語カテゴリを示す。下位階層の単語カテゴリは、上位階層の単語カテゴリに属し、上位階層の分類と組み合わせてその意味内容を示すものである。
図4(c)において、「ブランドA」なる単語(単語名称)は、例えば、上位から順に、食べ物、流通系、ブランドを指す単語カテゴリの階層構造によって、その意味が定義される。例えば、本実施形態では、
図4(b)に示すデータによって、「ブランドA」という単語に対して、単語がぶら下がる最下位の単語カテゴリ(
図4(c)ではブランド)の識別情報である関連単語カテゴリID(
図4(a)では10)が紐付けられると共に、単独又は単語カテゴリの識別子と組み合わせることで一意となる単語の識別子(単語ID)が紐づけられる。
【0053】
単語カテゴリ、単語カテゴリにより分類される品詞は、
図4に示した例に限定されない。なお、本実施形態では、単語カテゴリ名称と単語名称を、単語カテゴリID及び単語IDによって区別して扱っており、同じ単語名称の単語が異なる単語カテゴリの配下に存在してもよい。また、単語カテゴリ名称を示す各単語(
図4(a)の単語カテゴリ名称)に対しても単語カテゴリの識別子に代えて、単語の識別子を付与して単語として扱ってもよい。
【0054】
図5(a)は、単語辞書における単語データ及び、その第2属性を示すデータ構成例を示す。単語データは、単語に関するデータであって、単語の識別子である単語IDにより特定される。なお、
図5に示すテーブルや単語グループDB8に格納されたデータ等によって、単語データは、
図4で例示したような単語カテゴリID及び単語グループIDを有する。単語データは、
図5(a)に示すように、単語IDと、単語名と、単語名の読み(かな及びカナ)と、品詞と、単語の語幹と、語幹の読み(かな及びカナ)と、語幹の活用タイプと、修飾属性と、を含む。
【0055】
活用タイプは、動詞など活用される単語の分類を示し、本実施形態では単語に対応する活用テーブルを特定する為の情報である。活用テーブルID等であってもよい。
【0056】
修飾属性は、単語に紐付けられ、単語の付加的な意味を定義したデータを示す。修飾属性は、単語グループ毎に定義されてよく、例えば、本実施形態では、単語カテゴリによって定義される単語グループに対して、共通する修飾属性の項目が設定される。共通する修飾属性が付与される単語グループを、単語修飾グループとする。
【0057】
図示例では、単語修飾グループが単語カテゴリID=1(単語カテゴリ:食べ物)によって定義される場合、単語には修飾属性として、「美味しさ度」、「ジャンク度」、「高級度」などが定義され得る。修飾属性の各項目は、修飾属性値が設定され、例えば、ファストフードの単語であればジャンク度が高く、フレンチであれば高級度が高く設定される。修飾属性値は、テキスト、数値又は論理値などで設定される。本実施形態では、単語修飾グループは単語カテゴリ毎に設定されるが、その他の任意の単語の集合を単語修飾グループとしてもよい。上記の例では、一つの単語カテゴリIDによって単語修飾グループが定義されるが、複数の単語カテゴリのANDやORを条件として、一つの単語修飾グループが定義されてもよい。
【0058】
単語グループDB8は、単語グループを定義した単語グループテーブルを格納する。単語グループテーブルは、単語グループID等、単語グループの識別子をキーとして、単語グループ名と、単語グループに属する1又は複数の単語の識別子(単語ID)と、を有する。また、単語修飾グループを示す情報を格納する場合、単語修飾グループ対して付与される1又は複数の修飾属性名や識別子、修飾属性値のデータタイプ、文字数等が格納され得る。単語グループは、1又は複数の単語カテゴリによって定義されてもよく、1の単語カテゴリによって定義される場合、単語グループDB8に格納されなくてもよい。
【0059】
<2.7.活用辞書>
活用DB2(エレメントDB)は、複数の活用データ及びそのグループを定義した活用辞書(活用テーブル)を格納する。本実施形態では、活用テーブルには、活用テーブルIDが付与され、共通する単語に組み合わせ可能な活用の属する活用グループとして定義される。
図6は、活用辞書のデータ構成例を示す。活用データは、
図6に示すように、単独若しくは活用テーブルID等と組み合わせて一意となる、活用に固有の識別子である活用IDをキーとして、同グループに属する活用毎に、活用名、及び活用属性、疑問句マーカを有する。
【0060】
活用属性の項目は、活用が包含する意味を示すもので、基本、否定、質問、未来意思、過去完了、完了、願望、後悔、反意、可能に分類される。活用属性は、それぞれの意味の強度を示す活用属性値を有する。例えば、「食べるつもり」「食べる事にした」などの未来意思の意味をもつ活用は、「食べるつもり」よりも「食べる事にした」と表現する方がより強い「未来意思」の意味を包含するものと定義され、それぞれ未来意思の属性値「1」、属性値「2」として定義されている。
【0061】
活用テーブルは、単語の活用タイプ別に設定される。活用タイプは、五段活用、下一段活用など単語の一般的な活用形を示す。図示例の活用テーブルは、「食べ」、「寝」等、活用タイプが下一段活用となる単語に紐付けられる。本実施形態において、活用は、従来活用形として定義される句と、従来活用形として定義されない句と、を含むものであって、動詞などの活用表現の一部として使用される句として定義される。「食べる」という動詞を例に挙げると、「食べ」は活用しない語幹であり、「る」は活用可能な活用である。活用は、語幹の活用タイプ別に設定される。活用タイプが上一段活用又は下一段活用の動詞である場合、活用は、「る」「ます」「ない」「ません」「る?」「ます?」「ますか?」「る気がしない」「る気がしません」「ようかな」「ようっと」「てみるか」「るつもり」などが例として挙げられる。なお、ここで挙げた活用は、一例であり、多様な活用が定義されている。
【0062】
活用は、口語的な慣用表現を含むものであり、それぞれに意味が存在する。従来の日本語の動詞の活用形は、未然形、連用形、終止形、連体形、仮定形、命令形のように、活用形に応じた意味が定義されていた。一方で、従来の活用形では、口語などの活用について分類されておらず、活用が包含する意味を自然言語として処理することができなかった。活用辞書は、活用及び、活用属性を定義することで、口語的な慣用表現を自然言語として処理する目的で設定された辞書である。
【0063】
活用は、助詞や助動詞のみに限らず、名詞、動詞、形容詞、形容動詞、代名詞、副詞、連体詞、接続詞、感動詞などを含む従来の品詞の組み合わせ、又は、従来定義されていない品詞を含むことができる。
【0064】
活用辞書は、動詞以外の品詞を語幹とし、語幹に意味を付与する活用を定義した辞書を含むことができる。例えば、「人称」を活用する「は」「の」「が」等の助詞等をまとめて、活用グループとすることができる。この場合、例えば、単語に紐づけられた単語カテゴリによって、活用グループが定義されてもよい。単語辞書において活用タイプを有する単語は、当該活用タイプに対応する活用辞書が対応付けられている。
【0065】
<2.8.語尾辞書>
語尾DB3は、複数の語尾データを定義した語尾辞書を格納する。語尾データは、語尾の意味を定義したデータである。語尾データは、語尾に固有な識別子である語尾IDと、語尾名と、語尾属性と、を有する。
【0066】
語尾属性の項目は、語尾が包含する意味を示すものであり、基本、否定、質問、未来意思、過去完了、完了、願望、後悔、反意、可能に分類される。語尾属性は、それぞれの意味の強度を示す語尾属性値を有する。例えば、「ですか」「ですよね」などの質問の意味をもつ語尾は、「ですか」よりも「ですよね」と表現する方がより強い「質問」の意味を包含するものと定義され、それぞれ質問の属性値「1」、属性値「2」として定義されている。
【0067】
<2.9.対話データの構成要素例>
図7は、本実施形態における対話データの構成要素の概要図である。
図7(a)において、符号Aは対話データ(入力文)を、符号Bは単語を、符号Cはエレメントをそれぞれ示す。対話データA1は、単語辞書、エレメント辞書を参照して単語B1~B3、エレメントC1~C3に分割処理される。それぞれの単語B1~B3は、単語DB1において共通活用グループ(エレメントDBのエレメント)と紐付けられている為、入力文の先頭から、「単語のみ」、「単語+エレメント(活用)」、「単語+エレメント(活用)+エレメント(語尾)」等要素の組み合わせによるワードDを決定することができる。単語辞書を参照することで、ワードD1~3に設定された第1属性~第4属性が決定される。ワードは、ワードに含まれた単語やエレメントに基づいて、第1属性~第4属性として、各属性に固有の識別子や属性値等(単語カテゴリIDや属性名及び属性値など)が与えられる。例えば、ワードD1は、第1属性:単語カテゴリID=7(人称>一人称)、第2属性:属性名=属性値・・・のように、ワード毎に属性が決定可能である。
【0068】
<3.1.テンプレート>
テンプレートは、複数の要素のグループの組み合わせ及び、その並び順が定義された情報である。本実施形態では、テンプレートは1又は複数の玉座を有する。玉座は入力文に含まれた1又は複数のワードと比較される比較対象であり、それぞれの玉座には、当てはまる単語グループ及び/又はエレメントグループが1又は複数定義されている。この単語グループは、属性情報(例えば、単語カテゴリ等)が共通する単語の集合であってもよいし、単語グループDB8において特定の目的をもって集められた任意の単語の集合であってもよい。同様に、エレメントグループは、活用テーブル等によって定義される活用(エレメント)の集合であってもよいし、任意のエレメントの集合であってもよい。また、テンプレートは、玉座/入力文におけるワードの並び順を示す位置情報を有している。玉座に設定されたグループ及びその順番と、入力文のワード及びその順番とを比較することで、入力文に対するテンプレートのマッチングを行うことができる。位置情報は、玉座の、即ち、文章に含まれたワードの並び順を示し、入力文を構成するワードを、出現順に、並び順が対応する比較対象と比較して、テンプレートのマッチングが行われる。
【0069】
本実施形態において、テンプレートは、ワードテンプレートと、対話テンプレートと、回答テンプレートと、を含む。ワードテンプレートは、ワードの類型、まとまり、格等を判定する為のテンプレートであり、ワードテンプレートDB4に格納される。対話テンプレートは、入力文の内容・類型等を把握する為のテンプレートであり、対話テンプレートDB5に格納される。回答テンプレートは、回答文を作成する為のテンプレートであり、回答テンプレートDB6に格納される。
【0070】
<3.2.ワードテンプレート>
ワードテンプレートは、他の単語によって修飾された単語等、複数の要素を一つのワードとして認識する為のテンプレートである。ワードテンプレートにより、例えば、連続する複数の単語の組み合わせ、連続する複数の単語や、連続する1又は複数の単語並びに、1又は複数のエレメントの組み合わせを、ワードとして決定することができる。
図8は、ワードテンプレートデータのデータ構成図を示す。本実施形態において、ワードテンプレートは、ワードテンプレートに固有の識別子であるワードテンプレートIDと、サンプル文と、ワードテンプレート名と、入力文等において連続する要素の組み合わせとの比較対象となる1又は複数の玉座Eと、を有する。玉座Eは、位置情報、該玉座に当てはめられる1又は複数の単語及び/又はエレメントを含むものとする。本実施形態では、玉座には単語グループやエレメントグループが当てはめられ、これらグループを参照することで、連続して配置される第1の要素群と、第2以降の要素群と、の組み合わせからなる複数種類のワードを認識可能とする。グループは、単語グループ又はエレメントグループであり、本実施形態では、単語グループID及び活用テーブルIDの組が各玉座において指定される。
【0071】
ワードテンプレートID=1は、例えば、「手の」や「足の」等という言葉を含む入力文が入力された際にマッチングされるワードテンプレートである。第1の玉座E1は、「手」という単語と、「の」という付随句に対応する。第1の玉座E1は、位置情報が1であり、「手」や「足」が含まれた単語グループID(=11)と、「の」に関する活用テーブルID(=2)と、を有する。
なお、本実施形態では第1の玉座E1に、単語グループ及びエレメントグループのペアが含まれるものとするが、例えば、玉座E11及びE12として示すように、単語グループ及びエレメントグループをそれぞれ玉座に当てはめるようにしてもよい。図示例では、第1の玉座E11は、位置情報が1であり、「手」や「足」が含まれた単語グループID(=11)を有し、第2の玉座E12は、位置情報が2であり、「の」に関する活用テーブルID(=2)を有する。また、本実施形態では各玉座にグループが当てはめられるとしたが、玉座21として示すように、あるワードテンプレートに含まれた玉座において、一部又は全部のグループに代えて、単語そのもの又は、エレメントそのものが当てはめられてもよい。例えば、第1の玉座E21は、位置情報が1であり、「手」の単語ID(=111)と、「の」の活用ID(=222)と、を有する。またなお、一つの要素のみを含むグループが定義され、玉座に当てはめられてもよい。
【0072】
ワードテンプレートID=2は、例えば、「手の指」や「手の甲」、「足の指」等という言葉を含む入力文が入力された際にマッチングされるワードテンプレートである。第1の玉座E2は、「手の」というワードに対応し、第2の玉座E3は、「指」という単語(ワード)に対応する。第1の玉座E2は、位置情報が1であり、「手」に関するグループID(=11)と、「の」に関する活用テーブルID(=2)と、を有する。第2の玉座E3は、位置情報が2であり、「指」の単語グループID(=12)と、「指」が基本形(エレメントを含まない)であることを示す活用テーブルID(=1)と、を有する。図示例では、活用を含まない玉座に対しては、活用テーブルID=1が付与される。なお、対象の玉座が活用データを含まない場合、活用テーブルIDは省略されもよい。
【0073】
ワードテンプレートID=3は、例えば、「手の指の骨」や「手の指の皮」、「足の指の骨」等という言葉を含む入力文が入力された際にマッチングされるワードテンプレートである。第1の玉座E4は、位置情報が1であり、「手」に関する単語グループID(=11)と、「の」に関する活用テーブルID(=2)と、を有する。第2の玉座E5は、位置情報が2であり、「指」に関する単語グループID(=12)と、「の」に関する活用テーブルID(=2)と、を有する。第3の玉座E6は、位置情報が3であり、「骨」に関する単語グループID(=13)と、「骨」が基本形であることを示す活用テーブルID(=1)と、を有する。ワードテンプレートを構成する玉座の数は、制限されない。
【0074】
分割部22は、入力文取得部10が取得した入力文を要素に分割する。分割部22は、具体的には以下に示す分割ルールに従って分割処理を行う。分割部22は、単語DB1の単語辞書を参照し、入力文に含まれる単語を特定する。分割部22は、更に、エレメントDB(活用DB2、語尾DB3)を参照し、入力文に含まれるエレメント(活用、語尾)を特定する。
【0075】
ワード処理部23は、入力文に含まれた要素からワードを決定する。ワード処理部23は、ワードテンプレートDB4を参照し、入力文の先頭の単語から順次、連続して配置された要素の組み合わせが、登録されたワードテンプレートに該当するか否かを判定する。ワード処理部23は、ワードテンプレートに該当する組み合わせがある場合、ワードテンプレートに基づくワードとして確定させる。そして、ワード処理部23は、入力文の先頭から順に、ワードテンプレートが適用されていない単語を探し、その次に単語に対応する単語又はエレメントが有るか確認する。単語又はエレメントを特定できない場合、単独の単語のみのワードとする。単語又はエレメントを特定できた場合、更に連なる単語又はエレメントの有無を確認する。更に連なる単語又はエレメントを特定できない場合、例えば、単語及びエレメント(活用)からなるワードとする。特定できた場合は、例えば、単語、エレメント(活用)及びエレメント(語尾)からなるワードとする。分割部22は、入力文の先頭から末尾まで順に単語及びエレメントの参照を繰り返すことで、入力文を1又は複数のワードに分割する。また、ワード処理部23は、入力文に含まれた単語及び/又はエレメントのうち、何れのワードテンプレートも適用されなかった単語についても、ワードとし、対話テンプレートとのマッチングに進む。
【0076】
<3.3.対話テンプレート>
対話テンプレートの玉座には、必須比較対象及び任意比較対象を含み、本実施形態では、必須フラグによって区別される。任意比較対象は、入力文において省略が許容されるワードを示すものである。例えば、「昨日の夕食は何を食べた」という質問に対する入力文として、「夕食にカレーを食べた」、「カレーを食べた」等の対話データが入力される場合がある。このように、時勢や対象を示す単語、主語等(この例では「昨日」や「私は」、「夕食に」等)が省略される場合があり、それらが省略された場合にも、同じテンプレートにマッチングさせることができる。
【0077】
図9は、対話テンプレートデータのデータ構成図を示す。
図8において、対話テンプレートは、対話テンプレートに固有の識別子である対話テンプレートIDと、サンプル文と、対話テンプレート名と、比較対象となる1又は複数の玉座(W1~4)と、を有する。本実施形態において、玉座は、位置情報、必須フラグと、該玉座に当てはめられる要素のグループを含む。グループは、単語グループ若しくは、単語グループ及びエレメントグループであり、本実施形態では、単語グループID及び活用テーブルIDの組である。必須フラグは、玉座に対応するワードが対話データ中に必須であるか否かを示す論理値である。なお、ワードテンプレートのマッチングによって決定されたワードについては、ワードテンプレートの最後尾における単語若しくは、単語及びエレメントを、対話テンプレートにおける玉座とのマッチングに際して利用する。
【0078】
対話テンプレートID=1は、あいさつ言葉のテンプレートである。単語グループID=1には、例えば、「おはよう」や「こんにちは」等の単語が含まれており、これらの単語からなる入力文が入力された時に、マッチングされる(玉座W1)。なお、対象の玉座が活用データを含まない場合、活用テーブルIDは省略されるか、基本形を示すIDが定義されてもよい。図示例では、活用の含まない玉座に対しては、活用テーブルID=1が付与されている。
なお、例えば、
図8の玉座E11及びE12として示したように、要素のグループをそれぞれ各玉座に当てはめるようにしてもよい。また、
図8の玉座21として示したように、ある対話テンプレートに含まれた玉座において、一部又は全部のグループに代えて、要素そのものが当てはめられてもよい。
【0079】
対話テンプレートCT2は、天気質問のテンプレートであり、例えば、「今日の天気教えて」という対話データが入力された場合にマッチングするテンプレートである。第1の玉座W2は、位置情報が1であり、必須フラグが偽であり、「今日の」に含まれる「今日」に関する単語グループIDと、「の」に関する活用テーブルIDと、を有する。第2の玉座W3は、位置情報が2であり、必須フラグが真であり、「天気」に関する単語グループIDと、「天気」が基本形であることを示す活用テーブルIDを有する。第3の玉座W4は、位置情報が3であり、必須フラグが偽であり、「教えて」に含まれる「教え」に関する単語グループIDと、「て」に関する活用テーブルIDと、を有する。
【0080】
テンプレート処理部24は、ワード処理部23が決定した入力文のワードと、対話テンプレートを比較して、入力文に対応した対話テンプレートを決定する。本実施形態では、テンプレート処理部24は、対話テンプレートDB5の対話テンプレートを参照することで、入力文を構成するそれぞれの要素が属するグループの組み合わせの一致度に基づいて、入力文に対応するテンプレートを選択する。なお、玉座の組み合わせが必ずしも完全一致する必要はなく、一致率の最も高い対話テンプレートを入力文に対応するものとして決定してよい。一致率は、玉座の一致割合等によって求めて良い。
【0081】
<3.4.対話シナリオ>
本実施形態において、人と対話装置との間の対話は、対話シナリオに基づき進行する。対話シナリオは、対話の大まかな流れを設定したデータである。対話シナリオは、入力文により特定される対話テンプレートに基づき、その後の対話(入力文及びその回答文)に応じて分岐などが設定される。対話シナリオは、対話シナリオDB7に格納される。
【0082】
<3.5.指示情報>
指示情報は、対話テンプレートと紐付けて設定され、入力文に呼応して実行されるアクションを示す情報である。指示情報は、対話シナリオ上において、対話テンプレートと紐づけられてもよい。アクションは、定形の回答文の出力、並びに、回答文の生成及び出力を含む。回答文生成部25は、対話テンプレートに紐づけられた指示情報に基づくアクションを実行する。
【0083】
<3.6.回答文の生成・出力>
自然言語処理部20は、入力文を取得し、対話テンプレートDB5を参照することで、入力文を対話テンプレートに分類する。そして、回答文生成部25は、得られた対話テンプレートに対して事前に定義された指示情報を取得し、該指示情報に基づいて回答文を生成する。アクションが回答文の生成を含む場合、指示情報は、参照される1又は複数の玉座に配置される単語及び/又はエレメントに対する変換ルールを有した回答テンプレートを含む。このとき、回答文生成部25は、回答テンプレートDB6を参照して回答テンプレートを取得する。
【0084】
<3.7.回答テンプレート>
回答テンプレートは、入力文に対する回答の為のテンプレートであり、指示情報によって対話テンプレートに対応付けられる。回答テンプレートは、対応付けられた対話テンプレートの一部又は全部の玉座の参照を含む。例えば、入力文「カップラーメンを食べた」が、「玉座1:カップラーメンを」「玉座2:食べた」なる対話テンプレートとして認識された時、玉座1の「カップラーメン」という単語をそのまま参照して、回答文「カップラーメン」を生成することができる。回答テンプレートは、更に、参照される玉座若しくは、対話テンプレート(全部の玉座の参照を含む場合)に対する変換ルールを含んでいて良い。例えば、玉座1の「カップラーメン」という単語の単語カテゴリを上位概念化して、回答文「ラーメン」を生成することができる。対話テンプレートの玉座の参照と組み合わせて、定形の回答文を含んでいてもよい。例えば、玉座1の「カップラーメン」という単語に、「を食べたんだ」なる定型文を結合して、回答文「カップラーメンを食べたんだ」を生成することができる。
【0085】
<3.8.変換ルール>
変換ルールは、主格変換、疑問変換、倒置変換、省略変換、第1属性変換、第2属性変換、第3属性変換、第4属性変換などを含む。なお、変換ルールは、これらに限定されず、任意のルールを設定可能である。変換ルールは、対話テンプレートにおいて参照される所定の玉座に含まれた要素の属性情報を指定して設定可能である。回答テンプレートには、複数の変換ルールが組み合わせて含まれても構わない。
【0086】
主格変換は、入力文に含まれる「人称」に関する単語の1人称、2人称又は、3人称を変換する変換ルールである。これにより、話し手と聞き手の立場に応じた変換が可能となる。
疑問変換は、入力文を疑問文に変換する変換ルールである。例えば、入力文のエレメントを疑問文となるエレメントに変換したり、追加したりする変換ルールである。
倒置変換は、入力文に含まれる特定のワード(玉座)の位置情報を文末に変換し、倒置表現とするルールである。
省略変換は、入力文に含まれる特定のワードを省略するルールである。
【0087】
第1属性変換は、入力文に含まれる単語の単語カテゴリを変換するルールである。第1属性変換は、同じ単語グループに属する単語カテゴリか、異なる単語グループに属する単語カテゴリか、どの階層数に変換するかなどの第1属性に関連する変換の条件が設定される。これにより、単語DB1より、上位概念や下位概念の単語を取得可能となる。
第2属性変換は、入力文に含まれる単語の修飾属性を変換するルールである。第2属性変換は、特定の単語の修飾属性や修飾属性値を変更する条件が設定される。例えば、入力文に含まれた特定の単語の修飾属性値に対して加算減算等される値が設定され、加算減算等された修飾属性値を有した別の単語を決定することができる。
第3属性変換は、入力文に含まれる活用データの活用属性を変換するルールである。第3属性変換は、活用属性又は活用属性値を変更する条件が設定される。例えば、入力文に含まれた特定の活用の活用属性値に対して加算減算等される値が設定され、加算減算等された活用属性値を有した別の活用をエレメントDBより取得することができる。
第4属性変換は、入力文に含まれる語尾の語尾属性又は語尾属性値を変換するルールである。第4属性変換は、語尾属性又は、語尾属性値を変更する条件が設定される。例えば、入力文に含まれた特定の語尾の語尾属性値に対して加算減算等される値が設定され、加算減算等された語尾属性値を有した別の語尾をエレメントDBより取得することができる。
【0088】
<3.9.制御命令>
指示情報によるアクションは更に、任意の機器への制御命令を含んでもよい。制御命令は、任意の機器を動作させるための動作情報の出力を含み、例えば、所定の外部デバイスへの指示(例えば、電気を消す、カーテンを開ける、メールを送信する等)、検索装置への情報の検索指示、対話装置が搭載するアクチュエータ、ディスプレイ、スピーカの制御などを含む。動作情報には、入力文に含まれた任意のワードや単語が含まれてもよく、生成した回答文が含まれてもよい。
【0089】
<4.1.新規対話テンプレートの登録処理>
次いで、入力文をベースにして、新規の対話テンプレートを登録する際の処理について説明する。
図10は、対話テンプレート登録に関する処理フローチャートを示す。
【0090】
入力文取得部10は、新規対話テンプレートを登録しようとするユーザの端末装置(不図示)より入力された入力文を取得する(ステップS11)。分割部22は、入力文を要素に分割処理する(ステップS12)。ワード処理部23は、ワードテンプレートDB4を参照し、入力文に含まれたワードを決定する(ステップS13)。
【0091】
登録部21は、入力文から新規対話テンプレートの登録を行う。ステップS14において、登録部21は、ステップS13で入力文から得たワードに含まれる単語の単語グループやエレメントのエレメントグループを参照し、入力文に含まれたワードの出現順と対応付ける。入力文に含まれたワードの出現順が新規対話テンプレートの玉座の位置情報となり、参照したグループが玉座に紐づけれられる。
【0092】
ステップS15では、必要に応じて、対話テンプレートをストレッチング処理する。ストレッチング処理は、登録する新規対話テンプレートの各玉座における属性を広げたり、縮めたり、別の範囲に変更する等、入力文に応じて生成されるテンプレートの内容を変化させる処理である。本実施形態では、登録部21は、入力文に含まれた各ワードのグループについて、新規対話テンプレートを登録しようとするユーザの端末装置に提示して、適用範囲の変化した対話テンプレートを登録可能とする。例えば、入力文中のワードに含まれた単語の単語グループ(例えば、単語カテゴリ)を、新規の対話テンプレートにおける玉座の単語グループとすることができる。また、その上位の単語カテゴリ、下位の単語カテゴリ、その単語の単語修飾グループ、その他、任意の単語を含むグループ等、任意の単語グループを指定して、指定された単語グループを玉座に紐づけた対話テンプレートを生成することができる。また、ストレッチング処理において、単語辞書を検索し、入力文に含まれていない別の単語についてグループを指定可能に構成されてもよい。また、エレメントについては指定された単語に対応するエレメントグループが指定した単語グループに連動して選択されてもよいし、任意のエレメントグループが指定可能に構成されてもよい。また、入力文中のワードによって設定された玉座を削除したり、位置情報を入れ替える等が可能であってもよい。
【0093】
ステップS16において、登録部21は、入力文のワードの順番を玉座の位置情報とし、選択されたグループを玉座に紐付けて、対話テンプレートDB5に対話テンプレートを登録する。ストレッチング処理によって、同一玉座に対して複数の単語グループが指定される場合、登録部21は、それぞれの単語グループ毎に、対話テンプレートを登録してもよい。
【0094】
<4.2.新規ワードテンプレートの登録処理>
図11は、ワードテンプレート登録に関する処理フローチャートを示す。本実施形態において、ワードテンプレートは、複数のグループや、1又は複数の単語グループと、1又は複数のエレメントグループと、により設定される。登録部21は、単語グループ及びエレメントグループの指定を受け、新規ワードテンプレートの登録を行う。
【0095】
まず、登録部21は、新規ワードテンプレートを登録しようとするユーザの端末装置から、ワードテンプレートに関する登録指示要求を受け付ける(ステップS21)。登録部21は、第1の玉座に当てはめられる第1の単語グループ及び、第1のエレメントグループの選択を受け付ける(ステップS22)。ここで、登録部21は、単語カテゴリや、任意の単語データの選択を受け付け、単語グループを指定可能に構成してもよい。例えば、「A:指」という単語及び、「B:の」というエレメントを結合する為のワードテンプレートを登録する場合、Aに当てはまる単語グループが単語カテゴリによる単語グループや任意選択された単語の属する単語グループによって定義される。例えば、まず、Aとして、「指」や「手」、「足」、「頭」等を含む単語グループが指定される。そして、Bとして、「の」を含むエレメント(活用)グループが指定される。指定されたA、Bのグループが、それぞれ新規ワードテンプレートの玉座(
図8における位置情報1)に設定される。なお、エレメントを含まない玉座に対しては、エレメントを含まないことを示すことが登録(例えば、ヌルデータとする、所定の文字列を付与等)される。
【0096】
登録部21は、ワードテンプレートとして定義する単語及びエレメント(活用)の組み合わせを終了するか否かの選択を受け付ける(ステップS23)。組み合わせを継続する場合(ステップS23でNO)、登録部21は、続くステップS24に進み、処理を実行する。組み合わせを終了する場合(ステップS23でYES)、登録部21は、ステップS26に進み、ワードテンプレートの設定処理を完了する。
【0097】
ステップS24において、登録部21は、続く第2の玉座に紐付けられる単語グループ及び、エレメントグループの選択を受け付ける。ここで、登録部21は、任意の単語又はエレメントの選択を受け付け、選択された単語が属する単語グループや、エレメントが属するエレメントグループを指定可能に構成してもよい。なお、単語又はエレメントを含まない玉座に対しては、単語又はエレメントを含まないことを示すことが登録(例えば、ヌルデータとする、所定の文字列を付与等)される。ステップS25では、登録部21は、単語グループ及びエレメントグループの追加組み合わせを終了するか否かの選択を受け付ける。組み合わせを完了する場合(ステップS25でYES)、登録部21は、続くステップS26に進み、ワードテンプレートの設定処理を完了する。組み合わせを継続する場合(ステップS25でNO)、即ち、第3以降の玉座を設定する場合、登録部21は、ステップS24に戻り、更に組み合わせる単語グループ及びエレメントグループの選択を受け付け、玉座への紐付けを行う。
【0098】
登録部21は、ステップS21~S25で設定された玉座の位置情報と単語グループ及びエレメントグループに基づいて、ワードテンプレートをワードテンプレートDB4に格納する(ステップS27)。例えば、ワードテンプレートの構成の一態様として、ワードテンプレートは、複数の単語グループのみにより構成されてもよい。本態様のワードテンプレートは、「東京駅」「本棚」などのテキストデータが例として挙げられる。単語グループのみのワードテンプレートは、いわゆる熟語などが含まれる。登録部21は、ステップS22、S24において、エレメントグループを省略する選択を受け付けることで、単語グループのみのワードテンプレートの登録を受け付けることができる。なお、同一玉座に対して複数の単語グループが指定される場合、登録部21は、それぞれの単語グループ毎に、ワードテンプレートを登録してもよい。
【0099】
<5.1.入力文の自然言語処理>
次いで、対話テンプレート等を用いて、ユーザと対話を行う際の処理について説明する。
図12は、本実施形態にかかるユーザと対話を行う際の処理フローチャートを示す。
【0100】
<5.2.対話テンプレートの特定>
まず、ステップS31において、入力文に対応する対話テンプレートを特定する(ステップS31)。
図13は、入力文から対話テンプレートを特定するまでの処理フローチャートを示す。入力文取得部10は入力文を取得して、自然言語処理部20に対して出力する(ステップS41)。分割部22は、入力文を要素に分割処理する(ステップS42)。ワード処理部23は、入力文に含まれる要素の属性情報を参照する(ステップS43)。ワード処理部23は、単語辞書を参照して単語が有する単語カテゴリ(第1属性)及び修飾属性(第2属性)を特定する。ワード処理部23は、入力文が活用を含む場合、ワード処理部23は、活用辞書を参照して活用が有する活用属性(第3属性)を特定する。入力文が語尾を含む場合、ワード処理部23は、語尾辞書を参照し、語尾が有する語尾属性(第4属性)を特定する。
【0101】
<5.3.ワードテンプレート確定処理>
ワード処理部23は、分割処理した要素に基づきワードの確定処理を実行する(ステップS44~ステップS49)。まず、ワード処理部23は、分割された要素を入力文の先頭から順次組み合わせて仮のワードを生成する(ステップS45)。ステップS46では、ワード処理部23は、連続して配置された仮のワードの組み合わせが、ワードテンプレートDB4に格納されるワードテンプレートと一致するか判定する。ワード処理部23は、仮のワードの組み合わせがワードテンプレートDB4に格納されるワードテンプレートと一致しない場合(ステップS46でNO)、ステップS45に戻り、別の組み合わせに対して一致するワードテンプレートがないか判定する。ワード処理部23は、組み合わせが、ワードテンプレートDB4に格納されるワードテンプレートと一致する場合(ステップS46でYES)、ワードテンプレートに基づくワードを確定させる(ステップS47)。
【0102】
ワード処理部23は、入力文の全てのワードについて適用するワードテンプレートが確定するまでステップS44~ステップS49の処理を繰り返し実行する(ステップS48)。ステップS47において、該当するワードテンプレートが無いエレメントは、単独のワードとして確定させる。ワード処理部23は、入力文の全てのワードについて確定処理を完了すると、ステップS49に進み、続く処理を実行する。なお、ワード処理部23は、例えば2つ要素からなるワードを確定した後、更にそのワードと別の要素からなるワードを確定する等、一度決定したワードに対して、更にワードテンプレートを適用するように構成してもよい。
【0103】
テンプレート処理部24は、対話テンプレートDB5を参照し、ステップS49において確定された所定の順番で並んだワードの組み合わせと最も一致率が高い対話テンプレートを抽出する(ステップS50)。なお、ワードテンプレートにより確定したワードについては、最後尾に存在する単語若しくは単語及びエレメントのグループを、対話テンプレートの玉座に設定されたグループと比較する。テンプレート処理部24は、一致率が最も高い対話テンプレートが複数存在する場合(ステップS51でYES)、続くステップS52に進み、対話テンプレートの絞り込み処理を実行する(ステップS52)。一致率が最も高い対話テンプレートが1つのみ存在する場合(ステップS51でNO)若しくは、絞り込み処理が完了すると、ステップS53に進む。絞り込み処理は、複数の対話テンプレートの一致率が同率である場合、対話シナリオDB7を参照し、シナリオに設定される対話テンプレートの優先度に応じて対話テンプレートを決定する。例えば、当該対話シナリオにおいて各テンプレートの決定の履歴を記録しておき、割合が高い対話シナリオを適用するようにしてよい。ステップS53において、テンプレート処理部24は、当該対話テンプレートを入力文に対応する対話テンプレートとして特定する。テンプレート処理部24は、特定した対話テンプレートと入力文を対応付けてデータベースDBに格納する。
【0104】
<5.4.指示情報の決定>
対話テンプレートが決定すると、
図11のステップS32において、回答文生成部25は、シナリオDBに格納される対話シナリオを参照し、対話テンプレートに対応する回答文を含む指示情報が関連付けられているか判定する(ステップS32)。回答文生成部25は、定型の回答文を含む指示情報が対話シナリオ上に設定される場合(ステップS32でYES)、指示情報に含まれる回答文を回答文出力部30に対して出力する(ステップS33)。
【0105】
指示情報が定型の回答文を含まない場合(ステップS32でNO)、回答文生成部25は続くステップS34に進む。ステップS34では、回答文生成部25は、対話シナリオを参照し、回答テンプレートを含む指示情報を取得する。回答文生成部25は、変換ルールに従って入力文中の単語やエレメントを変換し、変換した文を回答テンプレートに適用することで回答文を生成し、回答文出力部30に受け渡す(ステップS35)。回答文出力部30は、自然言語処理部20より回答文を取得し、回答文を出力する(ステップS36)。回答文出力部30は、音声データの再生又は、テキストデータによる表示などを行って回答文を出力する。
【0106】
<6.1.サンプル>
入力文に対応する対話テンプレートの取得から回答文の出力までのサンプルを示す。
【0107】
<6.2.サンプル1>
入力文X1は、「ありがとう」というテキストデータである。自然言語処理部20は、入力文X1を取得し、「お礼」に関する対話テンプレートX2に分類する。回答文生成部25は、対話テンプレートX2を取得すると、「お礼」に関する対話シナリオX3を参照し、指示情報X4を取得する。ここで、指示情報X4は、「どういたしまして」という固定長の回答文X5が含まれる指示情報である場合、回答文生成部25は、「どういたしまして」という回答文X5を生成する。
【0108】
<6.3.サンプル2>
入力文Z1は、「私は今日で18歳です」というテキストデータである。自然言語処理部20は、入力文Z1を取得し、「年齢」に関する対話テンプレートZ2に分類する。入力文は、「私は」「今日で」「18歳です」というワードの組み合わせである。ワード「私は」は対話テンプレートZ2の玉座1に該当するワードZ3であって、単語の第1属性として「人称/1人称」の単語グループ(単語カテゴリ)を有する。ワード「今日で」Z4は玉座2に該当するワードであって、単語の第1属性として「時制/今日」の単語グループを有する。ワード「18歳です」は玉座3に該当するワードZ5であって、単語の属性として「年齢」を有する。対話シナリオZ7Aには対話シナリオZ7A~Cが対応付けられており、対話テンプレートZ2に該当する入力文Z1が入力された場合には、「年齢」に関する対話シナリオZ7Bを参照するように記述されている。回答文生成部25は、対話テンプレートZ2が決定された場合、「年齢」に関する対話シナリオZ7Bを参照し、指示情報Z8を取得する。ここで、指示情報Z8は、回答テンプレートZ9による回答文の生成指定が含まれる指示情報である。回答テンプレートZ9は、対話テンプレートZ2のすべての玉座1~3を参照しており、Z10:玉座1を参照して省略(削除)する変換ルールと、Z11:玉座2を参照して倒置を行う変換ルールと、Z12:玉座3を参照して疑問に変換する変換ルールと、が設定されている。回答文生成部25は、Z10に従ってワードZ3を省略し、Z12に従ってワードZ5を疑問に変換し、Z11に従ってワードZ4を倒置する。これによって、回答文生成部25は、回答テンプレートの変換ルールから「18歳なんですか?今日で」という回答文を生成する。
【0109】
一実施形態において、自然言語処理システム1は、対話装置100として構成される。対話装置100は、対話ロボット又は、対話手段を有した端末装置などとして具体化される。端末装置は、スマートフォン、タブレット端末、スマートスピーカーなどを含む。このとき、対話装置100は、入力文取得部10、自然言語処理部20、回答文出力部30を備える。
【0110】
以上に示したように、本発明によれば、日本語の自然言語処理において、より自然な対話を行うことができる。
【符号の説明】
【0111】
1 自然言語処理システム
10 入力文取得部
20 自然言語処理部
21 登録部
22 分割部
23 ワード処理部
24 テンプレート処理部
25 回答文生成部
30 回答文出力部
DB データベース
100 対話装置
200 自然言語処理装置