(58)【調査した分野】(Int.Cl.,DB名)
前記対象データ取得部は、前記対象キーワードの組の共起数、前記対象キーワードの組におけるキーワード同士の相関、および、前記対象キーワードに対応する事象の増加または減少のうちの少なくとも1つを示す前記対象統計量を取得する請求項3に記載の生成装置。
前記キーワード記憶部に記憶されたキーワードおよび前記テンプレート記憶部に記憶されたテンプレートの少なくとも一方に基づいて、新たにテキストを分解して得られたキーワードおよびテンプレートの表記ゆれを修正する修正部を更に備える請求項6に記載の生成装置。
前記修正部は、新たにテキストを分解して得られたキーワードおよび前記キーワード記憶部に記憶されたキーワードの間の編集距離が予め定められた基準距離未満の場合にこれらのキーワードが同一であると判定する請求項7に記載の生成装置。
前記修正部は、新たにテキストを分解して得られたテンプレートおよび前記テンプレート記憶部に記憶されたテンプレートの間の編集距離が予め定められた基準距離未満の場合にこれらのテンプレートが同一であると判定する請求項7に記載の生成装置。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
図1は、本実施形態に係る生成装置100の構成例を示す。生成装置100は、外部から取得したグラフおよび表形式等の統計情報である対象データに基づいて、当該対象データの特徴等を表現する文章を自動的に作成する。なお、本実施形態において、対象データを表現する文章を、対象テキストとする。生成装置100は、テキスト取得部110と、分解処理部120と、学習処理部130と、記憶部140と、対象データ取得部210と、特定部220と、選択部230と、生成部240と、を備える。
【0009】
テキスト取得部110は、複数のテキストを取得する。ここで、複数のテキストは、過去にレポートされた統計情報の特徴等を表現した文章である。複数のテキストは、専門家および/または熟練者等が作成した、製品別の問い合わせおよび苦情件数のグラフを評価および説明した文章、月毎の製品受注および販売の状況を示すグラフを説明した文章、各地の気象データの分布から現在および/または今後の気象情報を説明した文章、並びに、株価および為替相場等の時間に対する変動のグラフを説明および今後を予測した文章等でよい。テキスト取得部110は、例えば、「お客様は、プリンタA01のインクの品番が分からない」、および「3ヶ月前に比べてスキャナB02の受注が向上した」等のテキストを取得する。
【0010】
テキスト取得部110は、経営分析ツールおよびマーケティングツール等を用いてユーザが作成した複数のテキストを取得してよい。テキスト取得部110は、例えば、外部のデータベース等の記憶装置に接続され、複数のテキストを取得する。また、テキスト取得部110は、ユーザから入力される複数のテキストを取得してもよい。テキスト取得部110は、生成装置100と一体となって動作してよい。これに代えて、テキスト取得部110は、生成装置100本体と分離されて動作してよく、この場合、生成装置100本体とはネットワーク等を介して接続されてよい。
【0011】
分解処理部120は、複数のテキストのそれぞれをキーワードおよびテンプレートに分解する。分解処理部120は、複数のテキストのそれぞれをキーワードの組およびテンプレートに分解してよい。分解処理部120は、テキスト取得部110に接続され、予め記憶された複数のキーワードの一覧等に基づき、取得したテキストから1または複数のキーワードを抽出してよい。また、分解処理部120は、複数のキーワードの一覧等に基づき、抽出したキーワード毎に対応するカテゴリを取得する。
【0012】
また、分解処理部120は、予め記憶された複数のテンプレートの一覧等に基づき、取得したテキストからテンプレートを抽出してよい。ここで、分解処理部120は、テキストから抽出したキーワードの位置に、当該キーワードに対応するカテゴリを当てはめた文章をテンプレートとしてよい。
【0013】
分解処理部120は、言語処理を用いて、テキストを1または複数のキーワードおよびテンプレートに分解してもよい。また、分解処理部120は、キーワードの一覧等に存在しないキーワード、およびテンプレートの一覧等に存在しないテンプレートを、言語処理等によって分解してもよい。この場合、分解処理部120は、分解したキーワードおよび/またはテンプレートを対応する一覧に加えてよい。
【0014】
学習処理部130は、キーワードのカテゴリに基づいてテンプレートを選択する選択モデルを学習する。学習処理部130は、分解処理部120に接続され、複数のテキストからそれぞれ分解された複数のキーワードおよび複数のテンプレートを取得する。学習処理部130は、一のテキストに含まれるキーワードに対応するカテゴリに応じて、当該一のテキストから分解されたテンプレートが選択されるように選択モデルを学習する。学習処理部130は、キーワードのカテゴリおよびキーワードに対応する事象の統計量に基づいて、テンプレートを選択する選択モデルを学習してよい。
【0015】
また、学習処理部130は、分解処理部120がテキストをキーワードの組およびテンプレートに分解した場合、当該キーワードの組に対応するカテゴリの組および当該キーワードの組に対応する事象の統計量に基づいて、テンプレートを選択する選択モデルを学習する。学習処理部130の学習については後述する。
【0016】
記憶部140は、学習処理部130に接続され、学習処理部130が学習した選択モデルを受けとって記憶する。また、記憶部140は、学習処理部130が学習する過程における中間データおよび算出結果等をそれぞれ記憶してもよい。また、記憶部140は、生成装置100内の各部の要求に応じて、記憶したデータを要求元に供給してよい。記憶部140は、キーワード記憶部142と、テンプレート記憶部144とを有してよい。記憶部140は、生成装置100本体に設けられてよく、これに代えて、ネットワークに接続されたデータベース等であってもよい。
【0017】
キーワード記憶部142は、複数のカテゴリのそれぞれに対応して、当該カテゴリに属するキーワードを記憶する。キーワード記憶部142は、予め定められたキーワードを記憶してよく、分解処理部120に接続され、分解処理部120が分解したキーワードを記憶してもよい。キーワード記憶部142は、分解処理部120が参照するキーワードの一覧であってよい。キーワード記憶部142は、複数のキーワードを対応するカテゴリと共に記憶するキーワード辞書および/またはカテゴリ辞書でよい。
【0018】
テンプレート記憶部144は、複数のテキストを分解して得られたテンプレートを記憶する。テンプレート記憶部144は、予め定められたテンプレートを記憶してよく、分解処理部120に接続され、分解処理部120が分解したテンプレートを記憶してもよい。テンプレート記憶部144は、分解処理部120が参照するテンプレートの一覧であってよい。テンプレート記憶部144は、複数のテンプレートを記憶するテンプレート辞書でよい。
【0019】
対象データ取得部210は、対象データを取得する。ここで、対象データは、グラフおよび表形式等の統計情報である。また、統計情報は、1または複数のキーワード等を有し、当該キーワードには、対象データを表現する対象キーワードが含まれる。即ち、統計情報は、対象キーワードの候補となるキーワードを有する。また、対象データ取得部210は、キーワードに対応する事象の統計量を取得してもよい。即ち、対象データ取得部210は、対象データにおける対象キーワードに対応する事象の統計量である対象統計量を取得してよい。
【0020】
対象データ取得部210は、経営分析ツールおよびマーケティングツール等に接続され、当該ツール等が出力するレポートを作成すべき統計情報を取得してよい。また、対象データ取得部210は、外部のデータベース等の記憶装置に接続され、統計情報を取得してもよい。また、対象データ取得部210は、ユーザから入力される統計情報を取得してもよい。
【0021】
特定部220は、対象データを表現する対象キーワードを特定する。特定部220は、対象データ取得部210に接続され、統計情報が有するキーワードを対象キーワードとする。特定部220は、統計情報が複数のキーワードを有する場合、対象キーワードの組を特定してよい。この場合、特定部220は、対象キーワードとするべきキーワードの複数の組み合わせを特定してもよい。
【0022】
選択部230は、記憶部140および特定部220に接続され、学習処理部130が学習した選択モデルを用い、特定部220が特定した対象キーワードのカテゴリに基づいて、対象データの表現に用いる対象テンプレートを選択する。選択部230は、対象キーワードのカテゴリおよび対象統計量に基づいて対象テンプレートを選択してよい。また、選択部230は、特定部220が対象キーワードの組を特定した場合、対象キーワードの組に対応するカテゴリの組および対象統計量に基づいて当該カテゴリの組を有する対象テンプレートを選択してよい。
【0023】
生成部240は、選択部230に接続され、対象テンプレートおよび対象キーワードに基づいて対象データを表現する対象テキストを生成する。生成部240は、一例として、対象テンプレートが有するカテゴリに対応する対象キーワードを当該対象テンプレートに当てはめ、対象テキストを生成する。また、生成部240は、特定部220が対象キーワードの組を特定した場合、対象キーワードの組および対象テンプレートに基づいて、対象テキストを生成する。生成部240は、一例として、対象テンプレートが有するカテゴリの組に、それぞれ対応する対象キーワードをそれぞれ当てはめて対象テキストを生成する。
【0024】
以上の本実施形態の生成装置100は、統計情報等に基づいて作成された複数のテキストを取得し、それぞれのテキストが有するキーワードに基づき、当該テキストが作成されるように、選択モデルを学習する。そして、生成装置100は、対象データが有するキーワードに基づき、学習した選択モデルを用いて、対象データを表現する対象テキストを生成する。生成装置100の動作について、
図2を用いて説明する。
【0025】
図2は、本実施形態に係る生成装置100の動作フローを示す。本実施形態において、生成装置100は、S310からS380の処理を実行することにより、選択モデルを学習して、対象データを表現する対象テキストを生成する。本実施形態において、生成装置100が製品別の問い合わせ件数の統計情報を表現したテキストを生成する例を説明する。
【0026】
まず、テキスト取得部110は、複数のテキストを取得する(S310)。テキスト取得部110は、例えば、第1テキストとして「Do not know the part # of the ink for printer A01」(プリンタA01のインクの品番が分からない)、第2テキストとして「LED bulb L2 went out in a month」(電球L2が1ヶ月で切れる)、および第3テキストとして「The calls for cancellation are increasing」(解約方法の問い合わせが増えている)等の過去に作成されたテキストを取得する。
【0027】
次に、分解処理部120は、複数のテキストのそれぞれをキーワードおよびテンプレートに分解する(S320)。分解処理部120は、例えば、キーワード記憶部142にカテゴリ毎に記憶されたキーワード辞書を用いて、取得したテキストからキーワードを抽出する。
【0028】
ここで、キーワード記憶部142は、一例として、「Product」(商品)カテゴリに「printer A01」および「LED bulb L2」等のキーワードを、「Contract」(契約)カテゴリに「cancellation」等のキーワードを、「Question for a component」(部品...不明)カテゴリに「do not know ... ink」等のキーワードを、「Duration of service」(使用期間)カテゴリに「in a month」等のキーワードを、「Problem」(不具合)カテゴリに「went out」等のキーワードを、それぞれ記憶する。なお、Productカテゴリを第1カテゴリ、Contractカテゴリを第2カテゴリ、Question for a componentカテゴリを第3カテゴリ、Duration of serviceカテゴリを第4カテゴリ、Problemカテゴリを第5カテゴリとする。
【0029】
この場合、分解処理部120は、第1テキストから「printer A01」および「do not know ... ink」を、キーワードとして抽出する。同様に、分解処理部120は、第2テキストから「LED bulb L2」、「went out」、および「in a month」を、第3テキストから「cancellation」を、それぞれキーワードとして抽出する。
【0030】
このように、分解処理部120は、複数のテキストのそれぞれからキーワード記憶部142に記憶されたキーワードを検出する。そして、分解処理部120は、それぞれのテキストにおけるキーワード部分以外に基づきテンプレートを決定する。例えば、分解処理部120は、それぞれのテキストから抽出したキーワードの位置に、当該キーワードに対応するカテゴリを当てはめたテキストをテンプレートとする。即ち、分解処理部120は、それぞれのテキストにおいて、キーワード辞書に含まれるキーワードをサーチする。そして、キーワードがヒットした場合には、テキストにおける当該キーワードの部分を対応するカテゴリに置換する。
【0031】
分解処理部120は、一例として、第1テキストに基づき、「[Y] the part # of the [Y] for [X]」([X]はProductカテゴリ、[Y]はQuestion for a componentカテゴリ)を第1テンプレートとする。分解処理部120は、同様に、第2および第3テキストに基づき、「[X] [Z] [Y]」([X]はProductカテゴリ、[Y]はDuration of serviceカテゴリ、[Y]はProblemカテゴリ)を、「The calls for [X] are increasing」([X]はProductカテゴリ)を、それぞれ第2および第3テンプレートとする。
【0032】
このようにして、分解処理部120は、取得した複数のテキストをキーワードとテンプレートにそれぞれ分解する。なお、分解処理部120は、分解したテンプレートをテンプレート記憶部144に記憶させてよい。
【0033】
以上の説明において、分解処理部120は、テキスト中のキーワードを対応するカテゴリに置き換えることで、テンプレートに分解することを説明した。これに代えて、分解処理部120は、テンプレート記憶部144に記憶されたテンプレート辞書を用いて、取得したテキストからテンプレートに分解してもよい。
【0034】
テンプレート記憶部144は、例えば、「[Y] the part # of the [Y] for [X]」、「[X] [Z] [Y]」、および「The calls for [X] are increasing」等をテンプレート辞書に記憶する。分解処理部120は、抽出したキーワードをテキストから除去した残りのテキストと、テンプレート記憶部144に記憶されたテンプレートとをマッチングさせて得られるテンプレートを、当該テキストのテンプレートとして分解してよい。
【0035】
これに代えて、分解処理部120は、キーワードおよびテンプレートの分解処理を、既知の言語処理等で実行してもよい。例えば、分解処理部120は、自然言語処理により、形態素解析を実行して単語の区切りを認識し、構文解析を実行してテキストの構造を認識する。その上で、分解処理部120は、名詞等の予め定められた品詞を辞書で検索し、ヒットした場合は対応するカテゴリに置き換える。この場合、分解処理部120は、分解したキーワード、キーワードに対応するカテゴリ、および/またはテンプレートの情報を、対応するキーワード記憶部142またはテンプレート記憶部144に記憶してよい。
【0036】
次に、学習処理部130は、キーワードのカテゴリに基づいてテンプレートを選択する選択モデルを学習する(S330)。学習処理部130は、一のテキストに含まれる1または複数のキーワードに対応する1または複数のカテゴリに応じて、当該一のテキストから分解されたテンプレートが選択されるように選択モデルを学習する。
【0037】
また、学習処理部130は、1または複数のキーワードに対応する事象の統計量に基づいて、テンプレートを選択する選択モデルを学習してよい。この場合、テキスト取得部110は、複数のテキストに加えて、作成された複数のテキストの根拠となる統計情報である、1または複数のキーワードに対応する事象の統計量を取得する。
【0038】
図3は、本実施形態に係るテキスト取得部110が取得する事象の統計量の一例を示す。
図3は、一例として、横軸方向にQuestion for a componentカテゴリのキーワード「Where is ... power button」(...の電源ボタンの位置が不明)、「Do not know ... ink」、および「How to charge ... battery」(...のバッテリの充電方法)等を示す。また、
図3は、一例として、縦軸方向にProductカテゴリのキーワード「Printer A01」、「Printer A02」、および「Note PC P01」等を示す。
【0039】
また、
図3に示すそれぞれの数字は、共起数を示し、括弧内の数字は相関値を示す。
図3は、例えば、製品別の問い合わせにおいて、キーワード「Printer A01」および「Do not know ... ink」が共起された回数が35回、相関値が20であることを示す。また、例えば、製品別の問い合わせにおいて、キーワード「Note PC P01」および「How to charge ... battery」が共起された回数が128回、相関値が2.3であることを示す。
【0040】
ここで、「共起する」とは、当該キーワード(「Printer A01」および「Where is ... power button」)が1つの問い合わせ、評価、および現象の説明等を表現するテキスト内に共に出現することを意味する。学習処理部130は、このような共起数を用いることにより、テキストの中で出現しやすいキーワードの組み合わせをテンプレートに対応させて学習することができる。また、相関値は、製品毎の問い合わせの件数に対して、当該キーワードが共起された件数の率を示す。学習処理部130は、このような相関値を用いることにより、テキストの中で相関の高いキーワードの組み合わせをテンプレートに対応させて学習することができる。
【0041】
ここで、キーワード「Printer A01」および「Do not know ... ink」は、共起数および相関値が、他と比べて共に高い値を示すことがわかる。したがって、学習処理部130は、当該キーワードに対応するカテゴリを含むテンプレートにおいて、当該キーワードがより出現しやすいキーワードとして学習することができる。
【0042】
その一方で、キーワード「Note PC P01」および「How to charge ... battery」は、他と比べて共起数が高いものの、相関値はそれほど高くないことが分かる。即ち、「Note PC P01」の問い合わせにおいて、「How to charge ... battery」が出現した数は128ではあるが、他の問い合わせは128に比べてより大きい数であることがわかる。したがって、学習処理部130は、共起数および相関を用いることで、キーワードがより出現しやすいキーワードか否かをより正確に学習することができる。
【0043】
また、テキスト取得部110は、キーワードの出現数の増加または減少(時系列の変化)等を示す統計量を更に取得してもよい。これにより、学習処理部130は、当該キーワードに対応する事象が実際に増加しているか否かを学習することができる。
【0044】
このように、テキスト取得部110は、キーワードの組の共起数、キーワード同士の相関、およびキーワードに対応する事象の増加または減少等を示す統計量を取得する。そして、学習処理部130は、当該統計量に基づき、目的変数および説明変数を生成し、説明変数に対して対応する目的変数が得られるような選択モデルを学習する。ここで、説明変数は、キーワードの組み合わせに応じて生成され、目的変数は対応するテンプレートに応じて生成されてよい。
【0045】
学習処理部130は、例えば、テンプレートが有するカテゴリの最大値nと、カテゴリの種類kと、用いる統計量の種類mと、に応じて、説明変数の次元をn×k+mとする。本実施例において、学習処理部130が、n=3、k=5、およびm=3に応じて、次元数18の説明変数を生成する例を説明する。
【0046】
学習処理部130は、一例として、要素数18の列ベクトルを説明変数として用いる。この場合、学習処理部130は、1番目から5番目の要素を、第1カテゴリから第5カテゴリにそれぞれ対応させ、テンプレートの[X]に位置するカテゴリに応じて1または0としてよい。例えば、学習処理部130は、[X]に位置するカテゴリが第1カテゴリの場合、1番目から5番目の要素を[1,0,0,0,0]とする。
【0047】
同様に、学習処理部130は、6番目から10番目の要素をテンプレートの[Y]に位置するカテゴリに対応させ、11番目から15番目の要素をテンプレートの[Z]に位置するカテゴリに対応させる。例えば、学習処理部130は、[Y]に位置するカテゴリが第3カテゴリの場合、6番目から10番目の要素を[0,0,1,0,0]とし、[Z]に位置するカテゴリがない場合、11番目から15番目の要素を全て0とする。
【0048】
また、学習処理部130は、例えば、16番目の要素を共起数の値とし、17番目の要素を相関の値とし、18番目の要素を事象の時系列の変化の値とする。学習処理部130は、一例として、キーワード「Printer A01」および「Do not know ... ink」に対して、説明関数の16番目から18番目の要素の値を、[35,20,2.3]としてよい。
【0049】
学習処理部130は、一例として、第1テキストから分解されたキーワードおよび第1テンプレートに基づき、第1テンプレートの[X]に配置されるべきカテゴリが「printer A01」に対応する第1カテゴリであり、[Y]に配置されるべきカテゴリが「do not know ... ink」に対応する第3カテゴリであり、[Z]に配置されるべきカテゴリがないとする。また、学習処理部130は、第1テキストから分解されたキーワード「printer A01」および「do not know ... ink」に対応する統計量(共起数、相関、時系列の変化)の値として、順に35,20,2.3を取得する。これによって、学習処理部130は、第1テキストに応じた第1説明関数の1番目から18番目の要素を、順に、[1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,35,20,2.3]とする。
【0050】
そして、学習処理部130は、第1説明関数に対応して、第1テンプレートを示す第1目的関数を生成する。学習処理部130は、例えば、テンプレートの数以上の要素を持つ列ベクトルを目的関数とする。学習処理部130は、一例として、要素数18の列ベクトルを目的変数として用いる。この場合、学習処理部130は、1番目から18番目の要素を、第1テンプレートから第18テンプレートにそれぞれ対応させ、テンプレートに応じて1または0としてよい。例えば、学習処理部130は、第1テンプレートを示す目的変数の場合、1番目の要素を1とし、他の要素を0とした列ベクトルを第1目的変数として生成する。
【0051】
このようにして、学習処理部130は、第1テキストから分解されたキーワードおよび第1テンプレートに応じて、第1説明変数および第1目的変数を生成することができる。学習処理部130は、同様にして、複数のテキストの分解結果に応じて、複数の対応する説明変数および目的変数の組を生成する。
【0052】
図4は、本実施形態に係る学習処理部130が生成する複数の目的変数および説明変数の一例を示す。
図4は、説明変数と対応する目的変数の組を横軸方向(行方向)に配列した例を示す。
【0053】
図4は、目的変数の列に、当該目的変数に対応するテンプレートおよびテキストを示す。例えば、第1行には、第1テンプレートおよび第1テキストを示す。なお、テキストは、括弧内に表示し、分解されるキーワードを当該テキストに加えたアンダーラインで示す。学習処理部130は、このような第Nテンプレートを示すべく、上記の例で説明したように、例えば、N番目の要素を1とし、他の要素を0とした第N目的変数を生成する。
【0054】
また、
図4は、説明変数として、テンプレートの位置[X]、[Y]、および[Z]に配置されるカテゴリと、統計量(共起数、相関、事象の時系列の変化)の3つの値を配列した例を示す。学習処理部130は、上記の例で説明したように、例えば、カテゴリXが第1カテゴリ(Product)であることに応じて、説明変数の1番目の要素を1とし、2から5番目の要素を0とする。また、学習処理部130は、カテゴリXが第2カテゴリ(Contract)であることに応じて、説明変数の2番目の要素を1とし、1および3から5番目の要素を0とする。
【0055】
また、学習処理部130は、カテゴリYが第3カテゴリ(Question for a component)であることに応じて、説明変数の8番目の要素を1とし、6、7、9、10番目の要素を0とする。また、学習処理部130は、カテゴリYが第4カテゴリ(Duration of service)であることに応じて、説明変数の9番目の要素を1とし、6から8、および10番目の要素を0とする。また、学習処理部130は、カテゴリZが第5カテゴリ(Problem)であることに応じて、説明変数の15番目の要素を1とし、11から14番目の要素を0とする。
【0056】
以上のように、学習処理部130は、複数のテキストに基づき、対応する説明変数および目的変数の組を生成する。そして、学習処理部130は、一の説明変数に対して対応する一の目的変数が選択(予測)されるように、選択モデルを学習する。学習処理部130は、例えば、回帰分析による選択モデルを用いて学習する。学習処理部130は、一例として、ロジスティック回帰等の一般化線型モデルとして既知のモデルを、選択モデルとして用いて学習する。
【0057】
生成装置100は、更に取得すべきテキストが存在する場合、テキストの取得の段階(S310)に戻って学習を継続させてよい(S340:No)。また、生成装置100は、更に取得すべきテキストが存在しない場合、学習を終了させてよい(S340:Yes)。この場合、学習処理部130は、学習した学習モデルを記憶部140に記憶する。また、生成装置100は、予め定められた時間が経過しても学習が収束しない場合、学習を中断して、ユーザに警告等を通知してもよい。
【0058】
次に、対象データ取得部210は、対象データを取得する(S350)。対象データ取得部210は、テキスト取得部110と同様に、対象データに関する統計量を取得してもよい。即ち、この場合、対象データ取得部210は、対象キーワードの組の共起数、対象キーワードの組におけるキーワード同士の相関、および、対象キーワードに対応する事象の増加または減少のうちの少なくとも1つを示す対象統計量を取得することになる。なお、対象データ取得部210は、特定部220が対象キーワードを特定した後に、当該対象キーワードの情報を当該特定部220から受けとったことに応じて、対象統計量を取得してもよい。
【0059】
次に、特定部220は、対象データを表現する対象キーワードを特定する(S360)。特定部220は、分解処理部120の動作と同様に、キーワード記憶部142に記憶されたキーワード辞書を用いて対象キーワードを特定してよく、これに代えて、またはこれに加えて、言語処理等によって対象キーワードを特定してもよい。ここで、対象データが有する対象キーワードは、新製品の名称等、辞書等には存在しない場合があるので、このような対象キーワードが対象データに含まれる場合には、言語処理等を用いて対象キーワードを特定することが好ましい。
【0060】
また、特定部220は、対象キーワードのカテゴリを、キーワード辞書等を用いて特定する。特定部220は、対象キーワードが辞書等には存在しない場合、対象キーワードと類似のキーワードを検出して、当該類似のキーワードに対応するカテゴリを、対象キーワードのカテゴリとしてよい。これにより、特定部220は、例えば、プリンタAシリーズの新製品である「プリンタA02」が、対象キーワードとなった場合、キーワード辞書に当該対象キーワードが登録されていなくても、キーワード辞書に登録されている「プリンタA01」、「プリンタA」、および「プリンタ」等のキーワードから、当該対象キーワードがproductカテゴリであることを特定することができる。
【0061】
次に、選択部230は、学習処理部130が学習した選択モデルを用いて、対象キーワードのカテゴリに基づいて、対象データの表現に用いる対象テンプレートを選択する(S370)。選択部230は、対象キーワードに基づき、対応する説明変数を生成する。即ち、選択部230は、対象キーワードのカテゴリに応じて、説明変数のカテゴリに対応する要素(上記の例において1番目から15番目の要素)の値を定める。また、選択部230は、対象データ取得部210が取得した対象統計量を用いて、説明変数の統計量に、対応する要素(上記の例において16番目から18番目の要素)の値を定める。
【0062】
選択部230は、対象データの説明変数を生成することにより、学習した選択モデルを用いて、対象データに対応する対象テンプレートを予測することができる。即ち、選択部230は、説明変数および選択モデルから目的変数を算出し、算出した目的変数に対応する(最も1に近い要素に対応する)テンプレートを、対象テンプレートとしてよい。
【0063】
次に、生成部240は、予測した対象テンプレートに対象キーワードを挿入して、対象データを表現する対象テキストを生成する(S380)。生成部240は、一例として、対象テンプレートのカテゴリの位置[X]、[Y]、および[Z]に、対応する対象キーワードを挿入することで、対象テキストを生成する。ここで、生成部240は、対象テンプレートへの対象キーワードの挿入にあわせて、動詞等を変化させて文法的に正しい表現に変更してよい。この場合、生成部240は、言語処理等を用いてよい。
【0064】
以上のように、本実施形態の生成装置100は、複数のテキストに基づいて、対象データの表現に用いる対象テンプレートを選択する選択モデルを学習させ、対象テンプレートに対象キーワードを挿入して対象データを表現する対象テキストを生成することができる。したがって、過去に作成されたレポートに含まれる複数のテキストをテキスト取得部110が取得し、当該複数のテキストを分解処理部120が分解して学習処理部130に学習させることで、当該レポートに対応する選択モデルを得ることができる。これにより、生成部240は、新たに作成するレポートに含めるべき対象テキストを生成することができる。
【0065】
このように、生成装置100は、過去の統計情報に基づいて過去に作成されたテキストから、新たな統計情報に基づいて新たに作成すべきテキストを自動的に作成することができる。即ち、生成装置100は、作成者が知識、経験、および能力等に基づいて、統計情報から特徴的な部分を読み取って作成テキストを作成するノウハウ等を学習することにより、当該作成者なしに、新たな統計情報に基づく同様のテキストを作成することができる。また、統計情報が新製品等のデータベース等には存在しない新しい単語を有する場合であっても、生成装置100は、適切なテキストを生成することができる。
【0066】
これにより、例えば、レポート作成業務、当該業務の引き継ぎ、および当該業務の展開等をスムーズに実行させることができる。また、生成装置100は、業界、分野、およびテキスト作成者毎にテキスト作成のノウハウ等を蓄積することができる。また、当該蓄積した情報に基づき、より専門的な内容についてもテキストを生成することができる。
【0067】
図5は、本実施形態に係る生成装置100の変形例を示す。本変形例の生成装置100において、
図1に示された本実施形態に係る生成装置100の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例の生成装置100は、入力部250と、修正部260と、追加部270とを更に備える。
【0068】
入力部250は、テキスト取得部110および記憶部140に接続され、ユーザが直接テキスト等を入力する場合、またはテキストを修正する場合に、テキスト取得部110のテキストの取得を補助する。入力部250は、ユーザが対象テキストを入力または修正する場合に、ユーザが対象テキストを入力中において、キーワード記憶部142に記憶されたキーワードおよびテンプレート記憶部144に記憶されたテンプレートの少なくとも一方を、入力候補として提示する。
【0069】
例えば、入力部250は、ユーザが「LED bulb L2」と入力した場合、第1カテゴリのキーワードが最初に入力されたことを検出するので、第2テンプレートに分解されるテキストが入力されていることを予測できる。そこで、入力部250は、第2テンプレートの配列に応じて、第1カテゴリの「LED bulb L2」の入力結果に続いて「went out」等の第5カテゴリのキーワードを、追記部分の候補として表示する。これによって、入力部250は、ユーザのテキスト入力を容易に、かつ、正確に実行させることができる。
【0070】
これに代えて、または、これに加えて、入力部250は、取得した複数のテキストに曖昧前方一致検索等を実行して、追記部分の候補を取得して表示してもよい。これにより、入力部250は、例えば、ユーザが「LED bulb L5」と、辞書に登録されていない新しい品番を入力しても、「went out」等のキーワードを追記部分の候補として表示することができる。
【0071】
修正部260は、キーワード記憶部142に記憶されたキーワードおよびテンプレート記憶部144に記憶されたテンプレートの少なくとも一方に基づいて、新たにテキストを分解して得られたキーワードおよびテンプレートの表記ゆれを修正する。修正部260は、分解処理部120および記憶部140に接続され、分解処理部120がキーワードおよびテンプレートを分解する場合に生じる表記ゆれを、記憶部140に記憶された情報に基づいて修正する。
【0072】
例えば、「Customers cannot find」(お客様が見つけられない)と「Do not know」(分からない)、「#」と「number」、および「Printer A01」と「printer A-01」といった、表現および文字列等が異なっても意味が略同一または類似の内容である場合、略同一のキーワードおよびテンプレートとして認識されることが望ましい。そこで、修正部260は、キーワード辞書およびテンプレート辞書を参照して特定した部分以外の(辞書に登録されていない)テキストの部分について、表記揺れを修正する。
【0073】
修正部260は、例えば、新たにテキストを分解して得られたキーワードおよびキーワード記憶部142に記憶されたキーワードの間の編集距離が、予め定められた基準距離未満の場合にこれらのキーワードが同一であると判定してよい。また、修正部260は、新たにテキストを分解して得られたテンプレートおよびテンプレート記憶部に記憶されたテンプレートの間の編集距離が、予め定められた基準距離未満の場合にこれらのテンプレートが同一であると判定してもよい。
【0074】
また、修正部260は、単数形および複数形の差異、省略形との差異、大文字と小文字の差異、およびハイフンとアンダーバー等の差異等は、同一の範囲として、キーワード辞書およびテンプレート辞書等と曖昧マッチングを実行して一致判定してよい。また、修正部260は、例えば、予め定められた文字数の脱落、誤字、および追加等が検出されても、マッチングしたものと判断するように一致判定してもよい。また、修正部260は、一致するとみなす単語、フレーズ等を予め登録した辞書等を用いて、一致判定してもよい。
【0075】
追加部270は、生成部240およびテキスト取得部110にそれぞれ接続され、生成部240が生成した対象テキストを、複数のテキストの1つとして新たに追加し、テキスト取得部110に供給する。ここで、生成部240が生成した対象テキストに対して、ユーザは、変更等の編集をしてより適切なテキストに調整する場合がある。このような場合、追加部270は、ユーザが変更したテキストを取得して、複数のテキストの1つとして新たに追加する。
【0076】
学習処理部130は、追加部270により追加済みの複数のテキストを用いて選択モデルを再学習する。これにより、生成装置100は、テキスト作成のノウハウ等を、更に蓄積することができる。また、学習処理部130がユーザの変更したテキストを再学習することにより、学習の精度を向上させることができる。
【0077】
図6は、本実施形態に係る生成装置100として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、および表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、およびDVDドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、および入出力チップ2070を有するレガシー入出力部と、を備える。
【0078】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000およびグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010およびRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0079】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、DVDドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラムおよびデータを格納する。DVDドライブ2060は、DVD−ROM2095からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0080】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、および入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、および/または、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラムまたはデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0081】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、DVD−ROM2095、またはICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0082】
プログラムは、コンピュータ1900にインストールされ、コンピュータ1900をテキスト取得部110、分解処理部120、学習処理部130、記憶部140、キーワード記憶部142、テンプレート記憶部144、対象データ取得部210、特定部220、選択部230、生成部240、入力部250、修正部260、および追加部270として機能させる。
【0083】
プログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるテキスト取得部110、分解処理部120、学習処理部130、記憶部140、キーワード記憶部142、テンプレート記憶部144、対象データ取得部210、特定部220、選択部230、生成部240、入力部250、修正部260、および追加部270として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の生成装置100が構築される。
【0084】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、またはDVD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置または通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0085】
また、CPU2000は、ハードディスクドライブ2040、DVDドライブ2060(DVD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、および/または記憶装置に含まれるものとする。
【0086】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(または不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0087】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0088】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、DVD−ROM2095の他に、DVD、Blu−ray(登録商標)、またはCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0089】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0090】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。