(58)【調査した分野】(Int.Cl.,DB名)
前記マッチング判断部によって、前記入力された文章とマッチングすると判断されたマッチング用文章に予め対応付けられた応答用文章を出力する応答用文章出力部を更に備える請求項1〜3の何れか一項に記載の文章マッチングシステム。
【発明を実施するための形態】
【0010】
以下、図面と共に本発明に係る文章マッチングシステムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【0011】
図1に本実施形態に係る文章マッチングシステムである自動応答システム10を示す。自動応答システム10は、端末20から文章(テキスト、文字列)を受信して、受信した文章に応じた応答を行うシステムである。例えば、自動応答システム10は、端末20との間で予め設定されたシナリオに基づく文章による対話を行う。自動応答システム10は、応答を行う際に、詳細には後述するように入力した文章と予め設定されたマッチング用文章とのマッチングを判断する。自動応答システム10は、例えば、サーバ装置によって実現される。
【0012】
端末20は、ユーザによって用いられる装置であり、例えば、携帯電話機(スマートフォンを含む)又はPC(パーソナルコンピュータ)に相当する。端末20は、通信網(例えば、移動体通信網)を介して自動応答システム10等と通信を行うことができる。端末20は、ユーザからの操作を受け付けて文章を入力し、入力した文章を自動応答システム10に送信する。また、端末20は、文章の送信に応じて自動応答システム10から送信される応答の文章を受信する。端末20は、応答の文章を表示等して出力する。
【0013】
なお、端末20から自動応答システム10に送信される文章は、ユーザから発せられた音声(発話)が音声認識されたものであってもよい。音声認識は、端末20において行われてもよいし、端末20以外の装置で行われてもよい。また、自動応答システム10から受信された応答の文章も、音声で出力されてもよい。これにより音声での自動応答を実現することができる。
【0014】
引き続いて、本実施形態に係る自動応答システム10の機能を説明する。
図1に示すように自動応答システム10は、入力部11と、マッチング判断部12と、応答用文章出力部13とを備えて構成される。
【0015】
入力部11は、文章を入力する機能部である。入力部11は、端末20から送信される文章を受信して入力する。入力部11は、入力した文章である入力文章をマッチング判断部12に出力する。なお、入力部11による文章の入力は、上記以外の態様で行われてもよい。例えば、入力部11は、端末20から送信される音声を受信して、受信した音声を音声認識して、音声認識の結果である文章を取得して入力してもよい。この場合、入力部11は、従来の任意の音声認識方法を用いて音声認識を行うことができる。
【0016】
マッチング判断部12は、入力部11によって入力された入力文章と、予め設定されたマッチング用文章とのマッチングを判断する機能部である。マッチング用文章は、複数の文字列の単位に分割された構成となっており、当該単位の少なくとも一つは、更に複数の文字列に分割された複数の候補を含んでいる。マッチング判断部12は、入力部11によって入力された文章を複数の文字列の単位に分割されたものとして、マッチングを判断する。
【0017】
自動応答システム10における自動応答は、例えば、AIMLの枠組みを用いて行われる。但し、以下に説明する点は、必ずしも従来のAIMLの枠組みには含まれていない(従来のAIMLとは相違している)。即ち、自動応答システム10には、自動応答のためのルールが予め記憶されている。当該ルールの例を
図2に示す。<category>タグと</category>タグとの間の部分に1つのルールが定義される。<pattern>タグと</pattern>タグとの間の部分に記述された文章がマッチング用文章である。
図2の例では、「私の車です」がマッチング用文章である。マッチング判断部12は、ルール毎に入力文章とマッチング用文章とのマッチングを判断する。
【0018】
<template>タグと</template>タグとの間の部分に記述された文章が、自動応答として出力される応答用文章である。
図2の例では、「いい車ですね。」が応答用文章である。このように自動応答システム10では、ルール毎にマッチング用文章と応答用文章とが対応付けられている。自動応答システム10には、複数の上記の自動応答のためのルールを記憶している。マッチング判断部12が、入力文章とマッチング用文章とがマッチングすると判断した場合には、当該マッチング用文章に対応付けられた(当該マッチング用文章と同一のルールに定義された)応答用文章が出力される。
【0019】
マッチング用文章は、一部に複数の候補を含むものであってもよい。例えば、「[色]が好き」との文章で、[色]の部分が、例えば、「烏の濡れ羽色」「ワインレッド」「オーシャンブルー」等の複数の候補を持つものをマッチング用文章としてもよい。
【0020】
また、マッチング用文章は、上述したように複数の文字列の単位に分割された構成となっている。例えば、文字列の単位は、形態素とされる。単位への分割は、従来の方法、例えば、形態素解析によって行われ得る。但し、文字列の単位は、形態素以外の任意のもの、例えば、単語としてもよい。また、複数の候補を持つ部分(上記の例では、[色]の部分)も、当該候補(グループ)全体を示す情報を保持するマッチング用文章の一つの単位である。
【0021】
マッチング用文章は、例えば、トライ木(trie木)によって表現される。
図3に本実施形態におけるマッチング用文章Tの構成の例を模式的に示す。マッチング用文章Tは、メインツリーMと、サブツリーSとを含む。メインツリーMは、複数の候補にかかわらず、マッチング用文章Tで共通の文字列である。サブツリーSは、複数の候補の部分である。
【0022】
メインツリーM及びサブツリーSの先頭には、ノード「root」が設けられている。メインツリーM及びサブツリーSはそれぞれ、文章を構成する順番に文字列の単位のノードが順番に繋げられた構成となっている。また、メインツリーMの複数の候補を持つ部分には、<group>タグと</group>タグとの間に当該候補(グループ)全体を示す記載(
図3の例では「色」)がなされたノードが設けられている。対応するサブツリーSの「root」が、当該ノードに繋げられている。サブツリーSの「root」には、複数の候補それぞれの先頭の単位のノードが繋げられている。上記の通り、複数の候補それぞれは、複数の単位に分割された構成となっている。但し、サブツリーSには、1つの単位からなる候補が含まれていてもよい。上記のようにマッチング用文章Tは、文字列の単位が繋げられたものが2段階となっている構成となっている。
【0023】
図3の例では、1つのマッチング用文章TにサブツリーSが1つだけ含まれているが、複数のサブツリーSが含まれていてもよい。即ち、1つのマッチング用文章Tに複数の候補を持つ部分が複数あってもよい。一方で、複数の候補を持たないマッチング用文章Tには、サブツリーSが含まれない。また、サブツリーSは、複数のマッチング用文章Tに共通して用いられてもよい。例えば、
図3の[色]のサブツリーSは、
図3に示すマッチング用文章のメインツリーM以外の文章、即ち、「[色]が好き」との文章以外の文章でも用いられてもよい。また、マッチング用文章Tは、トライ木以外によって表現されてもよい。
【0024】
マッチング判断部12は、自動応答システム10に予め設定されて記憶されているマッチング用文章と、入力文章とのマッチングを以下のように判断する。マッチングの判断は、マッチングの文章毎に行われる。マッチング判断部12は、入力部11から入力文章を入力する。マッチング判断部12は、入力した入力文章を複数の文字列の単位に分割する。文字列の単位は、マッチング用文章の単位と同様とされ、例えば、上述したように形態素等とされる。単位への分割は、従来の方法、例えば、形態素解析によって行われ得る。なお、入力部11によって入力された入力文章が、既に単位への分割がなされているものであった場合、マッチング判断部12による分割は行われなくてもよい。
【0025】
マッチング判断部12は、単位に分割された入力文章と、マッチング用文章とのマッチングの判断を行う。マッチング判断部12は、入力文章の各単位と、マッチング用文章の各単位とを比較して、それらが順番を含めて一致していたら、マッチングしたと判断し、それらが一致していなければマッチングしないと判断する。一致の判断は、従来のトライ木を用いたマッチングの判断と同様に行われ得る。また、一致の判断は、上記以外の任意の方法によって行われてもよい。マッチング判断部12は、入力文章とマッチングすると判断したマッチング用文章にルールにおいて対応付けられた応答用文章を応答用文章出力部13に出力する。
【0026】
サブツリーSにされる複数の候補は、上記の「色」の例のように複数の候補のみを含むsetであってもよいし、対応関係を含むmapであってもよい。mapは、例えば、key:valueとの対応関係を示すものである。mapは、例えば、国名(key)と首都名(value)との対応関係である。日本:東京、アメリカ合衆国:ワシントンDC…等がmapとされる。key(この例では国名)をサブツリーSにされる複数の候補とする。入力文章とマッチングした国名に対応する首都名を応答用文章に含めることとしてもよい。mapによって、例えば、「[国名]の首都はどこ」との入力文章に対して、「その国の首都は[首都名]です。」との、入力文章に応じた語句を含む応答用文章を出力することができる。
【0027】
上記では、サブツリーSを含むマッチング用文章Tは、1つの文章中の一部に複数の候補を含むものであった。このようなマッチング用文章Tを用いてマッチングのための比較を行う場合、複数の候補毎の(複数の)文章を用いる場合と比べて、自動応答システム10のメモリの消費量は少なくなるものの、処理負荷(オーバーヘッド)が大きくなる場合がある。そこで、例えば、メモリの消費量があまり大きくならない場合には、処理負荷を低減させるために、サブツリーSを含む1つのマッチング用文章Tを、それぞれの候補毎の複数のマッチング用文章Tとしてもよい。
【0028】
マッチング判断部12は、マッチング用文章Tに含まれる複数の候補の数、及び当該マッチング用文章に含まれる単位の数の少なくとも何れかに応じて、当該複数の候補毎のマッチング用文章Tを生成して、マッチングを判断してもよい。マッチング判断部12は、サブツリーSを含むマッチング用文章T毎にサブツリーSを用いたマッチングの判断を行うか、サブツリーSを用いないマッチングの判断を行うか(即ち、複数の候補毎の複数のマッチング用文章Tを生成するか)を判断する。例えば、マッチング判断部12は、マッチング用文章Tに含まれる複数の候補の数から、サブツリーSに含まれる候補毎のマッチング用文章Tを生成する場合のマッチング用文章Tの数を算出する。マッチング用文章Tに含まれるサブツリーSが1つであれば、サブツリーSに含まれる複数の候補の数がその数となる。マッチング用文章Tに含まれるサブツリーSが複数であれば、それぞれのサブツリーSに含まれる複数の候補の数の積がその数となる。
【0029】
マッチング判断部12は、算出したマッチング用文章Tの数と予め設定された閾値とを比較する。算出したマッチング用文章Tの数が閾値以上である場合には、マッチング判断部12は、サブツリーSを含むマッチング用文章Tを用いてマッチングの判断を行う。この場合、複数の文章とすると自動応答システム10のメモリの消費量が大きくなると考えられるためである。算出したマッチング用文章Tの数が閾値未満である場合には、マッチング判断部12は、サブツリーSに含まれる候補毎のマッチング用文章Tを生成して、生成した複数のマッチング用文章Tを用いてマッチングの判断を行う。この場合、複数の文章としても自動応答システム10のメモリの消費量がさほど大きくならないと考えられるためである。
【0030】
上記は、マッチング用文章T(のサブツリーS)に含まれる複数の候補の数に応じたものとしたが、それに替えてあるいはそれとあわせて、マッチング用文章に含まれる単位の数に応じたものとしてもよい。例えば、メインツリーM及びサブツリーSの何れか又は両方に含まれる単位の数が閾値以上であれば、サブツリーSを含むマッチング用文章Tを用いてマッチングの判断を行い、閾値未満であれば、サブツリーSに含まれる候補毎のマッチング用文章Tを生成して、生成した複数のマッチング用文章Tを用いてマッチングの判断を行ってもよい。
【0031】
サブツリーSを用いたマッチングの判断を行うか、サブツリーSを用いないマッチングの判断を行うかの判断、及びサブツリーSに含まれる候補毎のマッチング用文章Tの生成は、予め(即ち、マッチングの判断に先駆けて)行われる。例えば、マッチング用文章T又はサブツリーSが自動応答システム10に登録された時点で行われる。
【0032】
また、マッチングの判断の際にマッチングを判断するための精度の応じた判断が行われてもよい。例えば、以下のようにマッチングの判断の判断が行われてもよい。
【0033】
この場合、各マッチング用文章には、マッチングを判断するための精度であるレベルが設定されている。レベルによって、同一のマッチング用文章であっても、マッチングすると判断される文章が異なり得る。レベルは、以下に示すように、例えば、文章に含まれる語句の読みへの変換の有無、文章の正規化の有無、文章に含まれる語句の同義語への変換の有無、及び文章に含まれる語句の上位概念語への変換の有無の少なくとも何れかに応じたものである。レベルは、例えば、
図4に示すように<pattern>タグの中のlevelの部分に記述される。
図4の例では、「exact」がレベルである。レベルは、ルール毎に予め設定される。レベルとしては、例えば、「exact」、「surface」、「normalization」、「synonym」、「hypernym」の何れかが設定される。
【0034】
レベルとして「exact」が設定されているルールに対しては、マッチング判断部12は、以下のようにマッチングを判断する。マッチング判断部12は、入力文章とマッチング用文章とが文字列完全一致であるか否かを判断する。マッチング判断部12は、それらが文字列完全一致であればそれらがマッチングしたと判断し、それらが文字列完全一致でなければそれらがマッチングしないと判断する。即ち、「exact」は、文字列完全一致のマッチングである。例えば、「私の車です」とのマッチング用文章に対しては、入力文章が「私の車です」である場合のみマッチングする。
【0035】
レベルとして「surface」が設定されているルールに対しては、マッチング判断部12は、以下のようにマッチングを判断する。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれについて、文章の読みを特定する。例えば、文章中に漢字を含む語句(あるいは単語)が含まれている場合に、当該語句を読みに変換する。語句から読みへの変換については、例えば、予めマッチング判断部12に記憶された語句と読みとの対応関係を示す情報に基づいて行うことができる。マッチング判断部12は、入力文章の読みとマッチング用文章の読みとが一致するか否かを判断する。マッチング判断部12は、それらが一致していればそれらがマッチングしたと判断し、それらが一致していなければそれらがマッチングしないと判断する。即ち、「surface」は、同音異義のマッチング(読みマッチング)である。例えば、「私の車です」とのマッチング用文章に対しては、入力文章が「わたしの車です」である場合もマッチングする。
【0036】
また、入力文章とマッチング用文章との何れか一方、又は両方について、全ての語句について読みへの変換を行わずに一部の語句について読みへの変換を行ってマッチングの判断をすることとしてもよい。また、各語句について変換を行うものと、変換を行わないものとの組み合わせをマッチングの判断に用いる文章としてもよい。例えば、「烏の濡れ羽色」とのマッチング用文章に対して、「からすの濡れ羽色」「からすの濡れば色」「からすのぬれば色」…との一部の語句を読みに変換した複数のマッチング用文章を生成して、マッチングの判断に用いる文章としてもよい。
【0037】
レベルとして「normalization」が設定されているルールに対しては、マッチング判断部12は、以下のようにマッチングを判断する。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれについて、文章の正規化を行う。文章の正規化とは、文章中の表現の揺らぎを吸収して、文章が含む意味を概念化することである。異なる表現であっても、文章として同様の意味を持つのであれば、同一の文章として扱うことが可能になる。
【0038】
例えば、「I can’t find the way to the bus station.」との文章と「I can never find the way to the bus station.」との文章とは、正規化すると同一であるとされる。「can’t find」と「can never find」とは、何れも同様に否定の意味を含むため、相違が正規化によって吸収される。従って、例えば、入力文章(ユーザによって入力された文章)が上記の2つの文章の何れであっても、1つのルールで「Turn right at the second traffic light.」との返信を行うことができる。
【0039】
マッチング判断部12は、例えば、従来の文章の正規化方法を用いて、一定のルールに基づいて、文の意味に与える影響の薄い表層上の揺らぎを除去して、文意と一対一対応する記号列等の予め設定された形式に変更することで文章の正規化を行うことができる。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれの正規化後の表現が一致するか否かを判断する。マッチング判断部12は、それらが一致していればそれらがマッチングしたと判断し、それらが一致していなければそれらがマッチングしないと判断する。即ち、「normalization」は、文章正規化後のマッチングである。例えば、「私の車です」とのマッチング用文章に対しては、入力文章が「わたしの車だ」である場合もマッチングする。
【0040】
レベルとして「synonym」が設定されているルールに対しては、マッチング判断部12は、以下のようにマッチングを判断する。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれについて、文章の正規化を行う。また、マッチング判断部12は、正規化後の2つの文章の何れかに含まれる語句(あるいは単語)について同義語を特定する。同義語の特定については、例えば、予めマッチング判断部12に記憶された同義語の辞書に基づいて行うことができる。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれの正規化後の表現が一致するか否かを判断する。この際、マッチング判断部12は、語句を特定された同義語に変換した(置き換えた)場合でも、それらの表現が一致するか否かを判断する。マッチング判断部12は、それらが何れかの場合(同義語に変換しない場合、あるいは、同義語の何れかに変換した場合)で一致していればそれらがマッチングしたと判断し、それらが何れの場合でも一致していなければそれらがマッチングしないと判断する。即ち、「synonym」は、文章正規化かつ同義語展開後のマッチングである。例えば、「私の車です」とのマッチング用文章に対しては、入力文章が「わたしの自動車だ」である場合もマッチングする。この場合、「車」と「自動車」とは互いに同義語になっている。
【0041】
レベルとして「hypernym」が設定されているルールに対しては、マッチング判断部12は、以下のようにマッチングを判断する。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれについて、文章の正規化を行う。また、マッチング判断部12は、正規化後の入力文章に含まれる語句(あるいは単語)について上位概念語を特定する。上位概念語の特定については、例えば、予めマッチング判断部12に記憶された上位概念語の辞書に基づいて行うことができる。マッチング判断部12は、入力文章とマッチング用文章とのそれぞれの正規化後の表現が一致するか否かを判断する。この際、マッチング判断部12は、語句を特定された上位概念語に変換した(置き換えた)場合でも、それらの表現が一致するか否かを判断する。マッチング判断部12は、それらが何れかの場合(上位概念語に変換しない場合、あるいは、上位概念語の何れかに変換した場合)で一致していればそれらがマッチングしたと判断し、それらが何れの場合でも一致していなければそれらがマッチングしないと判断する。即ち、「hypernym」は、文章正規化かつ同義語展開後のマッチングである。例えば、「私の車です」とのマッチング用文章に対しては、入力文章が「わたしの車種Xだ」である場合もマッチングする。この場合、「車」は、「車種X」の上位概念語になっている。
【0042】
なお、「わたしの車種Xだ」とのマッチング用文章に対して、入力文章が「私の車です」である場合はマッチングしない。上述したように上位概念化を行うのは、入力文章に含まれる語句のみであるためである。これは、自動応答のルールの性質上、下位概念の語句を含むマッチング用文章に、上位概念を含む文章をマッチングさせるのは適切ではないと考えられることに基づく。
【0043】
以上が、レベルの具体例である。なお、上記に示した全てのレベルが、ルールに設定される必要はなく、上記に示した一部のレベルのみが用いられてもよい。但し、レベル毎に優先度が設定されるため、少なくとも2つのレベルが設定される。また、上記に示した例以外のレベルが設定されてもよい。
【0044】
自動応答システム10には、上記の通り、複数のルールが予め設定されて記憶されている。また、各ルールには、上記のレベルの何れかが設定されている。マッチング判断部12は、入力部11から入力文章を入力する。マッチング判断部12は、各ルールについてレベル及びレベルに応じた優先度で、入力文章とマッチング用文章とのマッチングを判断する。優先度は、レベルに応じて予め設定されて、マッチング判断部12に記憶されている。例えば、マッチングがしにくい順に高い優先度とされ、「exact」、「surface」、「normalization」、「synonym」、「hypernym」の順に優先度が高いとされる。マッチングがしにくい程、マッチングした際の応答用文章が、入力文章に適したものになると考えられるためである。
【0045】
例えば、マッチング判断部12は、設定された優先度が高い順に、入力文章とマッチング用文章とのマッチングを判断する。マッチング判断部12は、入力文章とマッチングすると判断したマッチング用文章があった時点で、マッチングの判断を終了する。あるいは、マッチング判断部12は、各ルールについて、入力文章とマッチング用文章とのマッチングを判断し、マッチングすると判断したマッチング用文章の中で最も高い優先度のものを採用することとしてもよい。
【0046】
応答用文章出力部13は、マッチング判断部12によって入力文章とマッチングすると判断されたマッチング用文章に予め対応付けられた応答用文章を出力する機能部である。応答用文章出力部13は、当該応答用文章をマッチング判断部12から入力する。応答用文章出力部13は、入力した応答用文章を端末20に送信して出力する。なお、応答用文章出力部13による応答用文章の出力は、上記以外の態様で行われてもよい。例えば、応答用文章出力部13は、音声合成によって応答用文章から音声を生成して、生成した音声を端末20に送信して出力してもよい。この場合、応答用文章出力部13は、従来の任意の音声合成方法を用いて音声合成を行うことができる。以上が、本実施形態に係る自動応答システム10の機能である。
【0047】
引き続いて、
図5のフローチャートを用いて、本実施形態に係る自動応答システム10で実行される処理(自動応答システム10が行う動作方法)を説明する。本処理は、端末20から、自動応答の対象となる文章が送信される毎に行われる。本処理では、入力部11によって、文章が受信されて入力される(S01)。続いて、マッチング判断部12によって、入力文章と自動応答用の各ルールに記述されたマッチング用文章とのマッチングが判断される。サブツリーを含むマッチング用文章については、サブツリーを用いたマッチングが行われる(S02)。続いて、マッチングすると判断されたマッチング用文章に予め対応付けられた応答用文章が、応答用文章出力部13によって端末20に送信されて出力される(S03)。以上が、本実施形態に係る自動応答システム10で実行される処理である。
【0048】
本実施形態では、一部に複数の単位に分割された複数の候補を含むマッチング用文章が用いられて、マッチングの判断が行われる。従って、当該一部が異なるだけの複数のマッチング用文章を予め用意する必要なく、マッチングの判断を行うことができる。例えば、
図3に示す例では、「烏の濡れ羽色が好き」「ワインレッドが好き」「オーシャンブルーが好き」とのマッチング用文章を用意せずに、「[色]が好き」との文章と「烏の濡れ羽色」「ワインレッド」「オーシャンブルー」との[色]の候補を用意すれば、マッチングの判断を行うことができる。よって、本実施形態によれば、マッチング用文章を数多く必要とせず、また、柔軟な文章のマッチングを行うことができる。また、一部が異なるだけの複数のマッチング用文章を用意する場合と比べて、自動応答システム10のメモリを効率的に使用することができる。
【0049】
なお、従来の単一のトライ木では、複数の単位からなる複数の候補を一部に含む文章を表現することができない。しかしながら、本実施形態のようにサブツリーを用いることで、当該文章を表現することができる。従って、当該文章をマッチング用文章としてマッチングの判断を行うことができる。
【0050】
また、上述したようにマッチング用文章に含まれる複数の候補の数等に応じて、複数の候補毎のマッチング用文章を生成することとしてもよい。この構成によれば、自動応答システム10のメモリの消費量及び処理負荷等を考慮した、適切なマッチングの判断を行うことができる。但し、複数の候補毎のマッチング用文章の生成は行われてなくてもよい。
【0051】
また、上述したようにマッチング用文章毎に設定したレベルでマッチングの判断が行われることとしてもよい。例えば、応答用文章の観点から、広い範囲の入力文章とマッチング用文章とがマッチングすることが望ましい場合、そのようなレベルを設定することができる。そのようなレベルを設定することで、広い範囲の入力文章に応じた多くのマッチング用文章を用意する必要がなくなる。具体的には、文章の表現が相違していたり、一部の語句を上位概念化等したりしても、入力文章とマッチング用文章とをマッチングさせたい場合には、そのようなレベルを設定することとしてもよい。上述したように「私の車です」とのマッチング用文章に対して、広い範囲の入力文章とマッチングするようなレベル(例えば、「synonym」又は「hypernym」)を設定することで、「わたしの自動車だ」「わたしの車種Xだ」といった個々のマッチング用文章を用意する必要がなくなる。
【0052】
一方で、広い範囲の入力文章とマッチング用文章とがマッチングすることが望ましくない場合、そのようなレベルを設定することで適切なマッチングを行わせることができる。例えば、マッチング用文章に特定の色を示す語句(例えば、「赤」、「黒」)を含み、応答用文章の観点から、当該色が重要である場合には、語句の置き換え等を行わないレベル(例えば、文字列完全一致の「exact」)を設定することとすればよい。例えば、マッチング用文章が「赤」であり、応答用文章も「赤」である点が重要であるものである場合(例えば、「赤は好きです」との応答用文章)、入力文章が「黒」であればマッチングしないことが望ましい。
【0053】
上記のように複数のレベルを設定することで、入力文章が複数のマッチング用文章とマッチングしてしまうおそれもある。しかしながら、本実施形態では、レベルに応じた優先度でマッチングの判断が行われるため、入力文章を適切なマッチング用文章にマッチングさせることができる。従って、本実施形態によれば、マッチング用文章を数多く必要とせず、また、柔軟な文章のマッチングを行うことができる。また、これによって、自動応答システム10の処理負荷を軽減することができると共にメモリ等のハードウェア資源を効率的に利用することができる。但し、レベルを考慮したマッチングの判断は行われてなくてもよい。
【0054】
また、マッチングの判断のためのレベルを、上述したようなものとすることで、確実に上述した効果を奏させることができる。
【0055】
また、本実施形態のようにマッチングの結果に応じた応答用文章を出力する構成としてもよい。この構成によれば、本実施形態のような自動応答を簡易かつ適切に行わせることができる。但し、文章のマッチングは、必ずしも自動応答のために行われる必要はなく、任意の目的のために行われてもよい。例えば、文章のマッチングは、文章の検索のためのものであってもよい。
【0056】
なお、本実施形態では、文章のマッチングに基づいて自動応答をすることとしたが、それ以外に基づいて自動応答を行うこととしてもよい。例えば、入力文章が、特定の正規表現にマッチングするか否かに応じて自動応答をすることとしてもよい。あるいは、入力文章に基づいて、実行する機能(タスク)を判断して(意図解釈して)、その機能に応じた応答を行うこととしてもよい。例えば、「明日の天気教えて」又は「明日晴れるかな」といった入力文章から、天気検索の機能を実行すると判断して、その機能に応じた応答を行うこととしてもよい。
【0057】
マッチング判断部12は、入力文章とマッチング用文章とのマッチングの判断を行う際に、自動応答システム10のストレージ等に記憶されているマッチング用文章を自動応答システム10が備えるメインメモリに読み出して当該マッチングの判断を行う。メインメモリは、自動応答システム10において情報に対する演算処理が行われる際に演算処理対象となる情報が読み出される(展開される)RAM等の作業用のメモリである。マッチング用文章毎に当該マッチングの判断を行うこととすると、マッチング用文章毎にメインメモリに読み出される必要がある。個々のマッチング用文章に多くの候補が含まれており、サブツリーの部分のデータ量が大きくなると、それに応じてマッチング用文章の読み出しに用いられるメインメモリの容量も大きくなる。マッチング用文章によって消費されるメインメモリ容量が大きくなると、それに応じてマッチングの判断等の演算処理の速度が低下する。そこで、マッチング判断部12は、入力文章とマッチング用文章とのマッチングの判断を行う際に、以下のようにマッチング用文章をメインメモリに読み出すようにしてもよい。
【0058】
即ち、マッチング判断部12は、マッチング用文章の複数の候補を構成する複数の文字列のうちの一部の文字列をメインメモリに読み出して、入力文章を構成する文字列と当該一部の文字列とのマッチングを判断して、当該判断に応じた候補を構成する当該一部の文字列以外の文字列を当該メインメモリに読み出して、入力文章を構成する文字列と当該一部の文字列以外の文字列とのマッチングを判断する。具体的には、マッチング判断部12は、以下のようにマッチング用文章をメインメモリに読み出して入力文章とマッチング用文章とのマッチングの判断を行う。
【0059】
マッチング判断部12は、マッチングの判断の際、判断対象となるマッチング用文章に含まれる複数の候補、即ち、サブツリーを構成する複数の候補のうち、最初の文字列の単位のみを読み出す。
図7(a)に示す、マッチング用文章に含まれる複数の候補である[色]の候補として「烏の濡れ羽色」「ライトブルー」「ライトイエロー」「ワインレッド」「モスグリーン」等がある場合を例に説明する。これらのサブツリーを構成する複数の候補は、マッチング用文章に対応付けられて、自動応答システム10のストレージ等に記憶されている。マッチング判断部12は、入力文章とマッチング用文章とのマッチングの判断を行う際に、これらの候補の最初の文字列の単位、例えば、最初の形態素を当該ストレージ等から抽出してメインメモリに読み出す。
図7に示す例では、
図7(b)に示す「烏」「ライト」「ライト」「ワイン」「モス」等の形態素がメインメモリに読み出される。
【0060】
マッチング判断部12は、入力文章のうち、サブツリーに対応する部分の最初の文字列の単位、例えば、当該部分の最初の形態素とメインメモリに読み出した候補それぞれの形態素とのマッチングを判断する。当該マッチングは、上述した実施形態と同様に判断される。例えば、入力文章が「ライトイエローが好き」というものであり、入力文章とマッチング用文章全体との関係から「ライトイエロー」の部分がサブツリーに対応する部分であった場合、「ライトイエロー」の最初の形態素である「ライト」とメインメモリに読み出された候補それぞれの形態素とのマッチングが判断される。この場合、
図7に示す例では、
図7(c)に示すようにメインメモリに読み出された候補それぞれの形態素のうち、「ライト」がマッチングしたと判断され、それ以外の形態素(「烏」「ワイン」「モス」等)がマッチングしないと判断される。なお、上述した実施形態と同様にマッチング文章にレベルが設定されている場合には、設定したレベルに応じたマッチングの判断が行われる。例えば、文章(形態素)の読みに基づいてマッチングの判断が行われる。
【0061】
マッチング判断部12は、上記のマッチングの判断によってマッチングしたと判断された形態素に係る候補のみの全ての文字列を、ストレージ等から抽出してメインメモリに読み出す。即ち、マッチング判断部12は、フィルタされた候補の全ての文字列のみをメインメモリに読み出す。
図7に示す例では、
図7(d)に示すように「ライトブルー」「ライトイエロー」の文字列が抽出されてメインメモリに読み出される。なお、当該候補の文字列のうち最初の形態素は既にメインメモリに読み出されているので、それ以外の形態素が新たにメインメモリに読み出されてもよい。また、
図8に、この場合にメインメモリに読み出されるマッチング用文章Tの構成を模式的に示す。この例は、マッチング用文章Tが「[色]が好き」との文章で[色]の部分に複数の候補を含むものである。上記の通り、サブツリーSを構成する候補(枝)は、「ライト」との形態素から始まるもの(枝)のみとなる。この場合、複数の候補として、自動応答システム10のストレージ等には、「烏の濡れ羽色」「ワインレッド」「モスグリーン」も含まれているが、先頭の形態素を除いて、これらは上記のフィルタでの除外によってメインメモリには読み出されない。フィルタで除外された候補は、入力文章とマッチングする可能性がないためである。マッチング判断部12は、上記のようにフィルタされた候補のみをメインメモリに読み出した後は、上述した実施形態と同様にマッチング等の処理を行う。即ち、マッチング判断部12は、メインメモリに読み出した、サブツリーに対応する部分における最初の文字列の単位以外についても入力文章とのマッチングを判断する。
【0062】
上述したようにマッチング用文章の複数の候補を段階的かつ選択的にメインメモリに読み出すようにすれば、メインメモリに読み出すデータ量を小さくする、即ち、省メモリを実現することができる。また、これによって演算処理の速度低下を防止することができる。
【0063】
なお、上述した例では、複数の候補について、最初(1段階目)のメインメモリへの読み出し、即ち、最初(1段階目)の入力文章との比較は、候補の最初の文字列の単位、例えば、最初の形態素を対象としていた。しかしながら、必ずしも、候補の最初の文字列の単位のみである必要はなく、候補の最初から予め設定された数の文字列の単位を用いてもよい。複数の単位を用いることで、最初のメインメモリへの読み出されるデータ量は増加するが、候補の全体をメインメモリへの読み出す際のデータ量を減少させることができる。
【0064】
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
【0065】
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知(broadcasting)、通知(notifying)、通信(communicating)、転送(forwarding)、構成(configuring)、再構成(reconfiguring)、割り当て(allocating、mapping)、割り振り(assigning)などがあるが、これらに限られない。たとえば、送信を機能させる機能ブロック(構成部)は、送信部(transmitting unit)や送信機(transmitter)と呼称される。いずれも、上述したとおり、実現方法は特に限定されない。
【0066】
例えば、本開示の一実施の形態における自動応答システム10は、本開示の方法の処理を行うコンピュータとして機能してもよい。
図6は、本開示の一実施の形態に係る自動応答システム10のハードウェア構成の一例を示す図である。上述の自動応答システム10は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。自動応答システム10のハードウェア構成は、図に示した各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【0067】
自動応答システム10における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることによって、プロセッサ1001が演算を行い、通信装置1004による通信を制御したり、メモリ1002及びストレージ1003におけるデータの読み出し及び書き込みの少なくとも一方を制御したりすることによって実現される。
【0068】
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)によって構成されてもよい。例えば、自動応答システム10における各機能は、プロセッサ1001によって実現されてもよい。
【0069】
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、データなどを、ストレージ1003及び通信装置1004の少なくとも一方からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、自動応答システム10における各機能は、メモリ1002に格納され、プロセッサ1001において動作する制御プログラムによって実現されてもよい。上述の各種処理は、1つのプロセッサ1001によって実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。
【0070】
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つによって構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本開示の一実施の形態に係る方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
【0071】
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及びストレージ1003の少なくとも一方を含むデータベース、サーバその他の適切な媒体であってもよい。
【0072】
通信装置1004は、有線ネットワーク及び無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。通信装置1004は、例えば周波数分割複信(FDD:Frequency Division Duplex)及び時分割複信(TDD:Time Division Duplex)の少なくとも一方を実現するために、高周波スイッチ、デュプレクサ、フィルタ、周波数シンセサイザなどを含んで構成されてもよい。例えば、上述の自動応答システム10における各機能は、通信装置1004によって実現されてもよい。
【0073】
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
【0074】
また、プロセッサ1001、メモリ1002などの各装置は、情報を通信するためのバス1007によって接続される。バス1007は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。
【0075】
また、自動応答システム10は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つを用いて実装されてもよい。
【0076】
情報の通知は、本開示において説明した態様/実施形態に限られず、他の方法を用いて行われてもよい。例えば、情報の通知は、物理レイヤシグナリング(例えば、DCI(Downlink Control Information)、UCI(Uplink Control Information))、上位レイヤシグナリング(例えば、RRC(Radio Resource Control)シグナリング、MAC(Medium Access Control)シグナリング、報知情報(MIB(Master Information Block)、SIB(System Information Block)))、その他の信号又はこれらの組み合わせによって実施されてもよい。また、RRCシグナリングは、RRCメッセージと呼ばれてもよく、例えば、RRC接続セットアップ(RRC Connection Setup)メッセージ、RRC接続再構成(RRC Connection Reconfiguration)メッセージなどであってもよい。
【0077】
本開示において説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【0078】
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【0079】
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
【0080】
本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
【0081】
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されるものではないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本開示の記載は、例示説明を目的とするものであり、本開示に対して何ら制限的な意味を有するものではない。
【0082】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【0083】
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)及び無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
【0084】
本開示において説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【0085】
なお、本開示において説明した用語及び本開示の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。例えば、チャネル及びシンボルの少なくとも一方は信号(シグナリング)であってもよい。また、信号はメッセージであってもよい。また、コンポーネントキャリア(CC:Component Carrier)は、キャリア周波数、セル、周波数キャリアなどと呼ばれてもよい。
【0086】
本開示において使用する「システム」及び「ネットワーク」という用語は、互換的に使用される。
【0087】
また、本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。例えば、無線リソースはインデックスによって指示されるものであってもよい。
【0088】
上述したパラメータに使用する名称はいかなる点においても限定的な名称ではない。さらに、これらのパラメータを使用する数式等は、本開示で明示的に開示したものと異なる場合もある。様々なチャネル(例えば、PUCCH、PDCCHなど)及び情報要素は、あらゆる好適な名称によって識別できるので、これらの様々なチャネル及び情報要素に割り当てている様々な名称は、いかなる点においても限定的な名称ではない。
【0089】
本開示においては、「移動局(MS:Mobile Station)」、「ユーザ端末(user terminal)」、「ユーザ装置(UE:User Equipment)」、「端末」などの用語は、互換的に使用され得る。
【0090】
移動局は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、又はいくつかの他の適切な用語で呼ばれる場合もある。
【0091】
移動局は、送信装置、受信装置、通信装置などと呼ばれてもよい。なお、移動局は、移動体に搭載されたデバイス、移動体自体などであってもよい。当該移動体は、乗り物(例えば、車、飛行機など)であってもよいし、無人で動く移動体(例えば、ドローン、自動運転車など)であってもよいし、ロボット(有人型又は無人型)であってもよい。なお、移動局は、必ずしも通信動作時に移動しない装置も含む。例えば、移動局は、センサなどのIoT(Internet of Things)機器であってもよい。
【0092】
本開示で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up、search、inquiry)(例えば、テーブル、データベース又は別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断(決定)」は、「想定する(assuming)」、「期待する(expecting)」、「みなす(considering)」などで読み替えられてもよい。
【0093】
「接続された(connected)」、「結合された(coupled)」という用語、又はこれらのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的なあらゆる接続又は結合を意味し、互いに「接続」又は「結合」された2つの要素間に1又はそれ以上の中間要素が存在することを含むことができる。要素間の結合又は接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」で読み替えられてもよい。本開示で使用する場合、2つの要素は、1又はそれ以上の電線、ケーブル及びプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光(可視及び不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」又は「結合」されると考えることができる。
【0094】
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【0095】
本開示において使用する「第1の」、「第2の」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定しない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本開示において使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみが採用され得ること、又は何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
【0096】
本開示において、「含む(include)」、「含んでいる(including)」及びそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
【0097】
本開示において、例えば、英語でのa, an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
【0098】
本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。
【解決手段】 文章マッチングシステムである自動応答システム10は、文章を入力する入力部11と、入力された文章と、予め設定されたマッチング用文章とのマッチングを判断するマッチング判断部12とを備える。マッチング用文章は、複数の文字列の単位に分割された構成となっており、当該単位の少なくとも一つは、更に複数の文字列に分割された複数の候補を含んでいる。マッチング判断部12は、入力された文章を複数の文字列の単位に分割されたものとして、マッチングを判断する。