(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-08
(45)【発行日】2023-09-19
(54)【発明の名称】自然言語理解フレームワークでの発言についての複数意味表現の導出
(51)【国際特許分類】
G06F 16/90 20190101AFI20230911BHJP
G06F 40/205 20200101ALI20230911BHJP
【FI】
G06F16/90 100
G06F40/205
(21)【出願番号】P 2021577217
(86)(22)【出願日】2020-07-01
(86)【国際出願番号】 US2020040573
(87)【国際公開番号】W WO2021003313
(87)【国際公開日】2021-01-07
【審査請求日】2022-02-28
(32)【優先日】2019-07-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-08-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518249328
【氏名又は名称】サービスナウ, インコーポレイテッド
【氏名又は名称原語表記】ServiceNow, Inc.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】サプガイ エドウィン
(72)【発明者】
【氏名】サルダ ゴパル
【審査官】早川 学
(56)【参考文献】
【文献】特開2000-330588(JP,A)
【文献】特開2007-065029(JP,A)
【文献】特開平11-066070(JP,A)
【文献】特開平05-250405(JP,A)
【文献】米国特許出願公開第2017/0371861(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
エージェント・オートメーション・システムであって、
自然言語理解(NLU)フレームワークを記憶するように構成されるメモリであって、
前記NLUフレームワークが、品詞(POS)コンポーネント
、多様性フィルタ・コンポーネント、パーサ・コンポーネント、ならびに、最終スコアリングおよびフィルタリング・コンポーネントを含む、メモリと、
前記エージェント・オートメーション・システムにアクションを実行させるために、前記NLUフレームワークの命令を実行するように構成されるプロセッサと
を備え、
前記アクションが、
前記POS
コンポーネントを使用することであって、前記POS
コンポーネントを使用して、1組の発話の品詞(POS)タグ付けを実行することで、前記1組の発話から1組の潜在的POSタグ付けを生成する、前記POS
コンポーネントを使用することと、
前記多様性フィルタ・コンポーネントを使用することであって、前記多様性フィルタ・コンポーネントを使用して、前記1組の潜在的POSタグ付け内の他のPOSタグ付けと実質的に類似する1つまたは複数のPOSタグ付けを、前記1組の
潜在的POSタグ付けから除去する、前記多様性フィルタ・コンポーネントを使用することと、
前記パーサ・コンポーネントを使用することであって、前記パーサ・コンポーネントを使用して、前記1組の潜在的POSタグ付けから1組の潜在的意味表現を生成する、前記パーサ・コンポーネントを使用することと、
前記最終スコアリングおよびフィルタリング・コンポーネントを使用することであって、前記最終スコアリングおよびフィルタリング・コンポーネントを使用して、前記1組の潜在的意味表現内の各潜在的意味表現について、それぞれの最終スコアを計算し、前記1組の潜在的意味表現から、潜在的意味表現を、それら潜在的意味表現のそれぞれの最終スコアに基づいて除去することで、最終組の意味表現を生成する、前記最終スコアリングおよびフィルタリング・コンポーネントを使用することと
を含む、エージェント・オートメーション・システム。
【請求項2】
前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の発話を当初の発話に基づいて生成するために、ボキャブラリ注入を実行することであって、前記1組の発話が、前記当初の発話と、異なる言い回し、異なる専門用語、または、異なる言い回しと異なる専門用語との組合せを有する、前記当初の発話の1つまたは複数の再発現とを含む、ボキャブラリ注入を実行することを含む、
請求項1に記載のシステム。
【請求項3】
前記当初の発話が、ユーザ発話であり、前記最終組の意味表現が、意味検索について検索キーを規定する発話意味モデルの一部分を形成する、
請求項2に記載のシステム。
【請求項4】
前記当初の発話が、前記メモリに記憶される意図-エンティティ・モデルのサンプル発話であり、前記最終組の意味表現が、意味検索について検索空間を規定する理解モデルの一部分を形成する、
請求項2に記載のシステム。
【請求項5】
前記POSコンポーネント
、前記多様性フィルタ・コンポーネント、前記パーサ・コンポーネント、ならびに、前記最終スコアリングおよびフィルタリング・コンポーネントが、前記NLUフレームワークのプラグインとして、それぞれ実装される、
請求項1に記載のシステム。
【請求項6】
前記POSコンポーネント、前記パーサ・コンポーネント、または、前記POSコンポーネントと前記パーサ・コンポーネントとの組合せが、フィードフォワード人工ニューラル・ネットワークである機械学習(ML)ベースのコンポーネントを含む、
請求項1に記載のシステム。
【請求項7】
前記1組の潜在的意味表現の各潜在的意味表現が、発話木である、
請求項1に記載のシステム。
【請求項8】
前記POSコンポーネントを使用してPOSタグ付けを実行するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の発話の各発話について、
前記発話の少なくとも1つの潜在的POSタグ付けを生成することと、
前記少なくとも1つの潜在的POSタグ付けについて、それぞれの信頼スコアを求めることと、
前記それぞれの信頼スコアが、予め規定されたPOS閾値以上であると判定することに応答して、前記少なくとも1つの潜在的POSタグ付けを、前記1組の潜在的POSタグ付けに含めることと
を含む、請求項1に記載のシステム。
【請求項9】
前記多様性フィルタ・コンポーネントを使用して、前記1つまたは複数のPOSタグ付けを除去するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的POSタグ付けのうちの、第1の潜在的POSタグ付けと第2の潜在的POSタグ付けとの間で多様性スコアを計算することと、
前記多様性スコアが、予め規定されたバリエーション閾値未満であることに応答して、前記1組の潜在的POSタグ付けから前記第2の潜在的POSタグ付けを除去することと
を含む、請求項1に記載のシステム。
【請求項10】
前記多様性フィルタ・コンポーネントを使用して、前記1つまたは複数のPOSタグ付けを除去するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的POSタグ付けのうちの各潜在的POSタグ付け間のタグ付け距離を計算することと、
前記タグ付け距離、および、予め規定されたバリエーション閾値に基づいて、前記1組の潜在的POSタグ付けを、潜在的POSタグ付けのグループにクラスタ分けすることと、
前記潜在的POSタグ付けのグループのそれぞれについて、代表となる潜在的POSタグ付けを選択することと、
前記1組の潜在的POSタグ付けから、代表となる潜在的POSタグ付けではない潜在的POSタグ付けを除去することと
を含む、請求項1に記載のシステム。
【請求項11】
前記パーサ・コンポーネントを使用して、前記1組の潜在的意味表現を生成するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的POSタグ付けのうちの各潜在的POSタグ付けについて、
前記潜在的POSタグ付けの、少なくとも1つの潜在的意味表現を生成することと、
前記少なくとも1つの潜在的意味表現について、それぞれの信頼スコアを求めることと、
前記それぞれの信頼スコアが、予め規定されたパーサ閾値以上であると判定することに応答して、前記少なくとも1つの潜在的意味表現を、前記1組の潜在的意味表現に含めることと
を含む、請求項1に記載のシステム。
【請求項12】
前記最終スコアリングおよびフィルタリング・コンポーネントを使用するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的意味表現のうちの各潜在的意味表現について、
前記潜在的意味表現の前記それぞれの最終スコアを計算するために、前記潜在的意味表現のPOSタグ付け信頼スコアとパーシング信頼スコアとを組み合わせることと、
前記潜在的意味表現の前記それぞれの最終スコアが、最終スコアリングおよびフィルタリング閾値未満であると判断することに応答して、前記1組の潜在的意味表現から、前記潜在的意味表現を除去することと
を含む、請求項1に記載のシステム。
【請求項13】
エージェント・オートメーション・システムが自然言語理解(NLU)フレームワークを
実行する方法であって、
当初の発話に基づいて1組の発話を生成するために、ボキャブラリ注入を実行することであって、前記1組の発話が、前記当初の発話と、前記当初の発話の1つまたは複数の再発言とを含む、ボキャブラリ注入を実行することと、
前記1組の発話について1組の潜在的POSタグ付けを生成するために、前記1組の発話の品詞(POS)タグ付けを実行することと、
前記1組の潜在的POSタグ付け内の他のPOSタグ付けと実質的に類似するPOSタグ付けを、前記1組の潜在的POSタグ付けから除去するために多様性フィルタリングを実行することと、
1組の潜在的意味表現を生成するために、前記1組の潜在的POSタグ付けをパースすることと、
前記1組の潜在的意味表現内の各潜在的意味表現について、それぞれの最終スコアを計算し、前記1組の潜在的意味表現内の各潜在的意味表現の前記それぞれの最終スコアに基づいて、前記1組の潜在的意味表現から、前記当初の発話について最終組の意味表現を選択することと
を含む方法。
【請求項14】
ボキャブラリ注入を実行する前に前記当初の発話をクレンジングすることを含み、クレンジングが、前記当初の発話の1つまたは複数のトークンを置き換えること、または、除去することを含む、
請求項13に記載の方法。
【請求項15】
ボキャブラリ注入を実行することが、
ボキャブラリ・モデル内に存在する、前記当初の発話の1つまたは複数のトークンを識別することと、
前記1つまたは複数のトークンについて、前記ボキャブラリ・モデルから1つまたは複数の代替的トークンを選択することと、
前記当初の発話の前記1つまたは複数の再発現を生成するために、前記当初の発話の前記1つまたは複数のトークンを、前記1つまたは複数の代替的トークンに置き換えることと
を含む、請求項13に記載の方法。
【請求項16】
品詞(POS)タグ付けを実行することが、
前記1組の発話の各発話について、
前記発話の少なくとも1つの潜在的POSタグ付けを生成することと、
前記少なくとも1つの潜在的POSタグ付けについて、それぞれの信頼スコアを求めることと、
前記それぞれの信頼スコアが、予め規定されたPOS閾値以上であると判定することに応答して、前記少なくとも1つの潜在的POSタグ付けを、前記1組の潜在的POSタグ付けに含めることと
を含む、請求項13に記載の方法。
【請求項17】
多様性フィルタリングを実行することが、
前記1組の潜在的POSタグ付けのうちの2つの潜在的POSタグ付けの間で多様性スコアを計算することと、
前記多様性スコアが、予め規定されたバリエーション閾値未満であることに応答して、
前記1組の潜在的POSタグ付けから、前記2つの潜在的POSタグ付けのうちの1つを除去することと
を含む、請求項13に記載の方法。
【請求項18】
それぞれの最終スコアを計算し、前記最終組の意味表現を選択することが、
前記1組の潜在的意味表現のうちの各潜在的意味表現について、
前記潜在的意味表現について前記それぞれの最終スコアを計算するために、前記潜在的意味表現のPOSタグ付け信頼スコアとパーシング信頼スコアとを組み合わせることと、
前記最終スコアが、予め規定された最終スコアリングおよびフィルタリング閾値以上であると判定すること
に応答して、前記最終組の意味表現に前記潜在的意味表現を含めることと
を含む、請求項13に記載の方法。
【請求項19】
前記最終組の意味表現を使用して意味検索を実行することであって、前記最終組の意味表現が、前記意味検索の検索キーを規定する発話意味モデルの一部分を形成するか、または、前記意味検索について検索空間を規定する理解モデルの一部分を形成する、意味検索を実行すること
を含む、請求項13に記載の方法。
【請求項20】
コンピューティング・システムの1つまたは複数のプロセッサにより実行可能な自然言語理解(NLU)フレームワークの命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、
当初の発話を受け取る命令であって、前記当初の発話が、ユーザ発話または意図-エンティティ・モデルのサンプル発話である、命令と、
前記当初の発話の1つまたは複数のトークンを置き換えること、または、除去することにより、前記当初の発話をクレンジングする命令と、
前記当初の発話に基づいて1組の発話を生成するために、ボキャブラリ注入を実行する命令あって、前記1組の発話が、前記当初の発話と、前記当初の発話の1つまたは複数の再発言とを含む、命令と、
前記1組の発話について1組の潜在的POSタグ付けを生成するために、前記1組の発話の品詞(POS)タグ付けを実行する命令と、
前記1組の潜在的POSタグ付け内の他のPOSタグ付けと実質的に類似するPOSタグ付けを、前記1組の潜在的POSタグ付けから除去するために多様性フィルタリングを実行する命令と、
1組の潜在的意味表現を生成するために、前記1組の潜在的POSタグ付けをパースする命令と、
前記1組の潜在的意味表現内の各潜在的意味表現について、それぞれの最終スコアを計算し、前記1組の潜在的意味表現内の各潜在的意味表現の前記それぞれの最終スコアに基づいて、前記1組の潜在的意味表現から、前記当初の発話について最終組の意味表現を選択する命令と、
前記最終組の意味表現を使用して意味検索を実行する命令であって、前記最終組の意味表現が、前記意味検索の検索キーを規定する発話意味モデルの一部分を形成するか、または、前記意味検索について検索空間を規定する理解モデルの一部分を形成する、命令と
を含む、非一時的コンピュータ可読媒体。
【請求項21】
エージェント・オートメーション・システムであって、
自然言語理解(NLU)フレームワークを記憶するように構成されるメモリであって、前記NLUフレームワークが、品詞(POS)コンポーネント、多様性フィルタ・コンポーネント、パーサ・コンポーネント、ならびに、最終スコアリングおよびフィルタリング・コンポーネントを含む、メモリと、
前記エージェント・オートメーション・システムにアクションを実行させるために、前記NLUフレームワークの命令を実行するように構成されるプロセッサと
を備え、
前記アクションが、
1組の発話について1組の潜在的POSタグ付けを生成するために、前記POSコンポーネントによって、品詞(POS)タグ付けを実行することと、
1組の最終指名POSタグ付けを生成するために、前記多様性フィルタ・コンポーネントによって、前記1組の潜在的POSタグ付けの多様性フィルタリングを実行することであって、前記1組の最終指名POSタグ付けの各最終指名POSタグ付けが、互いに対して特異である、多様性フィルタリングを実行することと、
前記1組の最終指名POSタグ付けについて、1組の潜在的意味表現を生成するために、前記パー
サ・コンポーネントによって、前記1組の最終指名POSタグ付けをパースすることと、
前記最終スコアリングおよびフィルタリング・コンポーネントにより、前記1組の潜在的意味表現から、前記1組の発話についての最終組の意味表現を選択することと
を含む、エージェント・オートメーション・システム。
【請求項22】
前記NLUフレームワークが、ボキャブラリ・サブシステムを含み、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の発話を当初の発話に基づいて生成するために、前記ボキャブラリ・サブシステムによって、ボキャブラリ注入を実行することであって、前記1組の発話が、前記当初の発話と、異なる言い回し、異なる専門用語、または、異なる言い回しと異なる専門用語との組合せを有する、前記当初の発話の1つまたは複数の再発現とを含む、ボキャブラリ注入を実行することを含む、
請求項21に記載のエージェント・オートメーション・システム。
【請求項23】
前記当初の発話が、ユーザ発話であり、前記最終組の意味表現が、意味検索について検索キーを規定する発話意味モデルの一部分を形成する、
請求項22に記載のエージェント・オートメーション・システム。
【請求項24】
前記当初の発話が、前記メモリに記憶される意図-エンティティ・モデルのサンプル発話であり、前記最終組の意味表現が、意味検索について検索空間を規定する理解モデルの一部分を形成する、
請求項22に記載のエージェント・オートメーション・システム。
【請求項25】
前記POSコンポーネント、前記多様性フィルタ・コンポーネント、前記パーサ・コンポーネント、ならびに、前記最終スコアリングおよびフィルタリング・コンポーネントが、前記NLUフレームワークのプラグインとして、それぞれ実装される、
請求項21に記載のエージェント・オートメーション・システム。
【請求項26】
前記POSコンポーネント、前記パーサ・コンポーネント、または、前記POSコンポーネントと前記パーサ・コンポーネントとの組合せが、人工ニューラル・ネットワークを含む機械学習(ML)ベースのコンポーネントとして実装される、
請求項21に記載のエージェント・オートメーション・システム。
【請求項27】
POSタグ付けを実行するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の発話の各発話について、
前記発話の少なくとも1つの潜在的POSタグ付けを生成することと、
前記少なくとも1つの潜在的POSタグ付けについて、それぞれの信頼スコアを求めることと、
前記それぞれの信頼スコアが、予め規定されたPOS閾値以上であると判定することに応答して、前記少なくとも1つの潜在的POSタグ付けを、前記1組の潜在的POSタグ付けに含み入れるために選択することと
を含む、請求項21に記載のエージェント・オートメーション・システム。
【請求項28】
多様性フィルタリングを実行するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的POSタグ付けのうちの、第1の潜在的POSタグ付けと第2の潜在的POSタグ付けとの間で多様性スコアを計算することと、
前記多様性スコアが、予め規定されたバリエーション閾値未満であることに応答して、前記第1の潜在的POSタグ付けおよび前記第2の潜在的POSタグ付けのうちの1つのみを、前記1組の最終指名POSタグ付けに含み入れるために選択することと
を含む、請求項21に記載のエージェント・オートメーション・システム。
【請求項29】
多様性フィルタリングを実行するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的POSタグ付けのうちの各潜在的POSタグ付け間のタグ付け距離を計算することと、
前記タグ付け距離、および、予め規定されたバリエーション閾値に基づいて、前記1組の潜在的POSタグ付けを、潜在的POSタグ付けのグループにクラスタ分けすることと、
前記潜在的POSタグ付けのグループのそれぞれについて、代表となる潜在的POSタグ付けを、前記1組の最終指名POSタグ付けに含み入れるために選択することと
を含む、請求項21に記載のエージェント・オートメーション・システム。
【請求項30】
前記1組の最終指名POSタグ付けをパースするために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の最終指名POSタグ付けの各POSタグ付けについて、
前記POSタグ付けに基づいて、少なくとも1つの潜在的意味表現を生成することと、
前記少なくとも1つの潜在的意味表現について、それぞれの信頼スコアを求めることと、
前記それぞれの信頼スコアが、予め規定されたパーサ閾値以上であると判定することに応答して、前記少なくとも1つの潜在的意味表現を、前記1組の潜在的意味表現に含み入れるために選択することと
を含む、請求項21に記載のエージェント・オートメーション・システム。
【請求項31】
前記最終組の意味表現を選択するために、前記プロセッサが、前記NLUフレームワークの前記命令を実行して、前記エージェント・オートメーション・システムにアクションを実行させるように構成され、前記アクションが、
前記1組の潜在的意味表現のうちの各潜在的意味表現について、
前記潜在的意味表現のそれぞれの最終スコアを計算するために、前記潜在的意味表現のPOSタグ付け信頼スコアと、前記潜在的意味表現に関連付けられたパーシング信頼スコアとを組み合わせることと、
前記潜在的意味表現の前記それぞれの最終スコアが、最終スコアリングおよびフィルタリング閾値以上であると判断することに応答して、前記潜在的意味表現を、前記最終組の意味表現に含み入れるために選択することと
を含む、請求項21に記載のエージェント・オートメーション・システム。
【請求項32】
エージェント・オートメーション・システムが自然言語理解(NLU)フレームワークを
実行する方法であって、
1組の発話について1組の潜在的POSタグ付けを生成するために、品詞(POS)タグ付けを実行することと、
1組の最終指名POSタグ付けを生成するために、前記1組の潜在的POSタグ付けの多様性フィルタリングを実行することであって、前記1組の最終指名POSタグ付けの各最終指名POSタグ付けが、互いに対して特異である、多様性フィルタリングを実行することと、
前記1組の最終指名POSタグ付けについて、1組の潜在的意味表現を生成するために、前記1組の最終指名POSタグ付けをパースすることと、
前記1組の潜在的意味表現から、前記1組の発話についての最終組の意味表現を選択することと
を含む方法。
【請求項33】
前記1組の潜在的意味表現の各潜在的意味表現が、木データ構造であり、前記木データ構造が、
前記1組の潜在的POSタグ付けから得られる、前記1組の発話の特定の発話について生成された特定の潜在的POSタグ付けと、
前記特定の発話の少なくとも1つの部分の意味論的意味を表現する少なくとも1つのベクトルと
を含む、請求項32に記載の方法。
【請求項34】
POSタグ付けを実行する前に、前記1組の発話を当初の発話に基づいて生成するためにボキャブラリ注入を実行することであって、前記ボキャブラリ注入が、
ボキャブラリ・モデル内に存在する、前記当初の発話の1つまたは複数のトークンを識別することと、
前記1つまたは複数のトークンについて、前記ボキャブラリ・モデルから1つまたは複数の代替的トークンを選択することと、
前記当初の発話の1つまたは複数の再発現を生成することであって、前記1つまたは複数の再発現が、前記当初の発話の前記1つまたは複数のトークンの少なくとも一部分であって、前記1つまたは複数の代替的トークンに置き換えられた部分を有する、1つまたは複数の再発現を生成することと、
前記当初の発話と、前記当初の発話の前記1つまたは複数の再発現とを、前記1組の発話に含み入れるために選択することと
により実行される、請求項32に記載の方法。
【請求項35】
品詞(POS)タグ付けを実行することが、
前記1組の発話の各発話について、
前記発話の少なくとも1つの潜在的POSタグ付けを生成することと、
前記少なくとも1つの潜在的POSタグ付けについて、それぞれの信頼スコアを求めることと、
前記それぞれの信頼スコアが、予め規定されたPOS閾値以上であると判定することに応答して、前記少なくとも1つの潜在的POSタグ付けを、前記1組の潜在的POSタグ付けに含み入れるために選択することと
を含む、請求項32に記載の方法。
【請求項36】
多様性フィルタリングを実行することが、
前記1組の潜在的POSタグ付けのうちの2つの潜在的POSタグ付けの間で多様性スコアを計算することと、
前記多様性スコアが、予め規定されたバリエーション閾値未満であることに応答して、前記2つの
潜在的POSタグ付けのうちの1つのみを、前記1組の最終指名POSタグ付けに含み入れるために選択することと
を含む、請求項32に記載の方法。
【請求項37】
前記1組の潜在的意味表現内の各潜在的意味表現について、それぞれの最終スコアを計算することであって、前記最終組の意味表現が、各潜在的意味表現の前記それぞれの最終スコアに基づいて選択される、最終スコアを計算すること
を含む、請求項32に記載の方法。
【請求項38】
前記それぞれの最終スコアを計算し、前記最終組の意味表現を選択することが、
前記1組の潜在的意味表現のうちの各潜在的意味表現について、
前記潜在的意味表現について前記それぞれの最終スコアを計算するために、前記潜在的意味表現のPOSタグ付け信頼スコアとパーシング信頼スコアとを組み合わせることと、
前記最終スコアが、予め規定された最終スコアリングおよびフィルタリング閾値以上であると判定すること
に応答して、前記潜在的意味表現を、前記最終組の意味表現に含み入れるために選択することと
を含む、請求項37に記載の方法。
【請求項39】
前記最終組の意味表現を使用して意味検索を実行することであって、前記最終組の意味表現が、前記意味検索の検索キーを規定する発話意味モデルの一部分を形成するか、または、前記意味検索について検索空間を規定する理解モデルの一部分を形成する、意味検索を実行すること
を含む、請求項32に記載の方法。
【請求項40】
コンピューティング・システムの1つまたは複数のプロセッサにより実行可能な自然言語理解(NLU)フレームワークの命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、
1組の発話について1組の潜在的POSタグ付けを生成するために、1組の発話の品詞(POS)タグ付けを実行する命令と、
1組の最終指名POSタグ付けを生成するために、前記1組の潜在的POSタグ付けの多様性フィルタリングを実行する命令であって、前記1組の最終指名POSタグ付けの各最終指名POSタグ付けが、互いに対して特異である、命令と、
前記1組の最終指名POSタグ付けについて、1組の潜在的意味表現を生成するために、前記1組の最終指名POSタグ付けをパースする命令と、
前記1組の潜在的意味表現内の各潜在的意味表現について、それぞれの最終スコアを計算する命令と、
前記1組の潜在的意味表現内の各潜在的意味表現の前記それぞれの最終スコアに基づいて、前記1組の潜在的意味表現から、前記1組の発話について最終組の意味表現を選択する命令と
を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
相互参照
本願は、出願日2019年7月2日、米国仮出願第62/869,826号、名称「DERIVING MULTIPLE MEANING REPRESENTATIONS FOR AN UTTERANCE IN A NATURAL LANGUAGE UNDERSTANDING (NLU) FRAMEWORK」に対する優先権および利益を主張する。同仮米国出願全体を、あらゆる目的のために、本明細書に参照により組み入れる。
【背景技術】
【0002】
本開示内容は、一般には、自然言語理解(NLU)および人工知能(AI)の分野に関し、より詳細には、NLUのためのハイブリッド学習システムに関する。
【0003】
このセクションは、後に説明および/または特許請求を行う本開示内容の様々な態様に関連し得る様々な技術態様を読者に紹介することを意図している。ここでの議論は、本開示内容の様々な態様をより良く理解し易くする背景情報を読者に提供するのに役立つと考えられる。したがって、この観点で、これらの文言は読み取られるべきであり、従来技術を承認するものではないことを理解されたい。
【0004】
クラウド・コンピューティングは、一般にはインターネットを介してアクセスされるコンピューティング資源の共用に関する。具体的には、クラウド・コンピューティング・インフラストラクチャは、サーバ、ストレージ・デバイス、ネットワーク、アプリケーション、他のコンピューティングをベースとするサービスなどのコンピューティング資源の共用プールに、個人や企業などのユーザがアクセスすることを可能にする。そうすることで、ユーザは、必要に応じて、離れた場所に位置するコンピューティング資源にアクセスすることが可能であり、これらの資源を使用して、多様なコンピューティング機能(たとえば、多量なコンピューティング・データの記憶および/または処理)を実行することができる。企業および他の組織ユーザにとっては、クラウド・コンピューティングは、クラウド・コンピューティング資源へのアクセスにおいて柔軟性を提供し、高価なネットワーク機器を購入することや、プライベート・ネットワーク・インフラストラクチャを確立するのに多くの時間を費やすことなど、大きな先行コストを生じることはない。むしろ、クラウド・コンピューティング資源を利用することにより、ユーザは、自身の資源の方向修正を行って、自身の企業のコアな機能に集中することが可能である。
【0005】
こうしたクラウド・コンピューティング・サービスは、クライアント・インスタンスのユーザからの自然言語要求に基づいて、そのクライアント・インスタンスに関する問題に自動的に応答するように設計された、チャット・エージェントなどの仮想エージェントのホストとして働くことができる。たとえば、自然言語処理(NLP)または自然言語理解(NLU)システムの一部分である仮想エージェントに、ユーザが、パスワードの問題についての支援を要求するかもしれない。NLPは、自然言語入力の何らかの形態の処理を含むコンピュータ・サイエンスおよびAIの概念である。NLPが扱う分野の例には、言語翻訳、発語生成、パース木抽出、品詞識別などが含まれる。NLUは、ユーザ発話の理解に特に焦点を当てたNLPの副分野である。NLUが扱う分野の例には、質問応答(たとえば、読解力問題)、記事要約などが含まれる。たとえば、NLUは、人間の言語(たとえば、話されたもの、または記載されたもの)を、下流の仮想エージェントが使用する1組の既知のシンボルに還元するためのアルゴリズムを使用することができる。NLPは、一般に、自由なテキスト(文面)を解釈して、更に解析するのに使用される。NLPへの現在の手法は、一般に、深層学習に基づいており、深層学習とは、データ内のパターンを調べ、それを使用して、プログラムの理解を改善するAIの一種である。
【0006】
特定のNLUシステムは、認知構造文法の言語原理に基づいている。これらの原理のうちの1つは、発話の形状または形態が、その発話の意味に密接に関連しているということである。したがって、NLUシステムが、自体の動作を改善するために、確度の高い複数の発話理解方法の抽出または決定が可能であることが重要であると現在理解されている。
【発明の概要】
【0007】
本明細書で開示する特定の実施形態の概要を以下で述べる。これらの態様は、こうした特定の実施形態の簡単な概要を読者に提供するだけのために提示されるものであり、これらの態様は、本開示内容の範囲を限定することは意図しないことを理解されたい。実際に、本開示内容は、以下では述べられないかもしれない多様な態様を包含し得る。
【0008】
本実施形態は、仮想エージェント(たとえば、チャット・エージェント)が受け取る要求などのユーザ発話から意味を抽出し、これらのユーザ発話に適宜応答することが可能なエージェント・オートメーション・フレームワークを対象とする。このために、エージェント・オートメーション・フレームワークは、NLUフレームワークと、サンプル発話に関連付けられる定義づけされた意図およびエンティティを有する意図-エンティティ・モデルとを含む。NLUフレームワークは、意図-エンティティ・モデルのサンプル発話について意味表現を生成して、理解モデルを構築し、かつ、受け取ったユーザ発話について意味表現を生成して、発話意味モデルを構築するように設計される意味抽出サブシステムを含む。さらに、開示するNLUフレームワークは、理解モデル(検索空間とも称する)の意味表現を検索して、発話意味モデル(検索キーとも称する)の意味表現について、マッチするものを特定するように設計される意味検索サブシステムを含む。したがって、本実施形態は、概ね、NLUによりもたらされる難問を、管理可能な検索問題に変換することにより、こうした難問を扱う。
【0009】
さらに、発話意味モデル内でのユーザ発話の複数の意味表現、ならびに、理解モデル内でのサンプル発話の複数の意味表現(各表現は、比較のために、基礎となる発話の異なる理解または解釈を表現している)を有することで、意味検索の性能が高まることが現在認識されている。さらに、特定の代替的意味表現により、意味検索中にマッチするものを識別する可能性が改善されるが、明らかに誤った、または実質的に冗長な意味表現を検索する追加のコンピューティング資源も、意味検索では消費され得ることも現在認識されている。したがって、発話の高価値な特定の代替的意味表現(たとえば、高確率な意味表現、および/または、十分にそれぞれ意味が異なる意味表現)を追求して、意味検索を高めるべきであり、他の代替的意味表現を廃棄して、コンピューティング資源の使用を制限し、NLUフレームワークの効率を改善するべきであることが認識されている。
【0010】
上記を考慮して、本実施形態は、意図-エンティティ・モデル中のサンプル発話およびユーザからの受け取る発話を含めた、発話についての複数の意味表現を生成することが可能な意味抽出サブシステムを含むNLUフレームワークを対象にする。開示する意味抽出サブシステムは、異なるいくつかのコンポーネントを含む。これらのコンポーネントは、プラグインとして実装して柔軟性を高めることができる。特定の実施形態では、これらは、品詞(POS)プラグイン、修正プラグイン、バリエーション・フィルタ(VF)プラグイン、パーサ・プラグイン、ならびに、最終スコアリングおよびフィルタリング(FSF)プラグインを含む。たとえば、POSプラグインは、発話およびPOS閾値を受け取り、POS閾値に基づいて、その発話についての1組の潜在的POSタグ付けを、これらのPOSタグ付けに対する対応信頼スコアとともに生成する機械学習(ML)ベースのコンポーネントを含み得る。修正プラグインは、1組の潜在的POSタグ付けを受け取り、規則ベースまたはMLベースの技術を適用して、1組の潜在的POSタグ付け内のエントリを改変または除去することができる。VFプラグインは、1組の潜在的POSタグ付けおよびバリエーション閾値を受け取り、バリエーション閾値に基づいて、他のエントリと十分に異なっていない特定のエントリを1組の潜在的POSタグ付けから除去することができる。パーサ・プラグインは、1組の潜在的POSタグ付けを受け取り(たとえば、修正および/または多様性フィルタリングの後で)、1組の潜在的POSタグ付け内の各エントリについて、それぞれの意味表現(たとえば、発話木)および対応する信頼スコアを生成するMLベースまたは規則ベースのコンポーネントを含むことができる。FSFプラグインは、1組の意味表現、POSのタグ付けおよびパーシングからの信頼スコア、ならびに、FSF閾値を受け取り、FSF閾値に基づいて、発話についての最終的な1組の意味表現を決定することができる。
【図面の簡単な説明】
【0011】
以下の詳細な説明を読むことにより、また、図面を参照することにより、本開示内容の様々な態様をより良好に理解することができる。
【
図1】本技術の実施形態が動作することができるクラウド・コンピューティング・システムの一実施形態のブロック図である。
【
図2】本技術の実施形態が動作することができるマルチインスタンス・クラウド・アーキテクチャの一実施形態のブロック図である。
【
図3】
図1または
図2に存在し得るコンピューティング・システム内で利用される、本技術の態様によるコンピューティング・デバイスのブロック図である。
【
図4A】本技術の態様によるエージェント・オートメーション・フレームワークであって、クラウド・コンピューティング・システムがホストとして働くクライアント・インスタンスの一部分であるNLUフレームワークを含むエージェント・オートメーション・フレームワークの一実施形態を示す模式図である。
【
図4B】本技術の態様によるエージェント・オートメーション・フレームワークであって、NLUフレームワークの一部分が、クラウド・コンピューティング・システムがホストとして働く企業インスタンスの一部分であるエージェント・オートメーション・フレームワークの一代替的実施形態を示す模式図である。
【
図5】本技術の態様によるプロセスであって、NLUフレームワークおよび挙動エンジン・フレームワークを含めたエージェント・オートメーション・フレームワークが、意図および/またはエンティティをユーザ発話から抽出し、ユーザ発話に応答するプロセスの一実施形態を示すフロー図である。
【
図6】本技術の態様による、意味抽出サブシステムおよび意味検索サブシステムを含んだNLUフレームワークであって、意味抽出サブシステムが、受け取ったユーザ発話から意味表現を生成して、発話意味モデルを作り、理解モデルのサンプル発話から意味表現を生成して、理解モデルを作り、意味検索サブシステムが、発話意味モデルの意味表現を、理解モデルの意味表現と比較して、受け取ったユーザ発話からアーチファクト(たとえば、意図およびエンティティ)を抽出する、NLUフレームワークの一実施形態を示すブロック図である。
【
図7】本技術の態様による意味抽出サブシステムであって、規則ベースの方法と機械学習(ML)ベースの方法との組合せを、NLUフレームワークのボキャブラリ・サブシステム、構造サブシステム、および韻律サブシステム内で使用して、発話について意味表現を生成する意味抽出サブシステムの一実施形態を示すブロック図である。
【
図8】本技術の態様による、発話について生成された発話木の例を示す図である。
【
図9】本技術の態様によるプロセスであって、ボキャブラリ・サブシステムおよび構造サブシステムを含んだNLUフレームワークの意味抽出サブシステムが、発話の再発現および意味表現を生成するプロセスの一実施形態を示すフロー図である。
【
図10】本技術の態様によるプロセスであって、NLUフレームワークの構造サブシステムが、発話について、それぞれ異なる意味表現を生成するプロセスの一実施形態を示すフロー図である。
【
図11】本技術の態様によるプロセスであって、当初の発話が、ボキャブラリ・サブシステムおよび構造サブシステムにより再発現されて、1組の最終指名POSタグ付けになるプロセスの一実施形態を示すフロー図である。
【
図12】本技術の態様によるプロセスであって、
図11で生成された1組の最終指名POSタグ付けが、構造サブシステムにより、当初の発話の1組の意味表現に変換されるプロセスの一実施形態を示すフロー図である。
【発明を実施するための形態】
【0012】
1つまたは複数の具体的実施形態を以下で説明する。これらの実施形態の簡潔な説明を提供するために、実際の実装形態の全ての特徴を本明細書中で説明しているわけではない。任意の工学プロジェクトまたは設計プロジェクトなどでの、そのような実際の任意の実装形態の開発においては、実装形態に特有の非常に多くの決定を行って、実装形態ごとに変わり得る開発者の具体的目標(システム関連および事業関連の制約の準拠など)が達成されなければならないことを理解されたい。さらに、こうした開発努力は複雑で、時間を消費し得るものであるが、本開示内容に恩恵を受ける当業者にとっては、設計、作製、および製造を請け負う日常業務であるはずであることを理解されたい。
【0013】
本明細書では、「コンピューティング・システム」または「コンピューティング・デバイス」という用語は、単一のコンピュータ、単一の仮想機械、単一の仮想コンテナ、単一のホスト、単一のサーバ、単一のラップトップ、単一のモバイル・デバイスなどの(ただし、これらに限定されない)電子コンピューティング・デバイス、または、コンピューティング・システム上で、もしくはコンピューティング・システムにより実行されるものとして説明を行う機能を実行するために、ともに動作する複数の電子コンピューティング・デバイスを指す。本明細書では、「機械可読媒体」という用語は、1つまたは複数の命令またはデータ構造を記憶する単一または複数の媒体(たとえば、集中もしくは分散データベース、ならびに/または、それに関連するキャッシュおよびサーバ)を含み得る。「非一時的機械可読媒体」という用語は、コンピューティング・システムにより実行される命令を記憶すること、符号化すること、または伝えることが可能であり、本主題の方法論のうちの任意の1つまたは複数を、コンピューティング・システムに実行させる、あるいは、こうした命令により利用される、またはこうした命令に関連するデータ構造を記憶すること、符号化すること、または伝えることが可能な任意の有形媒体も含むものとする。したがって、「非一時的機械可読媒体」という用語は、ソリッドステート・メモリ、光学媒体、および磁気媒体を含むものとするが、これらに限定されない。非一時的機械可読媒体の具体的例には、不揮発性メモリが含まれるが、これに限定されない。この不揮発性メモリには、例として、半導体メモリ・デバイス(たとえば、消去およびプログラム可能読取り専用メモリ(EPROM)、電気的消去およびプログラム可能読取り専用メモリ(EEPROM)、ならびにフラッシュ・メモリ・デバイス)、内部ハード・ディスクやリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、CD-ROMディスク、およびDVD-ROMディスクが含まれるが、これらに限定されない。
【0014】
本明細書では、「アプリケーション」、「エンジン」、および「プラグイン」という用語は、特定の機能を提供するために、コンピューティング・システムの1つまたは複数のプロセッサが実行可能な1つまたは複数組のコンピュータ・ソフトウェア命令(たとえば、コンピュータ・プログラムおよび/またはスクリプト)を指す。コンピュータ・ソフトウェア命令は、C、C++、C#、Pascal、Fortran、Perl、MATLAB(登録商標)、SAS、SPSS、JavaScript(登録商標)、AJAX、およびJAVA(登録商標)などの任意の適当なプログラミング言語で書くことが可能である。こうしたコンピュータ・ソフトウェア命令は、データ入力モジュールおよびデータ表示モジュールを伴う独立したアプリケーションを含むことができる。あるいは、開示するコンピュータ・ソフトウェア命令は、分散オブジェクトとしてインスタンス化される分類にすることもできる。開示するコンピュータ・ソフトウェア命令は、たとえば、JAVABEANSやENTERPRISE JAVABEANSなどのコンポーネント・ソフトウェアとすることもできる。さらに、開示するアプリケーションまたはエンジンは、コンピュータ・ソフトウェア、コンピュータ・ハードウェア、またはこれらの組合せで実装することが可能である。
【0015】
本明細書では、「フレームワーク」という用語は、1つまたは複数の総括的機能を実行するために協働する、アプリケーションおよび/またはエンジンのシステム、ならびに、サポートとなる他の任意のデータ構造、ライブラリ、モジュール、および他の任意のサポートとなる機能を指す。具体的には、「自然言語理解フレームワーク」または「NLUフレームワーク」は、理解モデルに基づいて、自然言語発話から意味(たとえば、意図、エンティティ、アーチファクト)を処理および導出するように設計されたコンピュータ・プログラムの集合を含む。本明細書では、「挙動エンジン」または「BE」(推論エージェントまたはRA/BEとしても知られている)は、会話モデルに基づいてユーザと対話するように設計された、仮想エージェントなどの規則ベースのエージェントを指す。たとえば、「仮想エージェント」は、自然言語要求を介して、特定の会話チャネルまたはコミュニケーション・チャネルでユーザと対話するように設計されたBEの特定例を指す場合がある。これを考慮すると、「仮想エージェント」および「BE」という用語は、本明細書中では互いに入れ替え可能に使用される。具体的例として、仮想エージェントは、自然言語要求を介してユーザと対話し、チャット・ルーム環境で応答するチャット・エージェントであってもよく、または、こうしたチャット・エージェントを含んでもよい。仮想エージェントの他の例は、電子メール・エージェント、フォーラム・エージェント、チケッティング・エージェント、電話通話エージェントなどを含むことができ、これらエージェントは、電子メール、フォーラム投稿、サービス・チケットへの自動返信、電話通話などのコンテキストでユーザと対話する。
【0016】
本明細書では、「意図」は、ユーザの要望または目標を指し、これらは、発話などのコミュニケーションの基礎的な目的に関連し得る。本明細書では、「エンティティ」は、目的語、主語、または、意図の何らかの他のパラメータ表現を指す。本実施形態については、特定のエンティティが、対応する意図のパラメータとして扱われることに留意されたい。より具体的には、特定のエンティティ(たとえば、時間および場所)は、全ての意図について全体的に認識および抽出することができるが、他のエンティティは、意図に特有のものであり(たとえば、購入する意図に関連する商品エンティティ)、それらエンティティを規定する意図の中に見つかった場合のみ大まかに抽出される。本明細書では、「アーチファクト」は、まとめて、発話の意図およびエンティティの両方を指す。本明細書では、「理解モデル」とは、自然言語発話の意味を推測するために、NLUフレームワークにより使用されるモデルの集合である。理解モデルは、特定のトークン(たとえば、単語またはフレーズ)を、特定の単語ベクトル、意図-エンティティ・モデル、エンティティ・モデル、またはこれらの組合せに関連付けるボキャブラリ・モデルを含み得る。本明細書では、「意図-エンティティ・モデル」は、特定の意図を、特定のサンプル発話に関連付けるモデルを指し、意図に関連付けられるエンティティは、そのモデルのサンプル発話内で、意図のパラメータとして符号化することができる。本明細書では、「エージェント」という用語は、会話チャネル内で互いに対話するコンピュータ生成されたペルソナ(たとえば、チャット・エージェントまたは他の仮想エージェント)を指すこともある。本明細書では、「コーパス」は、様々なユーザと様々な仮想エージェントとの間での対話を含む、取り込んだソース・データのボディを指し、この対話には、1つまたは複数の適当な種類の媒体(たとえば、ヘルプ・ライン、チャット・ルームまたはメッセージ列、電子メール列)内でのコミュニケーションまたは会話が含まれる。本明細書では、「発話木」は、発話の意味表現を記憶するデータ構造を指す。議論するように、発話木は、発話の構文構造を表現する木構造(たとえば、係り受けパース木構造)を有し、木構造のノードが、発話の意味論的意味を符号化するベクトル(たとえば、単語ベクトル、部分木ベクトル)を記憶する。
【0017】
本明細書では、「ソース・データ」または「会話ログ」は、様々なエージェント間での任意の適当な対話を取り込んだものを含んでもよく、これら対話には、チャット・ログ、電子メール列、ドキュメント、ヘルプ・ドキュメンテーション、FAQ(頻繁にされる質問)、フォーラム・エントリ、サポート・チケッティングでのアイテム、ヘルプ・ライン・コールの記録などが含まれるが、これらに限定されない。本明細書では、「発話」は、ユーザまたはエージェントによりもたらされ、1つまたは複数の意図を含み得る単一の自然言語ステートメントを指す。したがって、発話は、予め取り込まれたソース・データのコーパスの一部分である場合があり、また、発話は、仮想エージェントとの対話の一部分としてユーザから受け取る新たなステートメントである場合もある。本明細書では、「機械学習」または「ML」は、機械学習技術を使用して訓練することが可能な任意の適当な統計的形態の人工知能を指すのに使用される場合があり、これらの機械学習技術には、教師あり学習技術、教師なし学習技術、半教師あり学習技術が含まれる。たとえば、特定の実施形態では、人工ニューラル・ネットワーク(ANN)(たとえば、ディープ・ニューラル・ネットワーク(DNN)、リカレント・ニューラル・ネットワーク(RNN)、リカーシブ・ニューラル・ネットワーク、フィードフォワード・ニューラル・ネットワーク)を使用することで、MLベースの技術を実装することができる。対して、「規則ベース」の方法および技術は、言語構造の厳密な裁定および意味論的理解を可能にして、発話から意味表現を導出する規則の組およびオントロジ(たとえば、マニュアル的に作られたオントロジ、統計的に導出されたオントロジ)の使用を指す。本明細書では、「ベクトル」(たとえば、単語ベクトル、意図ベクトル、主語ベクトル、部分木ベクトル)は、発話の一部分(たとえば、単語またはフレーズ、意図、エンティティ、トークン)の意味論的意味の数学的表現を提供する浮動小数点値(たとえば、1×N行列またはN×1行列)の規則化n次元リスト(たとえば、300次元リスト)である線形代数ベクトルを指す。本明細書では、「分野固有性」は、所与の分野および/または会話チャネルでの実際の会話内で表現される意図およびエンティティを正確に抽出するためにシステムをどのように調和させるかを指す。本明細書では、発話の「理解」とは、NLUフレームワークによる発話の解釈または構築を指す。したがって、それぞれ異なる発話理解は、それぞれ異なる構造(たとえば、それぞれ異なるノード、ノード間でのそれぞれ異なる関係)、それぞれ異なる品詞タグ付けなどを有するそれぞれ異なる意味表現に関連し得ることを理解することができる。
【0018】
上記のように、コンピューティング・プラットフォームは、ユーザ要求に自動的に応答して、機能を実行するか、またはプラットフォーム上の問題を扱うように設計されたチャット・エージェントまたは他の同様の仮想エージェントを含み得る。自然言語発話からユーザ意図を導出しようとする場合には、単一の発話が、その発話のトークンについて、それぞれ異なる潜在的品詞(POS)タグ付けを有することがあり、また、これらのそれぞれ異なるPOSタグ付けは、それぞれ異なる発話形態導出を表現することが現在のところ認識されている。この結果、いくつかの異なる意味表現(例、発話木)を、単一の発話について生成することが可能であり、これらの意味表現は、それぞれ、特異な発話形態導出を表現する。考えられる全ての発話形態導出を十分に考慮することで、NLUフレームワークの意図推測能力が改善されることが現在認識されている。しかし、特定の発話形態導出が、誤り、または、既に考慮されている他の形態に対して実質的に冗長なものであり得ることも現在認識されており、こうした発話形態導出は、NLUフレームワークの意図推測能力を実質的に改善することなく、処理およびメモリ資源消費を実質的に増やすことがある。
【0019】
したがって、本実施形態は、MLベースの技術および規則ベースの技術を適用して、自然言語発話について、複数の意味表現を生成する意味抽出サブシステムを含むNLUフレームワークを対象とする。意味抽出サブシステムは、理解モデルのサンプル発話の複数の意味表現を生成して、検索空間を増大することが可能であり、かつ/または、受け取ったユーザ発話の複数の意味表現を生成して、検索キーを増大することが可能な構造サブシステムを含む。開示する構造サブシステムは、MLベースの技術を使用して、発話について、複数の潜在的品詞(POS)タグ付けを生成し、予め規定された閾値よりも大きい、対応信頼スコアを有する潜在的POSタグ付けのみが進展される。開示する構造サブシステムは、規則ベースの修正技術および/またはMLベースの修正技術を適用して、誤った潜在的POSタグ付けを改変または排除することができる。開示する構造サブシステムは、多様性フィルタを適用して、予め規定されたバリエーション閾値に基づいて、十分には互いに異なっていない潜在的POSタグ付けを排除することもできる。修正および/または多様性フィルタリングの後、開示する構造サブシステムは、MLベースの技術または規則ベースの技術を使用して、残りの各潜在的POSタグ付けについて、それぞれの意味表現(たとえば、発話木)を生成するが、予め規定された閾値よりも大きな対応信頼スコアを有する意味表現のみが進展される。最後に、開示する構造サブシステムは、最終スコアリング-フィルタリング・ステップを適用し、ここでは、進展された意味表現の信頼スコア、ならびに、対応するPOSタグ付けの基礎的信頼スコアを考慮して、最終スコアを生成し、予め規定された閾値よりも低い最終スコアを有する意味表現を除去する。こうして、開示する構造サブシステムは、意味検索の検索キーおよび/または検索空間について生成される形態導出の数を効果的に増大することで、NLUフレームワークの意図推測能力を改善し、誤った形態導出または実質的に冗長な形態導出を排除して、資源消費を低減し、NLUフレームワークの効率を改善する。
【0020】
上記を考慮して、以下の図面は、マルチインスタンス・フレームワーク内で組織にサービスを提供するのに用いることができる様々な種類の汎用システム・アーキテクチャまたは構成であって、これらの汎用システム・アーキテクチャまたは構成において本手法を用いることができる、様々な種類の汎用システム・アーキテクチャまたは構成に関する。これに応じて、これらのシステムおよびプラットフォームの例は、本明細書で議論する技術を実装または利用することができるシステムおよびプラットフォームにも関する。
図1を見ると、本開示内容の実施形態を動作することができるクラウド・コンピューティング・システム10の一実施形態の模式図が示してある。クラウド・コンピューティング・システム10は、クライアント・ネットワーク12、ネットワーク18(たとえば、インターネット)、およびクラウド・ベースのプラットフォーム20を含むことができる。いくつかの実装形態では、クラウド・ベースのプラットフォーム20は、構成管理データベース(CMDB)プラットフォームであってもよい。一実施形態では、クライアント・ネットワーク12は、スイッチ、サーバ、およびルータを含む(ただし、これらに限定されない)多様なネットワーク・デバイスを有するローカル・エリア・ネットワーク(LAN)などのローカル・プライベート・ネットワークであってもよい。他の実施形態では、クライアント・ネットワーク12は、1つまたは複数のLAN、仮想ネットワーク、データ・センタ22、および/または他のリモート・ネットワークを含むことができる企業ネットワークを表す。
図1に示すように、クライアント・ネットワーク12は、1つまたは複数のクライアント・デバイス14A、14B、および14Cに接続することが可能であり、これにより、これらクライアント・デバイスは、互いに通信すること、および/または、プラットフォーム20のホストとして働くネットワークと通信することが可能である。クライアント・デバイス14は、たとえば、ウェブ・ブラウザ・アプリケーションを介して、または、クライアント・デバイス14とプラットフォーム20との間のゲートウェイとして働くことができるエッジ・デバイス16を介してクラウド・コンピューティング・サービスにアクセスする、コンピューティング・システム、および/または、一般にはインターネット・オブ・シングス(IoT)・デバイスと称される他の種類のコンピューティング・デバイスであってもよい。また、
図1は、プラットフォーム20のホストとして働くネットワークと、他の外部アプリケーションと、データ・ソースと、サービスと、クライアント・ネットワーク12との間のデータ通信を円滑化する、マネジメント・インストルメンテーション・ディスカバリ(MID)サーバ17など、運営または管理を行うデバイス、エージェント、またはサーバが、クライアント・ネットワーク12に含まれることを示す。
図1には具体的には示していないが、クライアント・ネットワーク12は、接続ネットワーク・デバイス(たとえば、ゲートウェイもしくはルータ)、または、カスタマ・ファイアウォール・システムもしくは進入防止システムを実装するデバイスの組合せを含むこともできる。
【0021】
図示の実施形態について、
図1は、クライアント・ネットワーク12がネットワーク18に結合されていることを示す。ネットワーク18は、クライアント・デバイス14A~14Cとプラットフォーム20のホストとして働くネットワークとの間でデータを転送するために1つまたは複数のコンピューティング・ネットワーク(他のLAN、ワイド・エリア・ネットワーク(WAN)、インターネット、他のリモート・ネットワークなど)を含んでもよい。ネットワーク18内のコンピューティング・ネットワークのそれぞれは、電気分野および/または光学分野内で動作する有線プログラマブル・デバイスおよび/またはワイヤレス・プログラマブル・デバイスを含んでもよい。たとえば、ネットワーク18は、セルラ・ネットワーク(たとえば、汎欧州デジタル移動体通信システム(GSM)ベースのセルラ・ネットワーク)、IEEE802.11ネットワーク、他の適当な無線ベースのネットワークなどのワイヤレス・ネットワークを含んでもよい。ネットワーク18は、伝送制御プロトコル(TCP)やインターネット・プロトコル(IP)など、任意数のネットワーク通信プロトコルを用いてもよい。
図1には明確に示していないが、ネットワーク18は、サーバ、ネットワーク・スイッチ、ネットワーク18を介してデータをトランスポートするように構成された他のネットワーク・ハードウェア・デバイスなど、多様なネットワーク・デバイスを含むことができる。
【0022】
図1では、プラットフォーム20のホストとして働くネットワークは、クライアント・ネットワーク12およびネットワーク18を介してクライアント・デバイス14と通信することが可能なリモート・ネットワーク(たとえば、クライアント・ネットワーク)であり得る。プラットフォーム20のホストとして働くネットワークは、クライアント・デバイス14および/またはクライアント・ネットワーク12に追加のコンピューティング資源を提供する。たとえば、プラットフォーム20のホストとして働くネットワークを利用することにより、クライアント・デバイス14のユーザは、様々な企業関連の機能、IT関連の機能、および/または他の組織関連の機能のためのアプリケーションを構築し、実行することが可能である。一実施形態では、プラットフォーム20のホストとして働くネットワークは、1つまたは複数のデータ・センタ22上で実装され、各データ・センタは、異なる地理的位置に対応し得る。データ・センタ22のそれぞれは、複数の仮想サーバ24(本明細書では、アプリケーション・ノード、アプリケーション・サーバ、仮想サーバ・インスタンス、アプリケーション・インスタンス、またはアプリケーション・サーバ・インスタンスとも称する)を含み、各仮想サーバ24は、単一の電子コンピューティング・システム(たとえば、単一の物理的ハードウェア・サーバ)上での実装や、複数コンピューティング・デバイス(たとえば、複数の物理的ハードウェア・サーバ)に渡っての実装など、物理的コンピューティング・システム上に実装することが可能である。仮想サーバ24の例には、ウェブ・サーバ(たとえば、単体としてのApacheインストール)、アプリケーション・サーバ(たとえば、単体としてのJAVA仮想マシン)、および/またはデータベース・サーバ(たとえば、単体としての関係データベース管理システム(RDBMS)カタログ)が含まれるが、これらに限定されない。
【0023】
プラットフォーム20内でコンピューティング資源を利用するために、ネットワーク・オペレータは、多様なコンピューティング・インフラストラクチャを使用することによりデータ・センタ22を構成することを選択することができる。一実施形態では、データ・センタ22のうちの1つまたは複数が、マルチテナント型クラウド・アーキテクチャを使用して構成され、これにより、サーバ・インスタンス24のうちの1つが、複数のカスタマからの要求を扱い、複数のカスタマに仕えるようになる。マルチテナント型クラウド・アーキテクチャを伴うデータ・センタ22は、複数のカスタマからのデータを混合、記憶し、複数のカスタマ・インスタンスが、仮想サーバ24のうちの1つに割り当てられる。マルチテナント型クラウド・アーキテクチャでは、特定の仮想サーバ24が、様々なカスタマのデータおよび他の情報を区別および分離する。たとえば、マルチテナント型クラウド・アーキテクチャは、各カスタマからのデータを識別および分離するために、各カスタマについて特定の識別子を割り当てることができる。一般には、マルチテナント型クラウド・アーキテクチャを実装することは、サーバ・インスタンス24のうちの特定の1つのサーバ・インスタンス24が故障して、この特定のサーバ・インスタンスに割り当てられた全てのカスタマについて運転休止をもたらすなど、様々な欠点を被る場合がある。
【0024】
他の実施形態では、データ・センタ22のうちの1つまたは複数が、マルチインスタンス型クラウド・アーキテクチャを使用して構成されて、全てのカスタマそれぞれに、1つまたは複数の独特なカスタマ・インスタンスが提供される。たとえば、マルチインスタンス型クラウド・アーキテクチャは、各カスタマ・インスタンスに、専用のアプリケーション・サーバまたは専用のデータベース・サーバを提供することが可能である。他の例では、マルチインスタンス型クラウド・アーキテクチャは、各カスタマ・インスタンスについて、単一の物理サーバ24もしくは仮想サーバ24、ならびに/または、物理サーバ24および/もしくは仮想サーバ24の他の組合せ(1つまたは複数の専用ウェブ・サーバ、1つまたは複数の専用アプリケーション・サーバ、1つまたは複数のデータベース・サーバなど)を配備することが可能である。マルチインスタンス型クラウド・アーキテクチャでは、複数のカスタマ・インスタンスを1つまたは複数のハードウェア・サーバ上それぞれにインストールすることが可能であり、各カスタマ・インスタンスには、コンピューティング・メモリ、ストレージ、処理パワーなど、物理サーバ資源のうちの特定部分が割り当てられる。こうすることで、各カスタマ・インスタンスは、データ分離の恩恵をもたらし、カスタマがプラットフォーム20にアクセスする際のダウンタイムを相対的に短くし、カスタマ駆動によるアップグレード・スケジュールを提供する、それ独特のソフトウェア・スタックを有するようになる。以下では、
図2を参照して、マルチインスタンス型クラウド・アーキテクチャ内にカスタマ・インスタンスを実装する例について、より詳細に議論する。
【0025】
図2は、本開示内容の実施形態が動作することができるマルチインスタンス型クラウド・アーキテクチャ40の一実施形態の模式図である。
図2は、マルチインスタンス型クラウド・アーキテクチャ40が、クライアント・ネットワーク12と、地理的に互いから切り離され得る2つの(たとえば、対になった)データ・センタ22Aおよび22Bに接続するネットワーク18とを含むことを示す。
図2を例として使用すると、ネットワーク環境およびサービス・プロバイダ・クラウド・インフラストラクチャ・クライアント・インスタンス42(本明細書では、クライアント・インスタンス42とも称する)が、専用仮想サーバ(たとえば、仮想サーバ24A、24B、24C、24D)および専用データベース・サーバ(たとえば、仮想データベース・サーバ44A、44B)に関連付けられる(たとえば、これらによりサポートおよびイネーブルされる)。言い方を変えれば、仮想サーバ24A~24Dならびに仮想データベース・サーバ44Aおよび44Bは、他のクライアント・インスタンスと共用されることはなく、それぞれのクライアント・インスタンス42に特有のものである。図示の例では、クライアント・インスタンス42の可用性を促進するために、仮想サーバ24A~24Dならびに仮想データベース・サーバ44Aおよび44Bが、異なる2つのデータ・センタ22Aおよび22Bに割り当てられ、これにより、データ・センタ22のうちの1つがバックアップ・データ・センタとして働く。マルチインスタンス型クラウド・アーキテクチャ40の他の実施形態は、ウェブ・サーバなどの他の種類の専用仮想サーバを含むことができる。たとえば、クライアント・インスタンス42は、専用仮想サーバ24A~24D、専用仮想データベース・サーバ44Aおよび44B、ならびに、追加の専用仮想ウェブ・サーバ(
図2には示していない)に関連付けることができる(たとえば、これらによりサポートおよびイネーブルすることできる)。
【0026】
図1および
図2は、クラウド・コンピューティング・システム10およびマルチインスタンス型クラウド・アーキテクチャ40それぞれの具体的実施形態を示すが、本開示内容は、
図1および
図2に示す具体的実施形態に限定されない。たとえば、
図1は、プラットフォーム20がデータ・センタを使用して実装されることを示すが、プラットフォーム20の他の実施形態はデータ・センタに限定されず、他の種類のリモート・ネットワーク・インフラストラクチャを利用することも可能である。さらに、本開示内容の他の実施形態は、1つまたは複数の異なる仮想サーバを組み合わせて、単一の仮想サーバにすること、反対に、複数の仮想サーバを使用して、単一の仮想サーバに由来する動作を実行することができる。たとえば、
図2を例とすると、仮想サーバ24A、24B、24C、24Dおよび仮想データベース・サーバ44A、44Bを組み合わせて、単一の仮想サーバにすることができる。さらに、本手法は、他のアーキテクチャまたは構成で実装することができ、これらのアーキテクチャまたは構成には、マルチテナント型アーキテクチャ、汎用クライアント/サーバ実装形態、および/または、本明細書で議論する動作のいくつか、もしくは全てを実行するように構成された単一のプロセッサ・ベースの物理的デバイス上のものさえも含まれるが、これらに限定されない。同様に、実装形態の議論を容易にするために仮想サーバまたは仮想機械を参照することがあるが、代わりに物理サーバを適宜用いることもできる。
図1および
図2の使用および議論は、説明および解説を容易にするための例に過ぎず、開示内容を本明細書で説明する具体例に限定しようとするものではない。
【0027】
理解されるように、
図1および
図2について議論したそれぞれのアーキテクチャおよびフレームワークは、全体にわたって、様々な種類のコンピューティング・システム(たとえば、サーバ、ワークステーション、クライアント・デバイス、ラップトップ、タブレット・コンピュータ、セルラ電話機など)を組み入れる。完全を期すために、こうしたシステム内で一般に見られるコンポーネントの簡潔で高度な概説を提供する。理解されるように、本概説は、こうしたコンピューティング・システム内で典型的なコンポーネントの一般化した高度な概要を単に提供することを意図しており、議論するコンポーネント、または議論から省略されたコンポーネントについて限定を行うものとみなされるべきではない。
【0028】
背景として、本手法は、
図3に示すような1つまたは複数のプロセッサ・ベースのシステムを使用して実装され得ることを理解することができる。同様に、本手法で利用されるアプリケーションおよび/またはデータベースは、こうしたプロセッサ・ベースのシステム上で記憶すること、用いること、および/または維持することができる。理解されるように、
図3に示すようなシステムは、分散コンピューティング環境、ネットワーク化された環境、または他のマルチコンピュータ・プラットフォームもしくはアーキテクチャ内に存在し得る。同様に、
図3に示すようなシステムは、本手法を実装することができる1つもしくは複数の仮想環境もしくはコンピュータ型インスタンスをサポートする際、または、それらと通信する際に使用され得る。
【0029】
これを考慮して、例示的コンピュータ・システムは、
図3に示すコンピュータ・コンポーネントのうちのいくつか、または全てを含み得る。
図3は、コンピューティング・システム80の例示的コンポーネントと、それらの潜在的な相互接続または通信路(1つまたは複数のバスに沿ったものなど)とのブロック図を大まかに示す。図示のように、コンピューティング・システム80は、1つまたは複数のプロセッサ82、1つまたは複数のバス84、メモリ86、入力デバイス88、電源90、ネットワーク・インタフェース92、ユーザ・インタフェース94、本明細書で説明する機能を実行するのに役立つ他のコンピュータ・コンポーネントなどの(ただし、これらに限定されない)様々なハードウェア・コンポーネントを含むことができる。
【0030】
1つまたは複数のプロセッサ82は、メモリ86に記憶された命令を実行可能な1つまたは複数のマイクロプロセッサを含むことができる。これに加えて、または、そうする代わりに、1つまたは複数のプロセッサ82は、特定用途向け集積回路(ASIC)、フィールドプログラマブル・ゲート・アレイ(FPGA)、および/または、メモリ86から命令を呼び出すことなく、本明細書で議論する機能のうちのいくつか、または全てを実行するように設計された他のデバイスを含むこともできる。
【0031】
他のコンポーネントについて、1つまたは複数のバス84は、コンピューティング・システム80の様々なコンポーネント間にデータおよび/または電力を提供するための適当な電気的チャネルを含む。メモリ86は、任意の有形の非一時的コンピュータ可読記憶媒体を含んでよい。
図1では単一ブロックとして示しているが、メモリ86は、1つまたは複数の物理的位置で、同一種類、または、それぞれ異なる種類の複数の物理ユニットを使用することより実装することもできる。入力デバイス88は、1つまたは複数のプロセッサ82にデータおよび/またはコマンドを入力するための構造に相当する。たとえば、入力デバイス88は、マウス、タッチパッド、タッチスクリーン、キーボードなどを含んでもよい。電源90は、ライン電力やバッテリ・ソースなど、コンピューティング・デバイス80の様々なコンポーネントの電力のための任意の適当なソースになることが可能である。ネットワーク・インタフェース92は、1つまたは複数のネットワーク(たとえば、通信チャネル)を介して、他のデバイスと通信可能な1つまたは複数のトランシーバを含む。ネットワーク・インタフェース92は、有線ネットワーク・インタフェースまたはワイヤレス・ネットワーク・インタフェースを提供することができる。ユーザ・インタフェース94は、1つまたは複数のプロセッサ82から転送されるテキストまたは画像を表示するように構成されたディスプレイを含んでもよい。ディスプレイに加えて、かつ/または、ディスプレイの代わりに、ユーザ・インタフェース94は、照明(たとえば、LED)、スピーカなど、ユーザとのインタフェースとなる他のデバイスを含むこともできる。
【0032】
先で議論したクラウド・ベースのプラットフォーム20は、NLU技術を利用することができるアーキテクチャの例を提供することを理解されたい。具体的には、クラウド・ベースのプラットフォーム20は、いくつかの出力の生成を容易にするために、意図-エンティティ・モデルを含めた、マイニングすることの可能な大きなソース・データのコーパスを含むこと、または、記憶することができる。たとえば、クラウド・ベースのプラットフォーム20は、特定のシステムの変更または修復、要求者と、問題を扱おうとするサービス技術者または運営者との対話、および、チケットが最終的にどのように解決されたかの説明などの要求を有するチケッティング・ソース・データを含むことができる。そして、生成される意図-エンティティ・モデルが、将来の要求にて、意図を分類するためのベースとして働くことが可能であり、このモデルを使用して、会話モデルを生成、改良して、将来起こる問題を、クラウド・ベースのプラットフォーム20内でユーザからの自然言語要求に基づいて自動的に対処することができる仮想エージェントをサポートすることが可能である。したがって、本明細書で説明する特定の実施形態では、開示するエージェント・オートメーション・フレームワークが、クラウド・ベースのプラットフォーム20に組み入れられ、他の実施形態では、エージェント・オートメーション・フレームワークを、以下で議論するように発話を処理するために、クラウド・ベースのプラットフォーム20に通信可能に結合された適当なシステムによりホストすること、(クラウド・ベースのプラットフォーム20とは別に)実行することができる。
【0033】
上記を考慮して、
図4Aは、クライアント・インスタンス42に関連付けられるエージェント・オートメーション・フレームワーク100(本明細書では、エージェント・オートメーション・システム100とも称する)を示す。より具体的には、
図4Aは、先で議論したクラウド・ベースのプラットフォーム20を含めた、サービス・プロバイダ・クラウド・インフラストラクチャの一部分の例を示す。クラウド・ベースのプラットフォーム20は、ネットワーク18を介してクライアント・デバイス14Dに接続されて、クライアント・インスタンス42内で実行するネットワーク・アプリケーションへのユーザ・インタフェースを提供する(たとえば、クライアント・デバイス14Dのウェブ・ブラウザを介して)。クライアント・インスタンス42は、
図2で説明したものと同様の仮想サーバによりサポートされ、クライアント・インスタンス42内での、本明細書に記載の開示する機能へのサポートを示すようにここでは図示している。このクラウド・プロバイダ・インフラストラクチャは、クライアント・デバイス42などの複数のエンドユーザ・デバイスを同時にサポートするように一般に構成され、各エンドユーザ・デバイスは、単一のクライアント・インスタンス42と通信する。また、クラウド・プロバイダ・インフラストラクチャは、クライアント・インスタンス42などの任意数のクライアント・インスタンスを同時にサポートするように構成することもでき、インスタンスのそれぞれは、1つまたは複数のエンドユーザ・デバイスと通信する。上記のように、エンドユーザは、ウェブ・ブラウザ内で実行されるアプリケーションを使用して、クライアント・インスタンス42とインタフェースを取ることもできる。
【0034】
図4Aに示すエージェント・オートメーション・フレームワーク100の実施形態は、挙動エンジン(BE)102、NLUフレームワーク104、およびデータベース106を含み、これらは、クライアント・インスタンス42内で通信可能に結合される。BE102は、自然言語ユーザ要求122(本明細書では、ユーザ発話122または発話122とも称する)およびエージェント応答124(本明細書では、エージェント発話124とも称する)を介して、クライアント・デバイス14Dのユーザと対話する任意の適当な数の仮想エージェントまたはペルソナのホストとして働くこと、または、それらを含むことができる。実際の実装形態では、エージェント・オートメーション・フレームワーク100は、本開示内容に従って、意味抽出サブシステム、意味検索サブシステムなどを含めた、いくつかの他の適当なコンポーネントを含み得るが分かる。
【0035】
図4Aに示す実施形態については、データベース106は、データベース・サーバ・インスタンス(たとえば、
図2で議論したデータベース・サーバ・インスタンス44Aもしくは44B)、または、データベース・サーバ・インスタンスの集合であってもよい。図示のデータベース106は、データベース106の1つまたは複数のテーブル(たとえば、関係データベース・テーブル)内に、意図-エンティティ・モデル108、会話モデル110、発話112のコーパス、および、規則114の集合を記憶する。意図-エンティティ・モデル108は、特定のサンプル発話を介して、特定の意図と、特定のエンティティとの関連または関係を記憶する。特定の実施形態では、意図-エンティティ・モデル108は、適当なオーサリング・ツールを使用して、設計者によりオーサリングされ得る。他の実施形態では、エージェント・オートメーション・フレームワーク100が、データベース106の1つまたは複数のテーブルに記憶された発話112のコーパスおよび規則114の集合から意図-エンティティ・モデル108を生成する。いくつかの実施形態では、意図-エンティティ・モデル108は、オーサリングされた技術と、ML技術との組合せに基づいて決定することもできる。いずれにせよ、開示する意図-エンティティ・モデル108は、意図および/またはエンティティの任意の適当な組合せを、発話112のコーパスそれぞれに関連付けることができることを理解されたい。以下で議論する実施形態については、意図-エンティティ・モデル108のサンプル発話を使用して、意味検索のための検索空間を規定するために、理解モデルの意味表現を生成する。
【0036】
図4Aに示す実施形態については、会話モデル110が、意図-エンティティ・モデル108の意図と、特定の応答および/またはアクションとの関連を記憶し、これら関連は、BE102の挙動を概ね規定する。特定の実施形態では、会話モデル内の関連の少なくとも一部分が、処理される発話内の特定の識別されるアーチファクトに、どのようにBE102が応答することをBE102の設計者が望むか基づいて、設計者によりマニュアル的に作成されるか、または、予め規定される。様々な実施形態で、データベース106は、コンピレーション・モデル・テンプレート・データ(たとえば、分類適合性規則、分類レベル・スコアリング係数、木モデル比較アルゴリズム、木基礎構造ベクトル化アルゴリズム)、意味表現などについての情報を記憶するテーブルなど、意図分類に関する他の情報を記憶する他のデータベース・テーブルを含むことができることに留意されたい。
【0037】
図示の実施形態については、NLUフレームワーク104は、NLUエンジン116およびボキャブラリ・マネジャ118を含む。NLUフレームワーク104は任意の適当な数の他のコンポーネントを含むこともできることを理解することができる。特定の実施形態では、NLUエンジン116は、NLUフレームワーク104のいくつかの機能を実行するように設計され、これらの機能には、発話の単語またはフレーズから単語ベクトル(たとえば、意図ベクトル、主語ベクトルまたはエンティティ・ベクトル、部分木ベクトル)を生成すること、ならびに、これらのベクトル間の距離(たとえば、ユークリッド距離)を求めることが含まれる。たとえば、NLUエンジン116は、解析される発話の各意図について、それぞれ意図ベクトルを作成することが一般に可能である。したがって、異なる2つの発話間の類似性測度または距離を、NLUエンジン116により2つの意図について作成されるそれぞれの意図ベクトルを使用して計算することが可能であり、類似性測度は、2つの意図の意味の類似性の指標となる。
【0038】
ボキャブラリ・マネジャ118(以下で議論するボキャブラリ・サブシステムの一部分にすることができる)は、NLUフレームワーク104が訓練中に遭遇しなかった、ボキャブラリ外の単語およびシンボルに対処する。たとえば、特定の実施形態では、ボキャブラリ・マネジャ118は、エージェント・オートメーション・フレームワーク100により(たとえば、規則114の集合に基づいて)解析される発話内で、単語および頭字語の同義語および分野特有の意味を識別し、それらを置き換えることが可能であり、これにより、NLUフレームワーク104の性能を改善して、コンテキスト特有の発話内での意図およびエンティティを適切に識別することができる。さらに、自然言語が、既存の単語について新しい用法を採用する傾向にあることに適応するために、特定の実施形態では、ボキャブラリ・マネジャ118は、コンテキストの変化に基づいて、他の意図またはエンティティに予め関連付けられた単語の別目的での使用に対処する。たとえば、ボキャブラリ・マネジャ118は、特定のクライアント・インスタンスおよび/または会話チャネルからの発話のコンテキストにおいて、「bike(バイク)」という単語が、bicycle(自転車)ではなく、motorcycle(二輪自動車)を実際には指すような状況に対処することが可能である。
【0039】
意図-エンティティ・モデル108および会話モデル110が作成されると、エージェント・オートメーション・フレームワーク100は、ユーザ発話122を(自然言語要求の形態で)受け取り、要求に対処するために適宜アクションを行うように設計される。たとえば、
図4Aに示す実施形態では、BE102は、クライアント・ネットワーク12に配置されるクライアント・デバイス14Dにより送り出される発話122(たとえば、チャット・コミュニケーションでの自然言語要求)を、ネットワーク18を介して受け取る仮想エージェントである。BE102が、発話122をNLUフレームワーク104に提供し、NLUエンジン116が、以下で議論するNLUフレームワークの様々なサブシステムとともに、意図-エンティティ・モデル108に基づいて発話122を処理して、発話内のアーチファクト(たとえば、意図および/またはエンティティ)を導出する。NLUエンジン116により導出されたアーチファクト、ならびに、会話モデル110内の関連性に基づいて、BE102は、予め規定された1つまたは複数の特定のアクションを実行する。図示の実施形態については、BE102は、また、ネットワーク18を介して、クライアント・デバイス14Dに応答124(たとえば、仮想エージェント発話124またはコンファメーション)を提供し、たとえば、この応答は、受け取ったユーザ発話122に応答してBE102が実行したアクションを示す。さらに、特定の実施形態では、NLUフレームワーク104内での学習の継続のために、データベース106内に記憶される発話112に発話122を加えることもできる。
【0040】
他の実施形態では、性能を改善するために、別のやり方で、エージェント・オートメーション・フレームワーク100および/またはNLUフレームワーク104の1つまたは複数のコンポーネントを配置すること、それらの位置を定めること、またはそれらのホストを行うこともできることを理解することができる。たとえば、特定の実施形態では、クライアント・インスタンス42から切り離され、クライアント・インスタンス42と通信可能に結合されたインスタンス(たとえば、共用インスタンス、企業インスタンス)が、NLUフレームワーク104の1つまたは複数の部分のホストとして働くことができる。こうした実施形態は、有利なことに、クライアント・インスタンス42のサイズを低減することができ、これにより、クラウド・ベースのプラットフォーム20の効率が改善されることが現在認識されている。具体的には、特定の実施形態では、以下で議論する類似性スコアリング・サブシステムの1つまたは複数のコンポーネントを、クライアント・インスタンス42に通信可能に結合された切り離されたインスタンス(たとえば、企業インスタンス)、ならびに他のクライアント・インスタンスがホストして、改善された意味検索を可能にすることができることで、検索空間内での意味表現の適当なマッチングが行われ、これにより、発話122についてのアーチファクトがマッチするものの識別が可能になる。
【0041】
上記を考慮して、
図4Bは、NLUフレームワーク104の一部分が、クラウド・ベースのプラットフォーム20がホストとして働く分離した共用インスタンス(たとえば、企業インスタンス125)により代わりに実行されるエージェント・オートメーション・フレームワーク100の一代替的実施形態を示す。図示の企業インスタンス125は、適当なプロトコルを介して(たとえば、適当なRepresentational State Transfer(REST)要求/応答を介して)、任意の適当な数のクライアント・インスタンスと、アーチファクト・マイニングおよびアーチファクト分類に関するデータを交換するように通信可能に結合される。したがって、
図4Bに示す設計については、複数のクライアント・インスタンス42がアクセス可能な共用資源として、NLUフレームワークの一部分をホストすることにより、クライアント・インスタンス42のサイズを(たとえば、
図4Aに示すエージェント・オートメーション・フレームワーク100の実施形態と比較して)実質的に低減することが可能であり、エージェント・オートメーション・フレームワーク100の総合効率を改善することが可能である。
【0042】
具体的には、
図4Bに示すNLUフレームワーク104は、NLUフレームワーク104内で、それぞれ特異な処理を実行する3つの特異なコンポーネントに分けられる。これらのコンポーネントは、企業インスタンス125がホストとして働く共用NLUトレーナ126と、企業インスタンス125がホストとして働く共用NLUアノテータ127と、クライアント・インスタンス42がホストとして働くNLUプレディクタ128とを含む。
図4Aおよび
図4Bに示す組織は単なる例であり、他の実施形態では、NLUフレームワーク104および/またはエージェント・オートメーション・フレームワーク100の他の組織が本開示内容に従って使用され得ることを理解することができる。
【0043】
図4Bに示すエージェント・オートメーション・フレームワーク100の実施形態については、共用NLUトレーナ126は、クライアント・インスタンス42から発話112のコーパスを受け取り、意味論的マイニング(たとえば、意味論的パーシング、文法エンジニアリングなどを含む)を実行して、意図-エンティティ・モデル108の生成を促進するように設計される。意図-エンティティ・モデル108が生成されると、クライアント・デバイス14Dにより提供されるユーザ発話122をBE102が受け取った場合、NLUプレディクタ128が、発話122のパーシング、およびそれへのアノテーション付与のために、発話122および意図-エンティティ・モデル108を共用NLUアノテータ127に渡す。共用NLUアノテータ127は、意図-エンティティ・モデル108に基づいて、発話122の意味論的パーシングおよび文法エンジニアリングなどを実行し、発話122の意味表現をクライアント・インスタンス42のNLUプレディクタ128に戻す。次いで、NLUプレディクタ128は、発話122のこれらアノテーション付き構造(以下でより詳細に議論する)を使用して、意図-エンティティ・モデル108からマッチする意図を識別し、これにより、BE102は、識別された意図に基づいて1つまたは複数のアクションを実行することができる。以下で議論するように、共用NLUアノテータ127が、NLUフレームワーク104の意味抽出サブシステム150に対応し得、NLUプレディクタが、NLUフレームワーク104の意味検索サブシステム152に対応し得ることを理解することができる。
【0044】
図5は、挙動エンジン(BE)102およびNLUフレームワーク104が、エージェント・オートメーション・フレームワーク100の一実施形態内でそれぞれの役割を実行するプロセス145を示すフロー図である。図示の実施形態については、NLUフレームワーク104は、受け取ったユーザ発話122を処理して、意図-エンティティ・モデル108に基づいてアーチファクト140(たとえば、意図および/またはエンティティ)を抽出する。抽出されたアーチファクト140は、BE102が消費可能な形態でユーザ発話122の意図およびエンティティを表現するシンボルの集合として実装することができる。こうして、これら抽出されたアーチファクト140は、BE102に提供され、BE102は、会話モデル110に基づいて、受け取ったアーチファクト140を処理して、受け取ったユーザ発話122に応答して、適当なアクション142(たとえば、パスワードの変更、記録の作成、品物の購入、アカウントのクローズ)および/または仮想エージェント発話124を決定する。矢印144が示すように、エージェント・オートメーション・フレームワーク100が、同一のユーザおよび/または他のユーザから会話フォーマットで追加のユーザ発話122を受け取り、処理する時には、プロセス145を間断なく繰り返すことが可能である。
【0045】
図5に示すように、特定の状況では、適当なアクション142が実行されると、更なるアクションまたはコミュニケーションが発生しないこともあることを理解することができる。さらに、ユーザ発話122およびエージェント発話124は、書かれた会話媒体または会話チャネル(たとえば、チャット、電子メール、チケッティング・システム、テキスト・メッセージ、フォーラム投稿)を使用して伝えられるものと本明細書では議論しているが、他の実施形態では、音声-テキストおよび/またはテキスト-音声のモジュールまたはプラグインを含み入れて、話されたユーザ発話122をテキストに翻訳するように、かつ/または、テキスト・ベースのエージェント発話124を発語に翻訳するように、本開示内容に従って音声対話システムをイネーブルすることも可能であることに留意されたい。さらに、特定の実施形態では、ユーザ発話122および仮想エージェント発話124の両方をデータベース106に(たとえば、発話112のコーパス内に)記憶して、エージェント・オートメーション・フレームワーク100内で、新たな構造およびボキャブラリの継続した学習を可能にすることもできる。
【0046】
上記のように、NLUフレームワーク104は、NLUの難問を管理可能な検索問題に変換するために協働する2つの主要なサブシステム、すなわち、意味抽出サブシステムおよび意味検索サブシステムを含む。たとえば、
図6は、エージェント・オートメーション・フレームワーク100の一実施形態での、NLUフレームワーク104の意味抽出サブシステム150および意味検索サブシステム152の役割を示すブロック図である。図示の実施形態については、
図6の右側部分154は、NLUフレームワーク104の意味抽出サブシステム150が意図-エンティティ・モデル108を受け取る様を示し、この意図-エンティティ・モデル108は、そのモデルの様々なアーチファクトそれぞれについて、サンプル発話155を含んでいる。意味抽出サブシステム150は、意図-エンティティ・モデル108のサンプル発話155の意味表現158(たとえば、パーサ木構造)を含む理解モデル157を生成する。換言すれば、理解モデル157は、以下でより詳細に議論するように、意味検索サブシステム152による検索(たとえば、比較およびマッチング)を可能にするための意味表現158を含んだ意図-エンティティ・モデル108の翻訳バージョンまたは増大バージョンである。したがって、
図6の右側部分154は、日常的スケジュール化ベースでの実行、意図-エンティティ・モデル108のアップデートに応答しての実行など、一般には発話122を受け取る前に実行されることを理解することができる。
【0047】
図6に示す実施形態については、左側部分156が、意味抽出サブシステム150がやはりユーザ発話122を受け取り、処理して、少なくとも1つの意味表現162を有する発話意味モデル160を生成する様を示す。以下でより詳細に議論するように、これらの意味表現158および162は、発話の文法的構文構造を取り込む形態を有するデータ構造であり、これらデータ構造の部分木が、発話の一部分の意味論的意味を符号化する部分木ベクトルを含む。よって、以下でより詳細に議論するように、所与の発話について、対応する意味表現が、意味検索サブシステム152による検索、比較、およびマッチングを可能にする共通の意味表現フォーマット内に、構文上の意味および意味論上の意味の両方を取り込む。したがって、発話意味モデル160の意味表現162は、検索キーのようなものと概ね考えることが可能であり、理解モデル157の意味表現158は、検索キーを捜すことが可能な検索空間を規定する。こうして、意味検索サブシステム152は、理解モデル157の意味表現158を検索して、以下で議論するように、発話意味モデル160の意味表現162とマッチする1つまたは複数のアーチファクトを特定することで、抽出アーチファクト140を生成する。
【0048】
図6の意味抽出サブシステム自体は、意味表現158および162を生成するように協働する、NLUフレームワーク104のいくつかのサブシステムを使用する。たとえば、
図7は、エージェント・オートメーション・フレームワーク100のNLUフレームワーク104の意味抽出サブシステム150の一実施形態を示すブロック図である。意味抽出サブシステム150の図示の実施形態は、MLベースの方法とインターリーブされた規則ベースの方法を使用して、発話168について、アノテーションが付された発話木166を生成し、発話168は、
図6について先に議論したような、ユーザ発話122、または、意図-エンティティ・モデル108のサンプル発話155のうちの1つであってもよい。より具体的には、
図7は、意味抽出サブシステム150の実施形態が、NLUフレームワーク104全体にプラグイン可能ないくつかの最善のモデル(規則ベースおよびMLベースの(たとえば、統計的な)モデルおよびプログラムの組合せを含む)をどのように利用することができるかを示す。たとえば、図示の意味抽出サブシステム150のプラガブル設計により、ボキャブラリ・サブシステム170は、様々な単語またはフレーズについて単語ベクトルを規定する、任意の適当な単語ベクトル分布モデルを含むことが可能である。すなわち、様々な単語分布モデルが、所与の会話チャネル、言語、コンテキストなどの中の他の単語分布モデルよりも優れることが可能であると認識されるので、開示するプラガブル設計により、意味抽出サブシステム150を特定の環境およびアプリケーションに対してカスタマイズすることが可能になる。
図7に示す実施形態については、意味抽出サブシステム150は、NLUフレームワーク104のプラグイン・サポートされた3つのサブシステム、すなわち、ボキャブラリ・サブシステム170、構造サブシステム172、および韻律サブシステム174を使用し、これらのサブシステムの様々な出力を、記憶された規則114に従って組み合わせて、発話168から発話木166を生成する。
【0049】
図7に示す意味抽出サブシステム150の実施形態については、ボキャブラリ・サブシステム170が、一般に、意味抽出サブシステム150のボキャブラリを扱う。よって、図示の意味抽出サブシステム150は、発話のボキャブラリの解析および抽出を可能にするいくつかのボキャブラリ・プラグイン176を含む。図示の実施形態については、ボキャブラリ・プラグイン176は、学習済多峰形単語ベクトル分布モデル178、学習済単峰形単語ベクトル分布モデル180、および、他の任意の適当な単語ベクトル分布モデル182を含む。このコンテキストでは、「単峰形」とは、各単語について単一のベクトルを有する単語ベクトル分布モデルを指し、「多峰形」とは、異なるコンテキスト(たとえば、「bank」は、金銭を蓄える場所、金銭自体、飛行機の操縦、または川の近くの場所を指すことができる)において異なる意味を有することがある特定の単語(たとえば、同音語、多義語)に対する複数のベクトルをサポートする単語ベクトル分布モデルを指す。モデル178、180および182は、言語、会話スタイル、会話チャネルなどの適当なパラメータに基づいて選択可能なプラガブルな単語ベクトル集合を提供する。
【0050】
たとえば、学習済多峰形分布モデル178および学習済単峰形分布モデル180は、
図12について下記で議論するように、教師なし学習または他の一般的なクラスタリング・アルゴリズムを使用して生成される単語分布(たとえば、単語ベクトルの規定ベクトル空間)を提供可能である。すなわち、発話内で一般的に互いに近接して使用される単語同士は、関係し合う意味をしばしば有するということを理解すれば、発話の統計解析を(たとえば、発話112のコーパスから)実行し、次いで、これらの発話内で、一般的にどのようにして単語が、他の単語に関連して使用されているかに基づいて、それら単語についてベクトルを規定することにより、学習済多峰形分布モデル178および学習済単峰形分布モデル180を生成することが可能である。よって、これらのボキャブラリ・プラグイン176は、ユーザ発話122およびサンプル発話155を処理する際に、ボキャブラリ・サブシステム170が、同義語、つづりを間違えた単語、符号化されたシンボル(たとえば、ウェブ・アドレス、 ネットワーク・パス、エモティコン、絵文字)、および、ボキャブラリ外の用語などを認識し、対処することを可能にする。特定の実施形態では、ボキャブラリ・サブシステム170は、記憶された規則114に基づいて、様々なボキャブラリ・プラグイン176が出力する単語ベクトルを組み合わせること、または、それらからの選択を行うことで、以下で議論するように、発話木166のノードについて単語ベクトルを生成することが可能である。さらに、
図12について下記で議論するように、受け取るユーザ発話122に対して実行される教師なし学習に基づいて、単語ベクトル分布モデル178、180および/または182を継続してアップデートすることが可能である。
【0051】
図7に示す実施形態については、意味抽出サブシステム150の構造サブシステム172は、規則ベースの構造パーシング・プラグイン184とMLベースの構造パーシング・プラグイン184との組合せを使用して、発話168の言語形状を解析する。換言すると、図示の構造プラグイン184は、発話122および155の構文的および文法的構造の解析および抽出を可能にする。図示の実施形態については、構造プラグイン184は、規則ベースのパーサ186、MLベースのパーサ188(たとえば、DNNベースのパーサ、RNNベースのパーサなど)、および他の適当なパーサ・モデル190を含む。たとえば、これら構造プラグイン184のうちの1つまたは複数が、発話の各単語またはフレーズについて、(たとえば、動詞、主語またはエンティティ、直接目的語、修飾語などとしての)分類アノテーション付与または分類タグ付けを可能にする。特定の実施形態では、構造サブシステム172は、データベース106に記憶された1つまたは複数の規則114に基づいて、様々な構造プラグイン184が出力するパーサ構造を組み合わせること、または、それらからの選択を行うことが可能であり、それらの1つまたは複数の規則114は、以下で議論するように、発話木166の構造または形状を規定するのに使用される。
【0052】
図7に示す実施形態については、意味抽出サブシステム150の韻律サブシステム174は、規則ベースの韻律プラグイン196とMLベースの韻律プラグイン196との組合せを使用して、発話168の韻律を解析する。図示の韻律プラグイン192は、規則ベースの韻律システム194、MLベースの韻律システム196、および他の適当な韻律システム198を含む。これらのプラグインを使用することにより、韻律サブシステム174は、リズム(たとえば、発話の突発性、パンクチュエーションまたはポーズが示すセグメント区分などのチャット・リズム)、強調(たとえば、大文字の使用、太字にすること、下線を付すこと、アスタリスク)、焦点または興味(たとえば、特定の用語またはスタイルの繰り返し)などの記載された韻律キューを含めた韻律キューについて発話168を解析し、これらの韻律キューを使用して、たとえば、意図同志の間の境界、緊急度または異なる意図に対する相対的重要度などを決定することが可能である。よって、特定の実施形態では、韻律サブシステム174は、データベース106に記憶された規則114に基づいて、様々な韻律プラグイン192が出力する韻律パーサ構造を組み合わせること、または、それらからの選択を行うことで、以下で議論するように、発話木166を生成することが可能である。
【0053】
したがって、
図7に示す意味抽出サブシステム150の実施形態については、NLUフレームワーク104のボキャブラリ・サブシステム170、構造サブシステム172、および韻律サブシステム174が、1つまたは複数の規則114に基づいて、発話168から発話木166を生成するために協働する。特定の実施形態では、発話168から発話木166を生成する際に、1つのサブシステム(たとえば、韻律サブシステム174)の出力の一部分が、他のサブシステム(たとえば、構造サブシステム172)への入力として提供され得ることを理解することができる。意味抽出サブシステム150により生成される、結果として得られる発話木166データ構造は、いくつかのノードを含み、各ノードは、ボキャブラリ・サブシステム170に提供される、それぞれの単語ベクトルに関連付けられる。さらに、記憶された規則114に従って、構造サブシステム172および韻律サブシステム174の出力に基づいて木構造を形成するように、これらのノードを配置し、互いに結合する。
【0054】
たとえば、
図8は、本手法の一実施形態による、発話168について生成された発話木166の例を示す図である。上記のように、発話木166は、発話168に基づいて、意味抽出サブシステム150が生成したデータ構造である。特定の実施形態では、発話意味モデル160の意味表現162および理解モデル157の意味表現158が、発話木であり(または、発話木から導出され)、他の実施形態では、他のパーサ構造を使用することが可能である。
図8に示す例については、発話木166が、例示的発話である「I want to go to the store by the mall today to buy a blue, collared shirt and black pants and also to return some defective batteries.(私は、今日、青色の襟のあるシャツおよび黒色のズボンを買うために、また、いくつかの不良品の電池を返品するために、モールのそばにあるお店に行きたい)」に基づく。図示の発話木166は、木構造に配置された1組のノード202(たとえば、ノード202A、202B、202C、202D、202E、202F、202G、202H、202I、202J、202K、202L、202M、202N、および2020P)を含み、各ノードは、発話168の特定の単語またはフレーズを表現する。ノード202のそれぞれが、発話木166の特定の部分木を表現していると述べることもできることが分かり、1つの部分木は1つまたは複数のノード202を含むことができる。
【0055】
上記のように、
図8に示す発話木166の形態または形状は、韻律サブシステム174および構造サブシステム172により決定され、例示的発話の構文上の文法的意味を表現する。より具体的には、韻律サブシステム174が、発話を意図セグメントに分解し、構造サブシステム172が、これらの意図セグメントから発話木166を構築する。ノード202のそれぞれは、発話の特定の単語またはフレーズの意味論的意味を示すためにボキャブラリ・サブシステム170により決定された、それぞれの単語ベクトルを記憶または参照する。上記のように、各単語ベクトルは、発話の一部分の意味論的意味の数学的表現を提供する浮動小数点値(たとえば、1×N行列またはN×1行列)の規則化n次元リスト(たとえば、300次元リスト)である。
【0056】
さらに、ノード202のそれぞれは、構造サブシステム172により、そのノードにより表現される単語またはフレーズについての追加の情報でアノテーションが付される。たとえば、
図8では、ノード202のそれぞれが、分類アノテーションまたは品詞(POS)アノテーションを有する。具体的には、
図8に示す例示的発話木については、特定の部分木またはノード(たとえば、ノード202A、202B、202C、および202D)が、構造サブシステム172により、動詞ノードであるとアノテーションを付され、特定の部分木またはノード(たとえば、ノード202E、202F、202G、202H、202I、および202J)が、構造サブシステム172により、主語ノードまたは目的語ノードであるとアノテーションを付され、特定の部分木またはノード(たとえば、ノード202K、202L、202M、202N、および202P)が、構造サブシステム172により、修飾語ノード(たとえば、主語修飾ノード、目的語修飾ノード、動詞修飾ノード)であるとアノテーションを付さる。これらの分類アノテーションは、
図8に示す例示的発話木166のような発話木から生成される意味表現を比較する際に、意味検索サブシステム152により使用される。したがって、意味表現を生成する発話木166が、意図および/またはエンティティの抽出のためのベース(たとえば、最初のベース)として働くことを理解することができる。
【0057】
図6を簡単に参照して分かるように、NLUフレームワーク104による意味検索の性能は、NLUフレームワークが、受け取ったユーザ発話122の複数の代替的形態を導出し、これらを、意図-エンティティ・モデル108のサンプル発話155の複数の代替的形態と比較することを可能にすることで改善することができる。たとえば、特定の実施形態では、意味検索サブシステム152により実行される意味検索中に、理解モデル157の意味表現158と、場合によっては、追加の理解モデルの意味表現とを含む検索空間が規定され得る。さらに、特定の実施形態では、検索されているユーザ発話122のCCG形態に基づいて、この検索空間を反復的に枝刈りすることもでき、このCCG形態は、発話意味モデル160の意味表現162の構造に取り込まれる。具体的には、ユーザ発話122から導出される複数の代替的意味表現を使用して、どのような他の同等の意味表現158が検索空間内に存在するかを求めることが可能であり、同等ではない意味表現を考慮から排除して、検索レイテンシおよび全体的なコンピューティング資源使用を改善することが可能である。こうして、様々なCCG形態を伴ってユーザ発話122の複数の代替的意味表現162を発話意味モデル160内に有する結果、意味検索中に検索空間の劇的に異なる枝刈りを行うことができるようになり、これにより、検索空間のより包括的な意味検索が可能になる。
【0058】
さらに、意味検索サブシステム152が発話意味モデル160の意味表現162を、理解モデル157の意味表現158と比較している際にも、意味表現162および158の複数の代替的形態を有することは有利であり得る。たとえば、特定の実施形態では、CCG形態分類データベース(たとえば、データベース106の一部分)が、異なるいくつかのCCG形態(たとえば、動詞主導のCCG形態、名詞主導のCCG形態)を記憶することができる。各CCG形態は、そのCCG形態を有する、発話意味モデル160の意味表現162と、それと同じCCG形態(または、異なるCCG形態もしくは同等のCCG形態)を有する、理解モデル157の意味表現158との間の類似性スコアを、意味検索サブシステム152が計算することを可能にする数学関数の集合に関連付けられる。さらに、特定の実施形態では、意味検索サブシステム152が、これらの数学関数を使用して、同等な2つの意味表現の増大する数のノードを反復的に比較することができ、これらノードを考慮する順番も、意味表現の形態または形状に依存する。したがって、様々なCCG形態を伴う複数の代替的意味表現162を発話意味モデル160内に有することで、様々な数学関数を使用して、理解モデル157の様々な意味表現158との様々な比較が可能になり、これによっても、より包括的な意味検索が可能になる。
【0059】
上記を考慮して、
図9は、NLUフレームワーク104の意味抽出サブシステム150が、当初の発話252の再発現(re-expression)を生成し、次いで、これらの再発現および当初の発話252に基づいて、意味表現の組254を生成するプロセス250の一実施形態を示すフロー図である。特定のケースでは、当初の発話252が、受け取ったユーザ発話122である場合があり、結果として得られる意味表現の組254が、発話意味モデル160の意味表現162になる場合があることを理解することができる。他のケースでは、当初の発話252が、意図-エンティティ・モデル108のサンプル発話155のうちの1つである場合もある。
図9に示す実施形態については、プロセス250の一部分が、NLUフレームワーク104の意味抽出サブシステム150のボキャブラリ・サブシステム170により実行され、他の部分が、意味抽出サブシステム150の構造サブシステム172により実行される。他の実施形態では、プロセス250のステップが、NLUフレームワーク104の他の適当なコンポーネントにより実行されることもある。さらに、プロセス250を適当なメモリ(たとえば、メモリ86)に記憶し、
図3、
図4A、および
図4Bについて先に議論したように、クライアント・インスタンス42または企業インスタンス125に関連付けられた適当なプロセッサ(たとえば、プロセッサ82(1つまたは複数のプロセッサ82))により実行することもできる。
【0060】
図9に示す実施形態については、NLUフレームワーク104のボキャブラリ・サブシステム170が当初の発話252をクレンジングする(ブロック256)ことでプロセス250が始まる。たとえば、ボキャブラリ・サブシステム170は、データベース106に記憶された規則114にアクセスし、これを適用して、発話の特定のトークン(たとえば、単語、フレーズ、パンクチュエーション、絵文字)を改変することができる。たとえば、特定の実施形態では、クレンジングは、当初の発話252から非テキストの要素(たとえば、エモティコン、絵文字、パンクチュエーション)を取除する規則を適用することを含んでもよい。特定の実施形態では、クレンジングは、発話内のつづりの間違いまたは誤字を修正することを含んでもよい。さらに、特定の実施形態では、クレンジングは、特定のトークンを、他のトークンに置換することを含んでもよい。たとえば、ボキャブラリ・サブシステム170は、time(時間)またはcolor(色)に関する全てのエンティティを、一般的または包括的エンティティ(たとえば、「TIME」、「COLOR」)に置き換えるという規則を適用してもよい。
【0061】
図9に示す実施形態については、プロセス250は、ボキャブラリ・サブシステム170が当初の発話252に対してボキャブラリ注入(ブロック258)を実行することで継続する。ボキャブラリ注入は、当初の発話252の複数の再レンダリングを導入することを一般に含む。たとえば、理解モデル157のボキャブラリ・モデル260の求めるところに従って、言い回しおよび/または専門用語を、より会話に適したフレーズおよび/または用語に置き換えることができる。特定の実施形態では、複数のフレーズおよび/または用語を置き換えることができ、こうした置換えの様々な配列を使用して、当初の発話252に基づいて発話の組262を生成する。たとえば、特定の実施形態では、ボキャブラリ・サブシステム170は、理解モデル157のボキャブラリ・モデル262にアクセスして、それぞれ異なるトークンを有する発話の再発現を生成するのに使用することが可能な代替的ボキャブラリを識別することができる。具体的例として、一実施形態では、ボキャブラリ・サブシステム170は、「employee(従業員)」を「developer(開発者)」の同義語と決定することがあり、用語「developer(開発者)」を、用語「employee(従業員)」で置換した新たな発話を生成してもよい。
【0062】
図9に示す実施形態については、クレンジングおよびボキャブラリ注入の後、POSタグ付けおよびパーシングのために、発話の組262を構造サブシステム172に提供する。発話の組262は、当初の発話252または当初の発話をクレンジングしたバージョンを含んでもよく、ブロック258のボキャブラリ注入を通して生成された任意の適当な数の代替的な再発現発話を含んでもよいことを理解することができる。特定の環境では、ブロック258のボキャブラリ注入で、当初の発話252の再発現が生成されないこともあり、したがって、発話の組262が、当初の発話252、または、それをクレンジングしたバージョンのみを含むこともあることが分かる。他の実施形態では、ブロック256のクレンジングまたはブロック258のボキャブラリ注入なしで、当初の発話252が、構造サブシステム172に直接的に提供されることもある。
【0063】
発話の組261を受け取ると、構造サブシステム172は、プラグイン264の組を使用して、当初の発話252を表現する1つまたは複数の意味表現の組254を生成する(ブロック266)。他の実施形態では、代わりに、プラグイン264の組を、非プラガブルなアプリケーション、または、意味抽出サブシステム150もしくはNLUフレームワーク104のモジュールとして実装することもできる。ただし、図示の構造サブシステム172の開示するプラガブル設計は、NLUフレームワーク104がより高い柔軟性を有することを可能にすることが現在認識されている。たとえば、プラグイン264の組を、異なる言語または異なる分野のために設計(たとえば、プログラム、訓練)された他の組に切り替えることにより、NLUフレームワーク104に追加の言語へのサポートを加えることが可能である。
【0064】
図9に示す実施形態については、構造サブシステム172のプラグイン264の組は、品詞(POS)プラグイン268、修正プラグイン270、バリエーション・フィルタ(VF)プラグイン272、パーサ・プラグイン274、ならびに、最終スコアリングおよびフィルタリング(FSF)プラグイン276を含む。プラグイン264の機能については、
図10に関連してより詳細に議論する。一般には、POSプラグイン268は、発話の各トークンのPOSタグ付けを、関連する品詞(たとえば、動詞、名詞、形容詞、代名詞、副詞)で実行するように訓練されるMLベースのコンポーネント(たとえば、フィードフォワード人工ニューラル・ネットワーク)を含む。POSプラグイン268は、発話の複数の潜在的POSタグ付け、ならびに、発話の各潜在的POSタグ付けについての、対応する信頼スコアを出力するように設計される。修正プラグイン270(1つまた複数の修正プラグイン270)は、MLベースの技術を適用するか、または、POSプラグイン268により生成され、誤りであることが分かっている潜在的POSタグ付けを改変または除去するための規則(たとえば、データベース106に記憶されている)を適用するPOS修正プラグインを含む。VFプラグイン272は、POSプラグイン268により生成される潜在的POSタグ付けの数学的比較を適用し、十分に互いに異ならないPOSタグ付けを除去する。パーサ・プラグイン274は、残っている候補POSタグ付けのそれぞれについてのそれぞれの意味表現、ならびに、パーシング動作についての、対応する信頼スコアを生成するように設計および/または訓練された規則ベースまたはMLベースのコンポーネント(たとえば、フィードフォワード人工ニューラル・ネットワーク)を含むことができる。また、修正プラグイン270(1つまた複数の修正プラグイン270)は、MLベースの技術を適用するか、または、パーサ・プラグイン274により生成され、誤りであることが分かっている潜在的意味表現を改変または除去するための規則(たとえば、データベース106に記憶されている)を適用するパーサ修正プラグインを含む。FSFプラグイン276は、生成された各意味表現について、最終信頼スコアを決定し、次いで、予め規定された閾値よりも大きな対応する最終信頼スコアを有する意味表現の最終組254を出力する。
【0065】
図10は、NLUフレームワーク104の構造サブシステム172が、発話284について複数の代替的意味表現282を生成することができるプロセス280の一実施形態を示すフロー図である。よって、
図10のプロセス280は、
図9のブロック266に対応する。
図9について、発話284が、受け取ったユーザ発話122、意図-エンティティ・モデル108のサンプル発話155のうちの1つ、クレンジング(ブロック256)から生成された発話、ボキャブラリ注入(ブロック258)から生成された発話など、発話の組262のうちの1つの発話であり得ること、結果として得られる意味表現282が、当初の発話252の意味表現の組254のうちの一部分の意味表現または全ての意味表現であり得ることを理解することができる。
図10に示す実施形態については、プロセス280を適当なメモリ(たとえば、メモリ86)に記憶し、
図3、
図4A、および
図4Bについて先に議論したように、クライアント・インスタンス42または企業インスタンス125に関連付けられた適当なプロセッサ(たとえば、プロセッサ82(1つまたは複数のプロセッサ82))により実行することもできる。
【0066】
図10に示す実施形態については、プロセス280が、2つのステージ、POSタグ付けステージ286およびパーサ・ステージ288に分けられる。POSタグ付けステージ286は、構造サブシステム172が発話284のPOSタグ付けを実行(ブロック290)して、潜在的POSタグ付けの組292、ならびに、各潜在的POSタグ付けについて、対応する信頼スコア294を生成することで始まる。発話284に加えて、POSプラグイン268は、POS閾値も受け取る。たとえば、POSプラグイン268には、特定の信頼レベル(たとえば、80%)を表現するPOS閾値296を提供することができ、よって、潜在的POSタグ付けの組292は、POS閾値296以上の対応する信頼スコアを有するタグ付けのみを含むことになる。他の実施形態では、これに加えて、または、そうする代わりに、POSプラグイン268は、POSタグ付けリミット値(たとえば、10)を受け取ることができ、よって、POSプラグイン268により生成される潜在的POSタグ付けの数は、POSタグ付けリミット値に限定されることになる。特定の状況では、潜在的POSタグ付けの組292が単一のPOSタグ付けのみを含むこともあることが分かる。
【0067】
図10に示す実施形態については、プロセス280が継続し、構造サブシステム172が、修正プラグイン270を使用して、潜在的POSタグ付けの組292の自動修正(ブロック298)を実行することで、修正された潜在的POSタグ付けの組300を生成する。たとえば、上記のように、POSプラグイン268は、MLベースのコンポーネントを含み得る。よって、POSプラグイン286は、たとえば、欠陥のある訓練データに起因して、訓練中にいつの間にか、不正確なPOSタグ付けの学習を受ける場合がある。したがって、修正プラグイン270は、欠陥のあるPOSタグ付けが、プロセス280の残りのステップに進むのを妨げるために、潜在的POSタグ付けの改変、または、組292からの潜在的POSタグ付けの除去を行うように設計される。特定の実施形態では、修正プラグイン270は、トークンの表層形態(たとえば、単語の表層形態)が、そのトークンについての選択されたPOSタグにマッチすることを確実にするために、外部の語彙データベース(たとえば、データベース106に記憶、理解モデル157の一部分として記憶されている)を照会することができる。この種類の修正は、サブの単語学習モデル(たとえば、文字埋込みベースのモデル、形態素モデルなど)に基づいてPOSプラグイン268が学習される場合に特に効果的になり得ることを理解することができる。他の実施形態では、修正プラグイン270が、特定のトークンを特定のPOSタグに関連付けるように訓練されるMLベースのコンポーネント(たとえば、人工ニューラル・ネットワーク)を含むことができる。こうした実施形態については、修正プラグイン270は、組292内の潜在的POSタグ付けの各タグについてタグ付けスコアを求め、予め決めたタグ付け閾値(たとえば、データベース106に記憶されている)未満のタグ付けスコアを有する全ての潜在的POSタグ付けを排除することができる。
【0068】
たとえば、特定の実施形態では、修正プラグイン270が、規則ベースの修正技術を実装することができる。こうした実施形態については、修正プラグイン270は、開発者が規定し、データベース106に記憶された規則114にアクセスし、これを適用して、潜在的POSタグ付けの組292を修正することができる。たとえば、POSプラグイン268のMLベースのコンポーネントが、訓練中に、「stop(止まる、停止)」のトークンが、動詞または名詞ではなく、パンクチュエーションを表すと誤って学習するかもしれない。よって、開発者は、この不正確なPOSタグ付けを含む、組292から得られる潜在的POSタグ付けを除去するために、または、誤ったPOSタグ付けを正しいPOSタグ付けと置き換えるように、組292から得られる潜在的POSタグ付けを改変するために、修正プラグイン270により適用されるべき1つまたは複数の規則114を規定することができる。こうする代わりに、特定の実施形態では、修正プラグイン270は、これらの技術の組合せを使用して、潜在的POSタグ付けの組292内のエントリを排除または改変することもできる。
【0069】
図10に示す実施形態については、構造サブシステム172が、VFプラグイン272を使用して、修正された潜在的POSタグ付けの組300の多様性フィルタリング(ブロック302)を実行することで、潜在的POSタグ付けの最終指名組306を生成して、プロセス280のPOSタグ付けステージ286が終了する。修正された潜在的POSタグ付けの組300に加えて、VFプラグイン272が、バリエーション閾値304を受け取るが、このバリエーション閾値304は、修正された組300内の潜在的POSタグ付けが、どの程度互いに異なるべきかを規定する。多様性フィルタリングの目的は、修正された組300内の他のPOSタグ付けと類似し過ぎると考えられる潜在的POSタグ付けを排除することで、プロセス280ならびに後続の意味検索の効率を改善することなので、追及するコンピューティング資源消費の根拠となる十分に特異な方針を表すものではない。
【0070】
多様性フィルタリングは、異なるいくつかの方法で達成することができる。一般には、タグ付け距離または多様性機能を使用して、修正された組300内の異なる2つの潜在的POSタグ付けがどの程度互いに異なるかを求める。多様性フィルタリングは、極小の差および/または表面上の差のみを有する意味表現となる、潜在的POSタグ付け間の「上辺だけの(shallow)」違いを調べるために、追加のコンピューティング資源が意味検索で消費されるのを妨げるか、または、それを阻止する。たとえば、修正された潜在的POSタグ付けの組300内の任意の2つのエントリについて多様性スコアを計算してもよく、多様性スコアがバリエーション閾値304未満の場合には、潜在的POSタグ付けのうちの1つが十分に冗長であるとみなされ、潜在的POSタグ付けの最終指名組306には含められない。よって、潜在的POSタグ付けの数が相対的に小さい(たとえば、10以下)の場合には、修正された組300内の各潜在的POSタグ付けを、このようにして比較してもよい。しかし、より多数の潜在的POSタグ付けが、修正されたPOSタグ付けの組300内に存在する実施形態については、クラスタリング技術を適用してもよい。たとえば、タグ付け距離機能を使用して、潜在的POSタグ付け間のタグ付け距離を決定することができ、これにより、これらのタグ付け距離に基づいて、潜在的POSタグ付けをグループにクラスタ分けすることが可能である(たとえば、予め規定された数のクラスタを形成することで、クラスタ間の距離を最大にすることにより)。次に、各クラスタから代表となる潜在的POSタグ付けが選択され(たとえば、各クラスタの重心となる潜在的POSタグ付け)、プロセス280の次のステップに進展する。本開示内容従って、他の多様性フィルタリング技術も使用することができることを理解することができる。
【0071】
相対的に小さな修正POSタグ付けの組300を伴う一例では、VFプラグイン272は、ダイバシティ・ベースの組込み技術を使用することができる。この例については、発話284を、「Change my password(私のパスワードを変更してください)」としてもよい。ブロック290では、POSプラグイン268が、発話284のトークンは順番に(1)命令形態の動詞、形容詞、および名詞、または(2)動詞、形容詞、および名詞、または(3)名詞、形容詞、および名詞、または(4)動詞、代名詞、および名詞であることを示す潜在的POSタグ付けの組292を決定することができる。ブロック298での修正の後、VFプラグイン272は、修正された潜在的POSタグ付けの組300を受け取り、多様性機能を適用して、潜在的POSタグ付けがどの程度互いに異なっているかを求める。この例については、VFプラグイン272は、修正された潜在的POSタグ付けの組300内の第1のエントリを考慮することで始まる。VFプラグイン272は、比較のベースが存在しないので、第1のエントリが十分に異なり、潜在的POSタグ付けの最終指名組306に含めるべきであると決定する。次に、VFプラグイン272は、修正された潜在的POSタグ付けの組300内の第2のエントリを、多様性機能を使用して第1のエントリと比較することにより、第2のエントリを考慮することができる。例示的な多様性機能は、重み付け平均であってもよい。この例については、第1のエントリと、第2のエントリとが比較される際に、第1のエントリの第1のタグ(たとえば、命令形態の動詞)と、第2のエントリの第1のタグ(たとえば、動詞)とが比較される。それぞれ異なるタグ比較のための差値を、データベース106内に規則114の一部分として記憶することができる。たとえば、データベース106内で、動詞-動詞の比較、名詞-名詞の比較、形容詞-形容詞などに割り当てる差値を0にすること、命令形態の動詞-動詞の比較に割り当てる差値を、0をわずかに上回る(たとえば、0.1)ようにすること、動詞-名詞の比較、動詞-形容詞、名詞-形容詞などに割り当てる差値を1にすることなどができる。特定の実施形態では、データベース106は、それぞれ異なるPOSタグについて重み付け値を更に記憶することができ、これにより、特定のPOSタグ(たとえば、動詞)が、他のPOSタグ(たとえば、名詞、代名詞)よりも、多様性機能の出力に大きく寄与することになる。この例については、各POSタグの重みは等価である。よって、多様性機能は、第1および第2エントリ間の多様性スコアを計算することができ(たとえば、(第1のタグの間の差0.1+第2のタグの間の差0+第3のタグ間の差0)/(比較される3つのタグ)=0.03)、この多様性スコアをバリエーション閾値304(たとえば、0.3)と比較する。多様性スコアがバリエーション閾値304を下回るので、第2のエントリは、POSタグ付けの最終指名組306には含められない。修正された潜在的POSタグ付けの組300内の第3のエントリを第1のエントリと比較することで(たとえば、(第1のタグ間の差1+第2のタグ間の差0+第3のタグ間の差0)/(比較される3つのタグ)=0.3、これは、バリエーション閾値の0.3と等しい)、このプロセスは継続し、第3のエントリは、潜在的POSタグ付けの最終指名組306に含められる。次に、修正された潜在的POSタグ付けの組300内の第4のエントリが、第1のエントリと比較され(たとえば、(第1のタグ間の差0.1+第2のタグ間の差1+第3のタグ間の差0)/(比較される3つのタグ)=0.33、これは、バリエーション閾値の0.3よりも大きい)、また、第3のエントリと比較され(たとえば、(第1のタグ間の差1+第2のタグ間の差1+第3のタグ間の差0)/(比較される3つのタグ)=0.66、これは、バリエーション閾値の0.3よりも大きい)、プロセス280内で進められる潜在的POSタグ付けの最終指名組306に含められる。
【0072】
図10に示す実施形態については、構造サブシステム172が、パーサ・プラグイン274を使用することでパーサ推測を実行(ブロック308)して、潜在的POSタグ付けの最終指名組306から潜在的意味表現の組310を生成し、組360内の各潜在的意味表現のパーシングについての対応信頼スコア312を生成することで、パーサ・ステージ288が始まる。潜在的POSタグ付けの最終指名組306に加えて、POSプラグイン268は、データベース106に記憶することができるパーサ閾値314も受け取る。たとえば、パーサ・プラグイン274には、特定の信頼レベル(たとえば、80%)を表すパーサ閾値314を提供することができ、よって、潜在的意味表現の組310は、パーサ閾値314以上の対応する信頼スコアを有する意味表現のみを含むことになる。特定のケースでは、パーサ・プラグイン274が、特定の潜在的POSタグ付けについて意味表現を生成可能でないこともあることが分かる。
【0073】
特定の実施形態では、プロセス280が、最終スコアリングおよびフィルタリングが実行される前に、潜在的意味表現の組310内のエントリを改変または除去するための第2の自動修正ステップ(ブロック315)を含むことがあることを理解することができる。たとえば、上記のように、パーサ・プラグイン274は、MLベースのコンポーネントを含み得る。よって、パーサ・プラグイン274は、たとえば、欠陥のある訓練データに起因して、訓練中にいつの間にか、不正確なパーサ木構造生成の学習を受ける場合がある。したがって、特定の実施形態では、構造サブシステム172は、欠陥のある意味表現が、プロセス280の残りのステップに進むのを妨げるために、組310からの潜在的意味表現を改変するように、または、組310から潜在的意味表現を除去するように設計されたパーサ修正プラグインを含むことがある。特定の実施形態では、このパーサ修正プラグインは、特定のPOSタグ付けを特定のパーサ木構造に関連付けるように訓練されるMLベースのコンポーネント(たとえば、人工ニューラル・ネットワーク)を含むことがある。他の実施形態では、修正プラグイン270について議論したように、パーサ修正プラグインは、規則ベースの修正技術、または、規則ベースの技術と、MLベースの技術との組合せを実装することもできる。
【0074】
図10に示す実施形態については、構造サブシステム172が、FSFプラグイン276を使用して、ブロック308でパーサ・プラグイン274により生成された潜在的意味表現の組310の最終スコアリングおよびフィルタリング(ブロック316)を実行することで、潜在的POSタグ付けの最終指名組306を生成して、プロセス280のパーサ・ステージ288が終了する。たとえば、
図10に示すように、特定の実施形態では、FSFプラグイン276は、パーサ・プラグイン274が生成した潜在意味表現の組310、潜在的意味表現のそれぞれについての対応する信頼スコア312、および、潜在的意味表現の組310を生成するのに使用された潜在的POSタグ付けについての対応する信頼スコア294を受け取る。さらに、FSFプラグイン276は、データベース106に記憶することができるFSF閾値318も受け取る。FSFプラグイン276は、潜在的意味表現の組310内の各エントリについて、最終的なスコア(たとえば、総合スコア、累積スコア)を、これらの信頼値に基づいて計算する最終スコアリング機能を規定し、FSF閾値318以上の最終スコアを有する意味表現のみを進展させる。
【0075】
様々な実施形態で、FSFプラグイン276の最終スコアリング機能は、様々なやり方で、POSタグ付けから得られる信頼スコア294と、パーシングから得られる信頼スコア312とを組み合わせることができる。たとえば、特定の実施形態では、最終スコアリング機能は、信頼スコア294と、信頼スコア312との乗算および/または加算を行うことができる。特定の実施形態では、この乗算プロセスおよび/または加算プロセスに重み付けをして、最終スコアに対する、POSタグ付けから得られる信頼スコア294またはパーシングから得られる信頼スコア312の影響を増大させることができる。具体的例として、一実施形態では、潜在的意味表現の組310内の意味表現の対応する最終スコアが、POSタグ付けから得られる信頼スコア294に、パーシングから得られる信頼スコア312を足したものの5倍であることがある。他の実施形態では、信頼スコア294と信頼スコア312とを重み付け平均として組み合わせることができ、各信頼スコアについての相対的重みを、データベース106内で予め規定してもよい。
【0076】
図11は、
図9および
図10について先に議論したように、当初の発話252が、ボキャブラリ・サブシステム170および構造サブシステム172により再発現されて、最終指名POSタグ付けの組306になるプロセス302の一実施形態を示すフロー図である。先に記載したように、当初の発話252は、受け取ったユーザ発話122、または、意図-エンティティ・モデル108のサンプル発話155のうちの1つであってもよく、ボキャブラリ注入258のために、ボキャブラリ・サブシステム170に提供される。特定の実施形態では、始めに、当初の発話252は、ボキャブラリ注入258に先だって、クレンジング・ステップを経てもよい。ボキャブラリ注入258の結果、当初の発話252と、当初の発話252の再発現であり、代替的な言い回しおよび/または専門用語を有する追加の発話(たとえば、発話324)とを含む発話の組262が生成される。
【0077】
図11に示す実施形態を継続することで、発話の組262の各発話は、POSタグ付け290のためにPOSプラグイン268に提供されて、各発話について潜在的POSタグ付けの組292が生成される。図示のように、POSプラグイン268は、発話の組262の各発話について、0個、1個、または複数個のPOSタグ付けを生成することができる。次に、潜在的POSタグ付けの組292の潜在的POSタグ付けのそれぞれが、自動修正298のために、POS修正プラグイン270Aに提供される。この例については、自動修正298中に、POS修正プラグイン270Aが、潜在的POSタグ付けの組292から、誤りであると分かっている特定の潜在的POSタグ付けを除去して、修正された潜在的POSタグ付けの組300を生成する。
【0078】
図11に示す実施形態を継続すると、自動修正298の後、潜在的POSタグ付けの組292が、多様性フィルタリング302のために、VFプラグイン272に提供される。括弧322が示すように、VFプラグイン272は、修正された潜在的POSタグ付けの組300の全ての組に渡り、潜在的POSタグ付け同士を比較する。この設計は、第1の発話(たとえば、当初の発話252)について生成される潜在的POSタグ付けが、発話の組262の第2の発話324について生成される潜在的POSタグ付けと実質的に類似し得るという現在の認識に基づく。よって、特定の実施形態では、VFプラグイン272が、先で議論したように、多様性機能またはタグ付け距離機能を適用して、修正された潜在的POSタグ付けの組300の全てに渡り、潜在的POSタグ付けを除去することで、最終指名POSタグ付けの組306を生成することを理解することができる。
【0079】
図12は、
図10について先に議論したように、
図11のプロセス320により生成された最終指名POSタグ付けの組306が、構造サブシステム172により、当初の発話252の意味表現の組254に変換されるプロセス330の一実施形態を示すフロー図である。最終指名POSタグ付けの組306内の各エントリが、パーサ推測308のために、パーサ・プラグイン274に提供され、パーサ・プラグイン274は、組306内の各エントリについて、それぞれの潜在的意味表現332を生成する。次に、意味表現332のそれぞれが、自動修正315のために、パーサ修正プラグイン270Bに提供される。この例については、パーサ自動修正315中に、パーサ修正プラグイン270Bは、誤りであると分かっている特定の潜在的意味表現332を改変または除去して、修正された潜在的意味表現334を生成する。たとえば、パーサ自動修正315中に、パーサ修正プラグイン270Bは、不正確なノード間パーサ・リンク(たとえば、主語ノードに誤ってリンクしている直接目的語ノード)、および、不正確なノードPOS/リンク型の組み合わせ(たとえば、動詞であるとPOSタグ付けされたノードを指す直接目的語リンク型)などを潜在的意味表現332内で検出し、修正された潜在的意味表現334に反映されるように、これらの不正確な構造を除去または改変することができる。
【0080】
議論したように、各潜在的意味表現334が、パーサ推測308中にパーサ・プラグイン274により求められた対応する信頼スコア、ならびに、POSタグ付け290中に、POSプラグイン268により各潜在的意味表現334について求められた対応する信頼スコアとともに、FSFプラグイン276に提供される。FSFプラグイン276は、先で議論したように、これらの信頼スコアを組み合わせて、各潜在的意味表現334について、それぞれの最終スコアを求める。次いで、FSFプラグイン276は、最終スコア・フィルタ動作316を実行し、この動作では、FSF閾値318未満の最終スコアを有する各潜在的意味表現334が、意味表現の最終組254に含められない。よって、最終出力は、当初の発話252を表現する意味表現の組254である。上記のように、当初の発話252が、受け取ったユーザ発話122であっても、意図-エンティティ・モデル108のサンプル発話155であっても、意味表現の最終組254が、当初の発話252の複数の再発現および形態を含むので、意味検索(意図推測)中にマッチするものを特定する可能性が高まる。さらに、意味表現の最終組254を生成する際に、当初の発話252のうち潜在的に誤りであり、実質的に冗長な形態は考慮から除かれるので、これらの形態は意味検索に組み入れられず、これにより、意味検索の効率およびNLUフレームワークの動作が改善される。
【0081】
本開示内容の技術的効果は、仮想エージェント(たとえば、チャット・エージェント)が受け取る要求などのユーザ発話から意味を抽出し、これらのユーザ発話に適宜応答することが可能なエージェント・オートメーション・フレームワークを提供することを含む。さらに、本実施形態は、所与の自然言語発話について、複数の代替的意味表現(たとえば、発話木)を検出することが可能な構造サブシステムを有するNLUフレームワークを提供する。開示を行った構造サブシステムは、発話の形態または形状のそれぞれ異なる側面を検出するMLベースの技術および規則ベースの技術の結果に、一連の改良を適用することで、これら複数の意味表現を生成する。開示を行った構造サブシステムは、意味検索中に十分考慮されるべき複数の潜在的形態導出を考慮し、誤ったまたは事実上冗長な形態導出を考慮から効果的に枝刈りすることで、自然言語要求の改善された意図推測を可能にする。したがって、開示を行った構造サブシステムは、NLUフレームワークの性能、分野固有性、および/または効率を改善する。
【0082】
先で説明した具体的実施形態は、例として示しており、これらの実施形態には、様々な改変形態および代替形態の余地があることを理解されたい。特許請求の範囲は、開示した特定の形態に限定することを意図しておらず、むしろ、本開示内容の趣旨および範囲に含まれる全ての改変形態、均等物、および代替形態を対象とすることを意図していることを更に理解されたい。
【0083】
本明細書で提示および特許請求を行う技術は、有形物と、本技術分野を実証可能に改善し、よって、抽象的、無形、または純粋に理論的ではない実際的性質の具体例とにより参照され、これらに適用される。さらに、本明細書の最後に添付された請求項が、「~する[機能]を[実行]する手段(means for [perform]ing [a function]...)」、または、「~する[機能]を[実行]するステップ(step for [perform]ing [a function] ...)」として指定された1つまたは複数の要素を含む場合、こうした要素が、米国特許法第112(f)に基づいて解釈されることを意図する。ただし、他のやり方で指定された要素を含む請求項については、こうした要素が米国特許法第112(f)に基づいては解釈されないことを意図する。