JP2017151926A - 情報処理プログラム、情報処理装置および情報処理方法 - Google Patents

情報処理プログラム、情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2017151926A
JP2017151926A JP2016036283A JP2016036283A JP2017151926A JP 2017151926 A JP2017151926 A JP 2017151926A JP 2016036283 A JP2016036283 A JP 2016036283A JP 2016036283 A JP2016036283 A JP 2016036283A JP 2017151926 A JP2017151926 A JP 2017151926A
Authority
JP
Japan
Prior art keywords
faq
word
vector
feature
word string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016036283A
Other languages
English (en)
Inventor
拓哉 牧野
Takuya Makino
拓哉 牧野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016036283A priority Critical patent/JP2017151926A/ja
Priority to US15/398,077 priority patent/US20170249320A1/en
Publication of JP2017151926A publication Critical patent/JP2017151926A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】新規質問と回答済みの質問との単語が一致しなくても、新規質問に対して回答済みの質問を適切にランキングする。
【解決手段】情報処理装置1は、過去の問合せについて、FAQごとに、類似する問合せと類似しない問合せとにグループ化し、各FAQについて、グループ化された類似する問合せに出現する単語ごとにFAQに対する特徴量をそれぞれ算出し、各FAQについて、単語ごとのFAQに対する特徴量を用いて、グループ化された類似する問合せから抽出される単語列を特徴量ベクトルに変換し、グループ化された類似しない問合せから抽出される単語列を特徴量ベクトルに変換し、各FAQについて、グループ化された類似する問合せから抽出される単語列の特徴量ベクトルおよびグループ化された類似しない問合せから抽出される単語列の特徴量ベクトルに基づいて、FAQに対する単語ごとの重要度を示すパラメータベクトルを更新する。
【選択図】図1

Description

本発明は、情報処理装置などに関する。
新規で入力された質問に対して、既に回答済みの質問を検索する技術が知られている(例えば、非特許文献1参照)。かかる技術では、まず、情報処理装置は、回答済みの質問とその回答とのペアの集合が与えられている状況において、回答間の類似度が予め設定された閾値以上の質問のペアを収集する。一例として、情報処理装置は、回答Aで回答Bを検索したときの順位をr、回答Bで回答Aを検索したときの順位をrとしたときに、回答Aと回答Bとの類似度を以下の式(1)を用いて定義する。
Figure 2017151926
そして、情報処理装置は、sim(A,B)が予め設定された閾値以上になる回答と回答の質問のペアを学習データとして収集する。
次に、情報処理装置は、収集した質問のペアを使って単語間の意味的な類似度を教師なし学習によって学習する。一例として、情報処理装置は、質問のペアの数をN、その中のi番目の質問のペアをJとしたときに、質問のペアに出現する単語tと単語sとの意味的な関連確率を以下の式(2)を用いて計算する。なお、式(2)内のc(t|s;J)は、ペアJにおいて単語sが単語tと関連する度合いであり、以下の式(3)を用いて計算される。式(3)内のcnt(t,J)は、ペアJにおける単語tの頻度である。式(3)内のcnt(s,J)は、ペアJにおける単語sの頻度である。
Figure 2017151926
Figure 2017151926
この方式によると、ペアJに単語sおよび単語tがともに多く出現する程、ペアJの関連確率P(t|s)は高い値となる。
次に、情報処理装置は、新規で入力された質問に対して、単語が一致しなくても、意味的に類似する質問とその回答をランキング形式で出力する。一例として、情報処理装置は、入力された質問Qと回答済みの質問Dとの類似度sim(Q,D)を以下の式(4)および式(5)を用いて計算する。なお、式(5)内のCは、質問の集合である。P(w|D)は、入力された質問Qに出現する単語wの回答済みの質問Dにおける重要度を表す。T(w|t)は、Dに出現する単語tと、Qに出現する単語wの関連確率を表す。Pml(t|D)は、Dにおける単語tの出現確率を表す。Pml(w|C)は、Cにおける単語wの出現確率を表す。
Figure 2017151926
Figure 2017151926
この方式によると、回答済みの質問Dにおいて質問Qに出現する単語wが良く出現し、さらに回答済みの質問Dにおいて重要な単語tとの関連度が高い程、sim(Q,D)は高い値となる。
Jiwoon Jeon,W.Bruce Croft and Joon Ho Lee,"Finding Similar Questions in Large Question And Answer Archives",CIKM’05
しかしながら、従来技術では、新規で入力された質問と回答済みの質問との単語が一致しない場合に、新規で入力された質問に対して回答済みの質問を適切にランキングできないという問題がある。すなわち、従来技術で学習しているのは、単語間の関連確率であり、新規で入力された質問の単語の出現が回答済みの質問と紐付けるのに重要かどうかを学習していない。つまり、情報処理装置は、式(5)の第2項によって新規で入力された質問Qに出現する単語wの質問の集合Cにおける出現確率を計算しているが、出現確率が高いからといって単語wが回答済みの質問Dと紐付けるのに重要とは限らない。例えば、新規で入力された質問Qに”music”や”file”が出現している場合に、これらの単語が回答済みの質問Dに出現するからといって、質問Qを質問Dと紐付けるのに重要であるとは限らない。
本発明は、1つの側面では、新規で入力された質問と回答済みの質問との単語が一致しなくても、新規で入力された質問に対して回答済みの質問を適切にランキングすることを
目的とする。
1つの態様では、情報処理プログラムは、コンピュータに、複数の問合せ項目を、類似する問合せ項目グループと類似しない問合せ項目グループとにグループ化し、前記類似する問合せ項目グループに出現する単語ごとに特徴量をそれぞれ算出し、前記特徴量を用いて、前記類似する問合せ項目グループから抽出される第1単語列を第1特徴量ベクトルに変換し、前記類似しない問合せ項目グループから抽出される第2単語列を第2特徴量ベクトルに変換し、前記第1特徴量ベクトルおよび前記第2特徴量ベクトルに基づいて、前記単語ごとの重要度を示すパラメータベクトルを更新する、処理を実行させる。
1実施態様によれば、新規で入力された質問と回答済みの質問との単語が一致しなくても、新規で入力された質問に対して回答済みの質問を適切にランキングすることができる。
図1は、実施例1に係る情報処理装置の構成を示す機能ブロック図である。 図2は、実施例1に係る学習データ収集処理の流れの一例を示す図である。 図3は、実施例1に係る単語特徴量算出処理の流れの一例を示す図である。 図4は、実施例1に係る単語列特徴量算出処理の流れの一例を示す図である。 図5Aは、実施例1に係る語彙重要度算出処理の流れの一例を示す図(1)である。 図5Bは、実施例1に係る語彙重要度算出処理の流れの一例を示す図(2)である。 図5Cは、実施例1に係る語彙重要度算出処理の流れの一例を示す図(3)である。 図6は、実施例1に係るランキング出力処理の流れの一例を示す図である。 図7は、実施例1に係る情報処理のフローチャートの一例を示す図である。 図8は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。 図9は、実施例2に係るランキングパラメータ学習処理の概要を示す図である。 図10Aは、実施例2に係るランキングパラメータ学習処理の流れの一例を示す図(1)である。 図10Bは、実施例2に係るランキングパラメータ学習処理の流れの一例を示す図(2)である。 図11は、実施例2に係るランキング出力処理の流れの一例を示す図である。 図12は、実施例2に係る情報処理のフローチャートの一例を示す図である。 図13は、情報処理プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
[実施例1に係る情報処理装置の構成]
図1は、実施例1に係る情報処理装置の構成を示す機能ブロック図である。図1に示す情報処理装置1は、回答済みの問い合わせとFAQ(Frequently Asked Questions)との回答部分の類似度を元に、回答済みの問い合わせとFAQのペアを収集する。情報処理装置1は、収集したペアを学習データとして、FAQごとにペアに含まれる単語の重要度を獲得する。ここでいう回答済みの問い合わせとは、過去にあった回答済みの質問のことをいい、意味合いが類似する質問を含む。回答済みの問い合わせには、一例として、Yahoo!知恵袋の質問が挙げられる。また、ここでいうFAQとは、過去にあった回答済みの質問が別の回答済みの質問と意味的に類似しない質問とその回答のことをいう。なお、以降では、回答済みの問い合わせのことを「問い合わせ」と略記するものとする。
情報処理装置1は、制御部10と、記憶部20とを有する。制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、閾値設定部11と、学習データ収集部12と、語彙重要度学習部13と、ランキング出力部14とを有する。
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、FAQ単語特徴量テーブル21と、FAQパラメータベクトルテーブル22とを有する。
FAQ単語特徴量テーブル21は、FAQごとの単語の特徴量を記憶する。FAQパラメータベクトルテーブル22は、FAQごとのパラメータベクトルを記憶する。パラメータベクトルとは、単語および単語列を含む語彙の重要度をベクトル化したものであり、FAQごとに生成される。なお、FAQ単語特徴量テーブル21は、例えば語彙重要度学習部13によって生成され、語彙重要度学習部13およびランキング出力部によって用いられる。FAQパラメータベクトルテーブル22は、例えば語彙重要度学習部13によって生成され、ランキング出力部14によって用いられる。
閾値設定部11は、学習データの収集で用いられる閾値を記憶部20に設定する。例えば、閾値設定部11は、ユーザによって入力された閾値を受け付け、受け付けた閾値を記憶部20に設定する。
学習データ収集部12は、FAQの回答部分と問い合わせ履歴の回答部分との単語の一致率を計算し、順位を取得する。学習データ収集部12は、順位に基づいたスコアが閾値以上のFAQの回答部分と問い合わせ履歴の回答部分に対応するFAQと問い合わせのペアを収集する。なお、学習データ収集部12の学習データの収集は、例えば、“Jiwoon Jeon,W.Bruce Croft and Joon Ho Lee,“Finding Similar Questions in Large Question And Answer Archives”,CIKM’05”によって行われれば良い。
ここで、実施例1に係る学習データ収集処理の流れの一例を、図2を参照して説明する。図2は、実施例1に係る学習データ収集処理の流れの一例を示す図である。図2に示すように、複数のFAQ並びに複数の問い合わせおよび回答を含む問い合わせ履歴が表わされている。
このような状況の下、学習データ収集部12は、FAQの回答で問い合わせの回答を検索したときの順位、問い合わせの回答でFAQの回答を検索したときの順位を計算する。例えば、FAQ1の回答で問い合わせaの回答aを検索したときの順位が2位であり、問い合わせaの回答aでFAQ1の回答を検索したときの順位が1位であるとする。
すると、学習データ収集部12は、FAQ1の回答と問い合わせaの回答aとの類似度を式(1)で算出する。ここでは、FAQ1と問い合わせaとの類似度simは、式(1)を用いて0.75と算出され、算出結果が閾値以上であると判定されるとする。すると、学習データ収集部12は、類似度が閾値以上のFAQ1の回答部分と問い合わせ履歴の回答部分を取得し、これらに対応するFAQ1と問い合わせaを収集する。
なお、学習データ収集部12は、FAQ1と問い合わせaの収集について説明したが、引き続き、類似度が閾値以上のFAQと問い合わせを収集する。
語彙重要度学習部13は、FAQごとに、単語および単語列を含む語彙の重要度を学習する。語彙重要度学習部13は、単語特徴量算出部131、単語列特徴量算出部132および語彙重要度算出部133を有する。
単語特徴量算出部131は、FAQごとに単語の特徴量を算出する。
例えば、単語特徴量算出部131は、学習データ収集部12によって収集された問い合わせを単語分割し、名詞、動詞などの単語列に変換する。一例として、問い合わせが「○○カードの再発行、今から出張だが、カードが見当たらない・・・」であるとする。すると、単語特徴量算出部131は、「○○カード」「再発行」「出張」「見当たる」に単語分割し、問い合わせを単語列「○○カード 再発行 出張 見当たる」に変換する。
そして、単語特徴量算出部131は、学習データ収集部12によって収集されたFAQと問い合わせのペアから、FAQごとに各FAQとペアになる問い合わせをグループ化する。
そして、単語特徴量算出部131は、FAQごとに単語の特徴量を以下の式(7)を用いて算出し、FAQ単語特徴量テーブル21に保存する。なお、式(7)は、以下の式(6)の算出結果を用いる。
Figure 2017151926
一例として、単語特徴量算出部131は、FAQiとペアになる問い合わせの集合Ciにおける単語wの出現確率を、式(6)を用いて算出する。なお、iは、FAQを識別する番号を示す。wは、集合Ciに含まれる単語を示す。cnt(w,Ci)は、集合Ciにおける単語wの出現回数を取得する関数である。例えば、wが「再発行」であれば、集合Ciにおける「再発行」の出現回数が取得される。
Figure 2017151926
単語特徴量算出部131は、単語wのFAQiにおける相対的な重要度(特徴量)を、式(7)を用いて算出する。score(w;FAQi)は、単語wのFAQiにおける相対的な重要度である。式(6)および式(7)の計算式により、FAQiの方が他のFAQより単語wが相対的に出現する程、スコア(score(w;FAQi))が高くなる。例えば、単語の出現総数が10を示すC1中に単語「再発行」が1回出現することは、単語の出現総数が100を示す{C1,C2,C3}中に2回出現するよりも情報がある(スコアが高くなる)ということがわかる。
単語列特徴量算出部132は、FAQごとに単語列の特徴量を算出する。例えば、単語列特徴量算出部132は、FAQごとの問い合わせの単語列の特徴量を、以下の式(8)を用いて算出し、FAQ単語特徴量テーブル21に保存する。すなわち、単語列特徴量算出部132は、問い合わせがFAQらしい単語列であるかを示す単語列の特徴量を算出する。なお、式(8)は、以下の式(9)および式(10)の算出結果を用いる。
一例として、単語列特徴量算出部132は、FAQ1において、問い合わせaの単語列全体の特徴量を算出するとする。単語列特徴量算出部132は、以下の式(8)を用いて、問い合わせaの単語列に対するFAQ1らしさを示すスコアを算出する。
Figure 2017151926
ここで、式(8)内のp(wi)は、式(9)によって算出される。p(wi)は、FAQ1の観点から見て単語列aに単語wiが出現する確率を示す。
Figure 2017151926
ここで、式(8)内のq(wi)は、式(10)によって算出される。q(wi)は、FAQを考慮せずに単語列aに単語wiが出現する確率を示す。
Figure 2017151926
式(8)の計算式により、FAQ1における問い合わせaの単語列全体の特徴量は、問い合わせaの単語列中の単語wのどれもが他のFAQと比べてFAQ1に出現する確率が大きい程高くなる。つまり、単語「再発行」について、たまたま出現する単語列よりも他の単語も合わせて出現する単語列の方が、FAQ1らしさを示すスコアが高くなる。
語彙重要度算出部133は、FAQごとに単語および単語列を含む語彙の重要度を算出する。
例えば、語彙重要度算出部133は、学習データ収集部12によって収集されたFAQと問い合わせのペアから、FAQごとにペアになる問い合わせの単語列とペアにならない問い合わせの単語列とにグループ化する。語彙重要度算出部133は、FAQごとに、FAQとペアになる単語列を、FAQ単語特徴量テーブル21の当該FAQに対応する単語の特徴量を用いて特徴量ベクトルに変換する。語彙重要度算出部133は、単語列について変換された特徴量ベクトルに当該単語列に対する特徴量を追加する。語彙重要度算出部133は、FAQごとに、FAQとペアにならない単語列を、FAQ単語特徴量テーブル21の当該FAQに対応する単語の特徴量を用いて特徴量ベクトルに変換する。語彙重要度算出部133は、単語列について変換された特徴量ベクトルに当該単語列に対する特徴量を追加する。ここでいう特徴量ベクトルとは、問い合わせ履歴に含まれる全ての単語の数に単語列分の1を加えたカラムを持ち、各カラムは各単語および単語列に対する特徴量の設定のために割り当てられる。一例として、1カラム目は、「○○カード」の特徴量の設定のために割り当てられる。2カラム目は、「再発行」の特徴量の設定のために割り当てられる。
そして、語彙重要度算出部133は、FAQごとに、問い合わせの単語列が変換された特徴量ベクトルを用いて、パラメータベクトル(語彙の重要度)を算出する。一例として、語彙重要度算出部133は、FAQ1のパラメータベクトルを算出するとする。語彙重要度算出部133は、FAQ1とペアになる問い合わせの単語列の場合には、単語列に出現する特徴量の重みが正の方向に大きくなるように、FAQ1のパラメータベクトルを更新する。加えて、語彙重要度算出部133は、FAQ1とペアにならない問い合わせの単語列の場合には、単語列に出現する特徴量の重みが負の方向に大きくなるように、FAQ1のパラメータベクトルを更新する。語彙重要度算出部133は、FAQごとに計算されたパラメータベクトルをFAQパラメータベクトルテーブル22に保存する。ここでいうパラメータベクトルとは、FAQに対して各カラムに割り当てられた単語がどれくらい重要かを表すベクトルであり、FAQごとに算出される。これにより、語彙重要度算出部133は、FAQのパラメータベクトルを参照することで、FAQにとって重要な語彙を特定できる。
ランキング出力部14は、新規の問い合わせに対して、語彙重要度学習部13によってFAQごとに学習されたパラメータベクトルを用いて、FAQをランキングして出力する。例えば、ランキング出力部14は、新規の問い合わせの単語列を、FAQ単語特徴量テーブル21の各FAQに対応する単語の特徴量を用いて、FAQごとの特徴量ベクトルに変換する。ランキング出力部14は、FAQごとに、変換された特徴量ベクトルと、FAQパラメータベクトルテーブル22に記憶されたパラメータベクトルとの内積を算出する。算出される内積の値は、新規の問い合わせがどれくらいFAQらしいかを示す値といえる。ランキング出力部14は、算出された内積の値を大きい順にソートし、FAQをランキングして出力する。
[単語特徴量算出処理の流れ]
図3は、実施例1に係る単語特徴量算出処理の流れの一例を示す図である。図3に示すように、学習データ収集部12によって収集されたFAQと問い合わせのペアが表わされている。ここでは、FAQ1と問い合わせa、FAQ2と問い合わせb、FAQ3と問い合わせc、FAQ2と問い合わせdおよびFAQ1と問い合わせeのそれぞれのペアが表わされている。
このような状況の下、単語特徴量算出部131は、収集されたFAQと問い合わせのペアから、FAQごとにペアになる問い合わせをグループに纏める。ここでは、FAQ1とペアになる問い合わせの集合C1は、{問い合わせaの単語列a´,問い合わせeの単語列e´}となる。FAQ2とペアになる問い合わせの集合C2は、{問い合わせbの単語列b´,問い合わせdの単語列d´}となる。FAQ3とペアになる問い合わせの集合C3は、{問い合わせcの単語列c´}となる。
単語特徴量算出部131は、FAQiについて、FAQiとペアになる問い合わせの集合Ciにおける単語wの出現確率を、式(6)を用いて算出する。そして、単語特徴量算出部131は、単語wのFAQiにおける相対的な重要度(特徴量)を、式(7)を用いて算出する。そして、単語特徴量算出部131は、FAQiについて、算出された単語wの特徴量をFAQ単語特徴量テーブル21に保存する。ここでは、例えば、FAQ1について、「○○カード」の特徴量として0.3,単語「再発行」の特徴量として0.9,単語「出張」の特徴量として2,単語「見当たる」の特徴量として0.7,・・・がFAQ単語特徴量テーブル21に保存されている。
[単語列特徴量算出処理の流れ]
図4は、実施例1に係る単語列特徴量算出処理の流れの一例を示す図である。図4に示すように、FAQ1と問い合わせaのペアについて、FAQ1における問い合わせaの単語列a´に対する特徴量が算出されるものとする。問い合わせaの単語列a´は、「○○カード」,「再発行」,「出張」および「見当たる」であるとする。
このような状況の下、単語列特徴量算出部132は、FAQ単語特徴量テーブル21から、単語列a´に含まれるそれぞれの単語について、FAQ1における単語の特徴量を取得する。ここでは、「○○カード」として0.3、「再発行」として0.9、「出張」として2、「見当たる」として0.7が取得される。
単語列特徴量算出部132は、式(8)を用いて、問い合わせaの単語列a´全体としてのFAQ1に対する特徴量を計算する。すなわち、単語列特徴量算出部132は、問い合わせaがFAQ1らしい単語列a´であるかどうかを単語列a´の特徴量によって表わす。ここでは、単語列a´全体としてのFAQ1に対するスコア(特徴量)は、0.9と計算される。
これにより、FAQ1における問い合わせaの単語列a´全体の特徴量は、問い合わせaの単語列a´中の単語wのどれもが他のFAQと比べてFAQ1に出現する確率が大きい程高くなる。つまり、単語「再発行」について、たまたま出現する単語列よりも他の単語も合わせて出現する単語列の方が、FAQ1らしさを示すスコアが高くなる。例えば、FAQ1においては、たまたま「再発行」が出現する単語列「再発行 領収書 タクシー」よりも他の単語も合わせて出現する単語列a´「○○カード 再発行 出張 見当たる」のスコアが高くなる。
[語彙重要度算出処理の流れ]
図5A〜図5Cは、実施例1に係る語彙重要度算出処理の流れの一例を示す図である。図5Aに示すように、学習データ収集部12によって収集されたFAQと問い合わせのペアが表わされている。収集されたペアは、図3で示したペアと同じである。
このような状況の下、語彙重要度算出部133は、学習データ収集部12によって収集されたFAQと問い合わせのペアから、FAQごとにペアになる問い合わせとペアにならない問い合わせとにグループ化する。ここでは、一例として、FAQ1とペアになる(紐づく)問い合わせは、{問い合わせa,問い合わせe}であり、FAQ1とペアにならない(紐づかない)問い合わせは、{問い合わせb,問い合わせc,問い合わせd}である。FAQ2とペアになる(紐づく)問い合わせは、{問い合わせb,問い合わせd}であり、FAQ2とペアにならない(紐づかない)問い合わせは、{問い合わせa,問い合わせc,問い合わせe}である。
そして、語彙重要度算出部133は、問い合わせを単語分割して、単語列に変換する。ここでは、FAQ1とペアになる(紐づく)問い合わせの単語列の集合C1は、{単語列a´,単語列e´}であり、FAQ1とペアにならない(紐づかない)問い合わせ単語列の集合は、{単語列b´,単語列c´,単語列d´}である。FAQ2とペアになる(紐づく)問い合わせの単語列の集合C2は、{単語列b´,単語列d´}であり、FAQ2とペアにならない(紐づかない)問い合わせの単語列の集合は、{単語列a´,単語列c´,単語列e´}である。
図5Bに示すように、語彙重要度算出部133は、FAQごとに、FAQとペアになる単語列およびFAQとペアにならない単語列を、FAQ単語特徴量テーブル21の当該FAQに対応する単語の特徴量を用いて特徴量ベクトルに変換する。ここでは、FAQ1とペアになる単語列a´が特徴量ベクトルに変換される場合を説明する。単語列a´は、「○○カード 再発行 出張 見当たる」であるとする。
すると、語彙重要度算出部133は、FAQ単語特徴量テーブル21から、単語列a´に含まれるそれぞれの単語について、FAQ1における単語の特徴量を取得する。そして、語彙重要度算出部133は、単語列a´をFAQ1における特徴量ベクトルに変換する。ここでは、{○○カード:0.3,再発行:0.9,出張:2,見当たる:0.7,・・・}がFAQ1における単語列a´の特徴量ベクトルである。
語彙重要度算出部133は、FAQ単語特徴量テーブル21から、FAQ1における単語列a´に対する特徴量を取得する。そして、語彙重要度算出部133は、単語列a´について変換された特徴量ベクトルに当該単語列a´に対する特徴量を追加する。この結果、{○○カード:0.3,再発行:0.9,出張:2,見当たる:0.7,・・・,単語列a´に対するスコア:0.9}がFAQ1における単語列a´の特徴量ベクトルとなる。
図5Cに示すように、語彙重要度算出部133は、FAQごとに、変換された特徴量ベクトルを用いて、パラメータベクトル(語彙の重要度)を算出する。ここでは、FAQ1のパラメータベクトルwc1が算出される場合を説明する。なお、FAQ1とペアになる(紐づく)問い合わせの単語列の集合C1、FAQ1とペアにならない(紐づかない)問い合わせの単語列の集合は、図5Bと同じであるとする。
語彙重要度算出部133は、FAQ1の単語列群の中から単語列qを1つ取り出す。ここでは、単語列a´が取り出されたとする。単語列a´は、「○○カード 再発行 出張 見当たる」であるとする。
語彙重要度算出部133は、単語列qを特徴量ベクトルφc1(q)へ変換する。単語列を特徴量ベクトルへ変換する処理は、図5Bで説明した処理の流れと同様であるので、その説明を省略する。ここでは、FAQ1における単語列a´の特徴量ベクトルφc1(q)は、{○○カード:0.3,再発行:0.9,出張:2,見当たる:0.7,・・・,単語列a´に対するスコア:0.9}である。
語彙重要度算出部133は、以下の式(11)に基づいて、FAQ1のパラメータベクトルwc1を更新する。ここで、式(11)のwの初期値は0である。yは、単語列qがFAQとペアであれば1であり、単語列qがFAQとペアでなければ−1である。
t+1=w+yφc1(q)・・・式(11)
すなわち、語彙重要度算出部133は、FAQ1とペアになる単語列に出現する特徴量の重みを正の方向に大きくなるように、FAQ1のパラメータベクトルwc1を更新する。一方、語彙重要度算出部133は、FAQ1とペアにならない単語列に出現する特徴量の重みを負の方向に大きくなるように、FAQ1のパラメータベクトルwc1を更新する。特徴量の重みは、特徴量の大きさに応じて更新幅が異なる。例えば、FAQ1とペアである単語列a´に「再発行」や「○○カード」が出現するが、「再発行」の特徴量は0.9であり「○○カード」の特徴量は0.3であるので、「再発行」の特徴量の重みは、「○○カード」よりも正の方向に大きく更新される。つまり、「再発行」における特徴量の重みの更新幅は、「○○カード」より大きくなる。
そして、語彙重要度算出部133は、FAQ1の単語列群から取り出されていない単語列qがなくなるまで1つずつ単語列qを取り出し、特徴量ベクトルへ変換し、単語列qがFAQ1とペアであるかどうかによって特徴量の重みの更新を正か負に分けることを繰り返す。そして、語彙重要度算出部133は、FAQ1のパラメータベクトルwc1を獲得する。ここでは、FAQ1のパラメータベクトルwc1は、{○○カード:0.3,再発行:0.9,出張:0.2,見当たる:0.7,・・・,単語列に対するスコア:0.9}となる。
これにより、例えば、「再発行」がFAQ1とペアである問い合わせのみならずペアでない問い合わせにもよく出現する場合には、FAQ1の特徴量が大きいのでFAQ1との相関が高いように推測されたが、FAQ1との重要度は低くなる。つまり、「再発行」は、FAQ1らしくないと判断できる。一方、「再発行」がFAQ1とペアである問い合わせに出現するがペアでない問い合わせに出現しない場合には、FAQ1との重要度は高くなる。つまり、「再発行」は、FAQ1らしいと判断できる。
[ランキング出力処理の流れ]
図6は、実施例1に係るランキング出力処理の流れの一例を示す図である。図6に示すように、ランキング出力部14は、新規問い合わせを入力し、FAQのランキングを出力する。ここでは、新規問い合わせは、「財布を落として○○カードを無くしてしまったのですがどうすればよいでしょうか?」であるとする。
ランキング出力部14は、新規問い合わせを単語分割して単語列に変換する。ランキング出力部14は、新規問い合わせの単語列を、FAQ単語特徴量テーブル21の各FAQに対応する単語の特徴量を用いて、FAQごとの特徴量ベクトルに変換する(S101)。ここでは、一例として、FAQ1の特徴量ベクトルは、{財布:0.3,落とす:0.5,○○カード:0.2,無くす:0.2,・・・}であるとする。
ランキング出力部14は、FAQごとに、特徴量ベクトルとパラメータベクトルとの内積を算出する(S102)。ここでは、一例として、FAQ1のパラメータベクトルは、{○○カード:0.6,・・・,落とす:0.6,無くす:0.6,・・・}であるとする。すると、FAQ1の特徴量ベクトルとFAQ1のパラメータベクトルとの内積は0.54と算出される。同様に、ランキング出力部14は、他のFAQについても、特徴量ベクトルとパラメータベクトルとの内積を算出する(S101,S102)。
ランキング出力部14は、FAQごとに算出された内積の値を大きい順にソートし(S103)、FAQをランキングして出力する(S104)。これにより、ランキング出力部14は、新規問い合わせとFAQの語彙が一致しなくても、新規問い合わせに対して適切なFAQを出力できる。
[情報処理のフローチャート]
図7は、実施例1に係る情報処理のフローチャートを示す図である。
図7に示すように、閾値設定部11は、ユーザから閾値を受け取ると、受け取った閾値を記憶部20に設定する(ステップS11)。学習データ収集部12は、回答済みの問い合わせ履歴およびFAQを記憶部20から読み出し、問い合わせおよびFAQの回答部分の類似度を元に、問い合わせの質問とFAQのペアを収集する(ステップS12)。例えば、学習データ収集部12は、FAQの回答と問い合わせの回答との類似度を算出する。学習データ収集部12は、類似度が閾値以上のFAQの回答と問い合わせの回答に対応するFAQと問い合わせのペアを収集する。
続いて、単語特徴量算出部131は、FAQごとに、ペアになる問い合わせをグループ化する(ステップS13)。単語特徴量算出部131は、FAQごとに、グループに含まれる単語の特徴量を計算し、FAQ単語特徴量テーブル21に保存する(ステップS14)。例えば、単語特徴量算出部131は、FAQとペアになる問い合わせの集合に含まれる単語の出現確率を、式(6)を用いて算出する。そして、単語特徴量算出部131は、算出された結果と式(7)を用いて、単語のFAQにおける相対的な重要度(特徴量)を算出する。
続いて、単語列特徴量算出部132は、FAQごとに、問い合わせの単語列に対する特徴量を計算し、FAQ単語特徴量テーブル21に保存する(ステップS15)。例えば、単語列特徴量算出部132は、問い合わせから抽出した単語列と、FAQ単語特徴量テーブル21のFAQごとの単語の特徴量を用いて、各FAQにおける問い合わせの単語列に対する特徴量を計算する。
続いて、語彙重要度算出部133は、FAQを選択する(ステップS16)。語彙重要度算出部133は、選択したFAQとペアになる問い合わせの第1グループとペアにならない第2グループに分ける(ステップS17)。
そして、語彙重要度算出部133は、第1グループおよび第2グループのそれぞれの問い合わせの単語列を、それぞれ選択FAQの特徴量ベクトルへ変換する(ステップS18)。例えば、語彙重要度算出部133は、選択したFAQとペアになる単語列を、FAQ単語特徴量テーブル21の当該FAQに対応する単語の特徴量を用いて特徴量ベクトルへ変換する。語彙重要度算出部133は、選択したFAQとペアにならない単語列を、FAQ単語特徴量テーブル21の当該FAQに対応する単語の特徴量を用いて特徴量ベクトルへ変換する。語彙重要度算出部133は、単語列について変換された特徴量ベクトルに当該単語列に対する特徴量を追加する。
そして、語彙重要度算出部133は、問い合わせの単語列が変換された特徴量ベクトルを用いてパラメータベクトルを計算する(ステップS19)。例えば、語彙重要度算出部133は、選択したFAQとペアになる問い合わせの単語列に出現する特徴量の重みを正の方向に大きくなるように、当該FAQのパラメータベクトルを更新する。語彙重要度算出部133は、選択したFAQとペアにならない問い合わせの単語列に出現する特徴量の重みを負の方向に大きくなるように、当該FAQのパラメータベクトルを更新する。
そして、語彙重要度算出部133は、全てのFAQを選択したか否かを判定する(ステップS20)。全てのFAQを選択していないと判定した場合には(ステップS20;No)、語彙重要度算出部133は、次のFAQを選択すべく、ステップS16に移行する。
一方、全てのFAQを選択したと判定した場合には(ステップS20;Yes)、語彙重要度算出部133は、FAQごとに計算されたパラメータベクトルをFAQパラメータベクトルテーブル22に保存する(ステップS21)。そして、情報処理が終了する。
[実施例1の効果]
上記実施例1によれば、情報処理装置1は、過去の問合せについて、FAQごとに、類似する問合せと類似しない問合せとにグループ化する。情報処理装置1は、それぞれのFAQについて、グループ化された類似する問合せに出現する単語ごとにFAQに対する特徴量をそれぞれ算出する。情報処理装置1は、それぞれのFAQについて、単語ごとのFAQに対する特徴量を用いて、グループ化された類似する問合せから抽出される単語列を特徴量ベクトルに変換し、グループ化された類似しない問合せから抽出される単語列を特徴量ベクトルに変換する。情報処理装置1は、それぞれのFAQについて、グループ化された類似する問合せから抽出される単語列の特徴量ベクトルおよびグループ化された類似しない問合せから抽出される単語列の特徴量ベクトルに基づいて、以下の処理を行う。すなわち、情報処理装置1は、FAQに対する単語ごとの重要度を示すパラメータベクトルを更新する。かかる構成によれば、情報処理装置1は、新規の問合せとFAQの単語が一致していなくても、パラメータベクトルを用いることで新規の問合せに対して適切なFAQを出力することが可能となる。
また、上記実施例1によれば、情報処理装置1は、グループ化された類似する問合せから抽出される単語列の特徴量ベクトルのそれぞれの特徴量をパラメータベクトルの同一の位置の成分にプラスする。情報処理装置1は、グループ化された類似しない問合せから抽出される単語列の特徴量ベクトルのそれぞれの特徴量をパラメータベクトルの同一の位置の成分にマイナスして前記パラメータベクトルを更新する。かかる構成によれば、情報処理装置1は、問合せがFAQに類似しているか否かによって特徴量ベクトルを正か負に分けてパラメータベクトルを更新することで、FAQの中で単語の重要度を得ることができる。
また、上記実施例1によれば、情報処理装置1は、それぞれのFAQについて、グループ化された類似する問合せから抽出される単語列およびグループ化された類似しない問合せから抽出される単語列に対する特徴量をそれぞれ算出する。情報処理装置1は、グループ化された類似する問合せから抽出される単語列の特徴量ベクトルに単語列に対する特徴量を追加する。情報処理装置1は、グループ化された類似しない問合せから抽出される単語列の特徴量ベクトルに単語列に対する特徴量を追加する。かかる構成によれば、情報処理装置1は、問合せがFAQに類似しているか否かによって特徴量ベクトルを正か負に分けてパラメータベクトルを更新することで、FAQの中で単語および単語列、すなわち語彙の重要度を得ることができる。
また、上記実施例1によれば、情報処理装置1は、新規の問合せから抽出される単語列を、単語ごとのFAQに対する特徴量を用いて、それぞれのFAQにおける特徴量ベクトルに変換する。情報処理装置1は、それぞれのFAQについて、変換された特徴量ベクトルと、パラメータベクトルとの内積を算出する。情報処理装置1は、算出された内積の値に基づいて、それぞれのFAQのランキングを出力する。かかる構成によれば、情報処理装置1は、新規の問合せとFAQの単語が一致していなくても、新規の問合せに対して適切なFAQを出力できる。
ところで、実施例1に係る情報処理装置1では、FAQごとに、ペアとなる問い合わせから抽出される単語列を特徴量ベクトルに変換し、ペアとならない問い合わせから抽出される単語列を特徴量ベクトルに変換する。そして、情報処理装置1は、これらの特徴量ベクトルに基づいて、FAQごとのパラメータベクトルを生成する。しかしながら、情報処理装置1は、これに限定されず、FAQごとのパラメータベクトルを用いて計算された結果をランキング学習のパラメータベクトルに追加しても良い。ランキング学習のパラメータベクトルは、以降、「ランキングパラメータベクトル」というものとする。
そこで、実施例2では、情報処理装置1は、これに限定されず、FAQごとのパラメータベクトルを用いて計算された結果をランキング学習のパラメータベクトルに追加する場合を説明する。
[実施例2に係る情報処理装置の構成]
図8は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。なお、図1に示す情報処理装置1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、ランキングパラメータ学習部31およびランキングパラメータベクトル41を追加した点である。実施例1と実施例2とが異なるところは、ランキング出力部14Aを変更した点である。
ランキングパラメータベクトル41は、ランキングのパラメータベクトルを示す。ランキングパラメータベクトル41は、ランキングパラメータ学習31によって生成され、ランキング出力部14Aによって用いられる。なお、ランキングパラメータベクトル41の説明は、後述する。
ランキングパラメータ学習部31は、ランキングのパラメータを学習する。ランキングパラメータ学習部31は、学習したランキングのパラメータをランキングパラメータベクトル41として記憶部20に保存する。
例えば、ランキングパラメータ学習部31は、学習データ収集部12によって収集された問い合わせに対して、どのFAQが正解らしいかを学習する。なお、かかる学習方法は、既存のいかなる技術を用いても良い。
そして、ランキングパラメータ学習部31は、問い合わせごとに、正解のFAQと不正解のFAQのペアの集合を作成し、ペアごとに正解のFAQが不正解のFAQよりもスコアが大きくなるようにランキングパラメータベクトル41を更新する。すなわち、ランキングパラメータ学習部31は、問い合わせに対して正解のFAQを紐付けるためにランキングパラメータベクトル41を更新する。ここでいうスコアとは、「ランキングの特徴量ベクトル」のことをいう。「ランキングの特徴量ベクトル」とは、問い合わせとFAQの質問部分の単語の一致率および問い合わせとFAQの回答部分の単語の一致率に、FAQごとのパラメータベクトルを用いて計算された結果を追加したベクトルである。なお、ランキングの特徴量ベクトルの説明は、後述する。
[ランキングパラメータ学習処理の概要]
ここで、実施例2に係るランキングパラメータ学習処理の概要を、図9を参照して説明する。図9は、実施例2に係るランキングパラメータ学習処理の概要を示す図である。
図9に示すように、ランキングパラメータ学習部31は、学習データ収集部12によって収集された問い合わせに対して、どのFAQが正解らしいかを学習する。ここでは、問い合わせaに対して、FAQ1が正解らしいかが学習される。問い合わせbに対して、FAQ2が正解らいしいかが学習される。
そして、ランキングパラメータ学習部31は、問い合わせごとに、正解のFAQと不正解のFAQのペアの集合を作成する。ここでは、問い合わせaと正解のFAQ1とのペア、問い合わせaと不正解のFAQ2とのペア、問い合わせaと不正解のFAQ3とのペア,・・・が作成される。問い合わせbと正解のFAQ2とのペア、問い合わせbと不正解のFAQ1とのペア、問い合わせbと不正解のFAQ3とのペア,・・・が作成される。
そして、ランキングパラメータ学習部31は、ペアごとに正解のFAQが不正解のFAQよりもスコアが大きくなるようにランキングパラメータベクトル41を更新する。ここでは、ランキングパラメータ学習部31は、問い合わせaに対する正解のFAQ1のスコアが不正解のFAQ2のスコアより大きくなるようにランキングパラメータベクトル41を更新する。さらに、ランキングパラメータ学習部31は、問い合わせaに対する正解のFAQ1のスコアが不正解の別のFAQのスコアより大きくなるようにランキングパラメータベクトル41を更新する。同様に、問い合わせb、問い合わせc、・・・に対しても、ランキングパラメータ学習部31は、正解のFAQのスコアが不正解のFAQのスコアより大きくなるようにランキングパラメータベクトル41の更新を繰り返す。ランキングパラメータ学習部31は、更新結果であるランキングパラメータベクトル41を記憶部20に保存する。
図8に戻って、ランキング出力部14Aは、新規の問い合わせに対して、FAQごとのスコア(ランキングの特徴量ベクトル)およびランキングパラメータベクトル41を用いて、FAQをランキングして出力する。例えば、ランキング出力部14Aは、新規の問い合わせに対して、FAQごとにスコア(ランキングの特徴量ベクトル)を計算する。ランキング出力部14Aは、FAQごとに、スコアとランキングパラメータベクトル41との内積を算出する。算出される内積の値は、新規の問い合わせがどれくらいFAQらしいかを示す値といえる。ランキング出力部14Aは、算出された内積の値を大きい順にソートし、FAQをランキングして出力する。
[ランキングパラメータ学習処理の流れ]
図10Aおよび図10Bは、実施例2に係るランキングパラメータ学習処理の流れの一例を示す図である。なお、ランキングパラメータ学習部31は、問い合わせごとに、正解のFAQと不正解のFAQのペアの集合を作成したものとする。
図10Aに示すように、ランキングパラメータ学習部31は、問い合わせとFAQのペアごとに、問い合わせ、FAQの質問部分およびFAQの回答部分をそれぞれ単語列へ変換する。ここでは、問い合わせaが単語列に変換されている。FAQ1の質問部分(Qの部分)および回答部分(Aの部分)が単語列に変換されている。FAQ2の質問部分(Qの部分)および回答部分(Aの部分)が単語列に変換されている。
ランキングパラメータ学習部31は、問い合わせに対するFAQをスコア(ランキングの特徴量ベクトル)へ変換する。ここでは、一例として、問い合わせaに対するFAQ1がスコア(ランキングの特徴量ベクトル)へ変換される場合を説明する。
まず、ランキングパラメータ学習部31は、FAQ単語特徴量テーブル21から、問い合わせaをFAQ1における特徴量ベクトルに変換する。かかる変換方法は、語彙重要度算出部133によって行われる方法と同様である。ここでは、問い合わせaの単語列a´は、「○○カード 再発行 今 出張 カード 見当たる」である。FAQ1における特徴量ベクトルは、{○○カード:0.3,再発行:0.9,出張:2,見当たる:0.7,・・,単語列a´に対するスコア:0.9}であるとする。
次に、ランキングパラメータ学習部31は、問い合わせaとFAQ1の質問部分の単語の一致率を算出する。この算出結果が、スコア(ランキングの特徴量ベクトル)の第1成分となる。ランキングパラメータ学習部31は、問い合わせaとFAQ1の回答部分の単語の一致率を算出する。この算出結果が、スコア(ランキングの特徴量ベクトル)の第2成分となる。一例として、ランキングパラメータ学習部31は、問い合わせaの単語列a´とFAQ1の質問部分の単語列Q1のコサイン類似度を算出する。ランキングパラメータ学習部31は、問い合わせaの単語列a´とFAQ1の回答部分の単語列A1のコサイン類似度を算出する。ここでは、単語列Q1のコサイン類似度(Qのコサイン類似度)は0.3であるとする。単語列A1のコサイン類似度(Aのコサイン類似度)は0.1であるとする。
次に、ランキングパラメータ学習部31は、問い合わせaのFAQ1における特徴量ベクトルと、FAQ1のパラメータベクトルとの内積を算出する。この算出結果が、スコア(ランキングの特徴量ベクトル)の第3成分となる。算出される内積の値は、問い合わせaがどれくらいFAQ1らしいかを示す値といえる。FAQ1のパラメータベクトルは、FAQパラメータベクトルテーブル22に記憶されている。ここでは、内積の値は0.8であるとする。
この結果、ランキングパラメータ学習部31は、問い合わせaに対するFAQ1のスコア(ランキングの特徴量ベクトル)を取得する。ここでは、スコア(ランキングの特徴量ベクトル)は、Qのコサイン類似度として0.3,Aのコサイン類似度として0.1,内積として0.8となる。
同様にして、ランキングパラメータ学習部31は、問い合わせごとに作成された正解のFAQとのペアおよび不正解のFAQとのペアについて、問い合わせに対するFAQをスコア(ランキングの特徴量ベクトル)へ変換する。
図10Bに示すように、ランキングパラメータ学習部31は、問い合わせに対する2つのFAQのスコアの差を計算し、正解のFAQのスコアが不正解のFAQのスコアよりも大きくなるようにランキングパラメータベクトル41を更新する。ここでは、一例として、ランキングパラメータ学習部31は、問い合わせaに対するFAQ1およびFAQ2の2つのスコアを用いて、ランキングパラメータベクトル41を更新する場合を説明する。問い合わせaに対してFAQ1は、正解であるとする。問い合わせaに対してFAQ2は、不正解であるとする。
まず、ランキングパラメータ学習部31は、問い合わせaに対する正解のFAQ1のランキングの特徴量ベクトルφr(FAQ)が不正解のFAQ2のランキングの特徴量ベクトルφr(FAQ)よりも大きくなるように差を計算する。ここでは、φr(FAQ)は、{Qのコサイン類似度:0.3,Aのコサイン類似度:0.1,内積:0.8}であるとする。φr(FAQ)は、{Qのコサイン類似度:0.2,Aのコサイン類似度:0.4,内積:0.2}であるとする。すると、φr(FAQ)からφr(FAQ)を引いた差は、{Qのコサイン類似度:0.1,Aのコサイン類似度:−0.3,内積:0.6}と算出される。
次に、ランキングパラメータ学習部31は、計算された差をランキングパラメータベクトル41に加算して、ランキングパラメータベクトル41を更新する。
同様にして、ランキングパラメータ学習部31は、問い合わせaに対する正解のFAQ1のスコアが問い合わせaに対する他の不正解のFAQのスコアよりも大きくなるように、ランキングパラメータベクトル41を更新し続ける。ランキングパラメータ学習部31は、他の問い合わせに対する正解のFAQのスコアが他の問い合わせに対する不正解のFAQのスコアよりも大きくなるように、ランキングパラメータベクトル41を更新し続ける。そして、ランキングパラメータ学習部31は、ランキングパラメータベクトル41を獲得する。すなわち、ランキングパラメータ学習部31は、特徴量の差が正に大きい程、正解のFAQを紐付けるための重要な特徴になるとして、特徴量の重みを正の方向に更新し、特徴量の差が負に大きい程、特徴量の重みを負の方向に更新する。
これにより、ランキングパラメータ学習部31は、FAQごとのパラメータベクトルを用いて計算された内積をランキングパラメータベクトル41に追加することで、問い合わせと正解のFAQの単語が一致しなくても、正解のFAQを上位にランキングできる。すなわち、ランキングパラメータ学習部31は、ランキング学習の特徴量に加えてFAQごとの語彙の重要度を用いて計算された結果を利用することで、FAQのランキングの精度を向上できる。なお、学習データがなく、FAQらしさを内積で表現できないFAQがあっても、ランキングパラメータ学習部31は、他の特徴量(ランキング学習の特徴量)を利用してFAQをランキングできる。
[ランキング出力処理の流れ]
図11は、実施例2に係るランキング出力処理の流れの一例を示す図である。図11に示すように、ランキング出力部14Aは、新規問い合わせを入力し、FAQのランキングを出力する。
ランキング出力部14Aは、新規問い合わせを単語分割して単語列に変換する。ランキング出力部14Aは、新規問い合わせの単語列を、FAQ単語特徴量テーブル21の各FAQに対応する単語の特徴量を用いて、FAQごとの特徴量ベクトルに変換する(S201)。ランキング出力部14Aは、FAQごとに、変換された特徴量ベクトルとパラメータベクトルとの内積を算出する(S202)。
ランキング出力部14Aは、新規問い合わせの単語列とFAQ1の質問部分の単語列のコサイン類似度および新規問い合わせの単語列とFAQ1の回答部分の単語列のコサイン類似度を計算する(S203)。ランキング出力部14Aは、FAQ1をスコア(ランキングの特徴量ベクトル)に変換する。すなわち、ランキング出力部14Aは、S203で計算されたFAQ1の質問部分のコサイン類似度、S203で計算されたFAQ1の回答部分のコサイン類似度およびS202で計算された内積をFAQ1のスコアとする。
ランキング出力部14Aは、FAQ1のランキングの特徴量ベクトルとランキングパラメータベクトル41との内積を計算する(S204)。
同様に、ランキング出力部14Aは、他のFAQについても、FAQのランキングの特徴量ベクトルとランキングパラメータベクトル41との内積を計算する(S201〜S204)。
ランキング出力部14Aは、FAQごとに算出された内積の値を大きい順にソートし(S205)、FAQをランキングして出力する(S206)。これにより、ランキング出力部14Aは、新規問い合わせとFAQの語彙が一致しなくても、新規問い合わせに対して適切なFAQを出力できる。
[情報処理のフローチャート]
図12は、実施例2に係る情報処理のフローチャートを示す図である。なお、実施例2に係る情報処理のS11〜S21は、実施例1に係る情報処理のフローチャートと同様であるので、簡略して説明する。
図12に示すように、閾値設定部11は、ユーザから閾値を受け取ると、受け取った閾値を記憶部20に設定する(ステップS11)。学習データ収集部12は、回答済みの問い合わせ履歴およびFAQを記憶部20から読み出し、問い合わせおよびFAQの回答部分の類似度を元に、問い合わせの質問とFAQのペアを収集する(ステップS12)。
続いて、単語特徴量算出部131は、FAQごとに、ペアになる問い合わせをグループ化する(ステップS13)。単語特徴量算出部131は、FAQごとに、グループに含まれる単語の特徴量を計算し、FAQ単語特徴量テーブル21に保存する(ステップS14)。
続いて、単語列特徴量算出部132は、FAQごとに、問い合わせの単語列に対する特徴量を計算し、FAQ単語特徴量テーブル21に保存する(ステップS15)。例えば、単語列特徴量算出部132は、問い合わせから抽出した単語列と、FAQ単語特徴量テーブル21のFAQごとの単語の特徴量を用いて、各FAQにおける問い合わせの単語列に対する特徴量を計算する。
続いて、語彙重要度算出部133は、FAQを選択する(ステップS16)。語彙重要度算出部133は、選択したFAQとペアになる問い合わせの第1グループとペアにならない第2グループに分ける(ステップS17)。
そして、語彙重要度算出部133は、第1グループおよび第2グループのそれぞれの問い合わせの単語列を、それぞれ選択FAQの特徴量ベクトルへ変換する(ステップS18)。そして、語彙重要度算出部133は、問い合わせの単語列が変換された特徴量ベクトルを用いてパラメータベクトルを計算する(ステップS19)。
そして、語彙重要度算出部133は、全てのFAQを選択したか否かを判定する(ステップS20)。全てのFAQを選択していないと判定した場合には(ステップS20;No)、語彙重要度算出部133は、次のFAQを選択すべく、ステップS16に移行する。
一方、全てのFAQを選択したと判定した場合には(ステップS20;Yes)、語彙重要度算出部133は、FAQごとに計算されたパラメータベクトルをFAQパラメータベクトルテーブル22に保存する(ステップS21)。
ランキングパラメータ学習部31は、全ての問い合わせに対して正解のFAQと不正解のFAQを学習する(ステップS31)。
続いて、ランキングパラメータ学習部31は、問い合わせを選択する(ステップS32)。
ランキングパラメータ学習部31は、選択した問い合わせに対して正解のFAQと不正解のFAQとをそれぞれランキングの特徴量ベクトルへ変換する(ステップS33)。例えば、ランキングパラメータ学習部31は、FAQ単語特徴量テーブル21から、選択した問い合わせを正解のFAQにおける特徴量ベクトルに変換する。ランキングパラメータ学習部31は、選択した問い合わせと正解のFAQの質問部分の単語の一致率(コサイン類似度)を算出する。ランキング学習部31は、選択した問い合わせと正解のFAQの回答部分の単語の一致率(コサイン類似度)を算出する。ランキングパラメータ学習部31は、選択した問い合わせの正解FAQにおける特徴量ベクトルと、正解FAQのパラメータベクトルとの内積を算出する。この結果、ランキングパラメータ学習部31は、選択した問い合わせに対する正解FAQのランキングの特徴量ベクトルを取得する。ランキングパラメータ学習部31は、不正解のFAQについても同様に、選択した問い合わせに対するFAQのランキングの特徴量ベクトルを取得する。
ランキングパラメータ学習部31は、正解のFAQと不正解のFAQとのランキングの特徴量ベクトルの差を計算する(ステップS34)。ランキングパラメータ学習部31は、正解のFAQのランキングの特徴量ベクトルが不正解のFAQのランキングの特徴量ベクトルよりも大きくなるように、ランキングパラメータベクトル41を更新する(ステップS35)。
そして、ランキングパラメータ学習部31は、全ての問い合わせを選択したか否かを判定する(ステップS36)。全ての問い合わせを選択していないと判定した場合には(ステップS36;No)、ランキングパラメータ学習部31は、次の問い合わせを選択すべく、ステップS32に移行する。
一方、全ての問い合わせを選択したと判定した場合には(ステップS36;Yes)、ランキングパラメータ学習部31は、ランキングパラメータベクトル41を記憶部20に保存する(ステップS37)。そして、情報処理が終了する。
[実施例2の効果]
上記実施例2によれば、情報処理装置1は、それぞれのFAQにおけるパラメータベクトルを用いて計算された結果をランキング学習のランキングパラメータベクトル41に追加する。かかる構成によれば、情報処理装置1は、新規の問い合わせと正解のFAQの単語が一致しなくても、正解のFAQを上位にランキング出力することができる。
[その他]
なお、図示した情報処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、単語特徴量算出部131と単語列特徴量算出部132とを1つの部として統合しても良い。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報処理装置1と同様の機能を実現する情報処理プログラムを実行するコンピュータの一例を説明する。図13は、情報処理プログラムを実行するコンピュータの一例を示す図である。
図13に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、情報処理プログラム205aおよび情報処理関連情報205bを記憶する。
CPU203は、情報処理プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。情報処理関連情報205bは、FAQ単語特徴量テーブル21およびFAQパラメータベクトルテーブル22に対応する。そして、例えばリムーバブルディスク211が、情報処理プログラム205aなどの各情報を記憶する。
なお、情報処理プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから情報処理プログラム205aを読み出して実行するようにしても良い。
1 情報処理装置
10 制御部
11 閾値設定部
12 学習データ収集部
13 語彙重要度学習部
131 単語特徴量算出部
132 単語列特徴量算出部
133 語彙重要度算出部
14,14A ランキング出力部
20 記憶部
21 FAQ単語特徴量テーブル
22 FAQパラメータベクトルテーブル
31 ランキングパラメータ学習部
41 ランキングパラメータベクトル

Claims (7)

  1. コンピュータに、
    複数の問合せ項目を、類似する問合せ項目グループと類似しない問合せ項目グループとにグループ化し、
    前記類似する問合せ項目グループに出現する単語ごとに特徴量をそれぞれ算出し、
    前記特徴量を用いて、前記類似する問合せ項目グループから抽出される第1単語列を第1特徴量ベクトルに変換し、前記類似しない問合せ項目グループから抽出される第2単語列を第2特徴量ベクトルに変換し、
    前記第1特徴量ベクトルおよび前記第2特徴量ベクトルに基づいて、前記単語ごとの重要度を示すパラメータベクトルを更新する
    処理を実行させることを特徴とする情報処理プログラム。
  2. 前記更新する処理は、前記第1単語列における前記第1特徴量ベクトルのそれぞれの特徴量を前記パラメータベクトルの同一の位置の成分にプラスし、前記第2単語列における前記第2特徴量ベクトルのそれぞれの特徴量を前記パラメータベクトルの同一の位置の成分にマイナスして前記パラメータベクトルを更新する
    処理を実行させることを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記第1単語列および前記第2単語列に対する特徴量をそれぞれ算出し、
    前記変換する処理は、前記第1単語列における前記第1特徴量ベクトルに前記第1単語列に対する特徴量を追加し、前記第2単語列における前記第2特徴量ベクトルに前記第2単語列に対する特徴量を追加する
    処理を実行させることを特徴とする請求項1または請求項2に記載の情報処理プログラム。
  4. 新規の問合せから抽出される単語列を、単語ごとのFAQ(Frequently Asked Questions)に対する特徴量を用いて、それぞれのFAQにおける特徴量ベクトルに変換し、
    それぞれのFAQについて、変換された特徴量ベクトルと、前記パラメータベクトルとの内積を算出し、
    算出された内積の値に基づいて、それぞれのFAQのランキングを出力する
    処理を実行させることを特徴とする請求項1に記載の情報処理プログラム。
  5. 前記パラメータベクトルを用いて計算された結果をランキング学習のパラメータベクトルに追加する
    処理を実行させることを特徴とする請求項1に記載の情報処理プログラム。
  6. 複数の問合せ項目を、類似する問合せ項目グループと類似しない問合せ項目グループとにグループ化するグループ化部と、
    前記類似する問合せ項目グループに出現する単語ごとに特徴量をそれぞれ算出する算出部と、
    前記特徴量を用いて、前記類似する問合せ項目グループから抽出される第1単語列を第1特徴量ベクトルに変換し、前記類似しない問合せ項目グループから抽出される第2単語列を第2特徴量ベクトルに変換する変換部と、
    前記第1特徴量ベクトルおよび前記第2特徴量ベクトルに基づいて、前記単語ごとの重要度を示すパラメータベクトルを更新する更新部と、
    を有することを特徴とする情報処理装置。
  7. コンピュータが、
    複数の問合せ項目を、類似する問合せ項目グループと類似しない問合せ項目グループとにグループ化し、
    前記類似する問合せ項目グループに出現する単語ごとに特徴量をそれぞれ算出し、
    前記特徴量を用いて、前記類似する問合せ項目グループから抽出される第1単語列を第1特徴量ベクトルに変換し、前記類似しない問合せ項目グループから抽出される第2単語列を第2特徴量ベクトルに変換し、
    前記第1特徴量ベクトルおよび前記第2特徴量ベクトルに基づいて、前記単語ごとの重要度を示すパラメータベクトルを更新する
    各処理を実行することを特徴とする情報処理方法。
JP2016036283A 2016-02-26 2016-02-26 情報処理プログラム、情報処理装置および情報処理方法 Pending JP2017151926A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016036283A JP2017151926A (ja) 2016-02-26 2016-02-26 情報処理プログラム、情報処理装置および情報処理方法
US15/398,077 US20170249320A1 (en) 2016-02-26 2017-01-04 Computer-readable recording medium, information processing apparatus, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016036283A JP2017151926A (ja) 2016-02-26 2016-02-26 情報処理プログラム、情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JP2017151926A true JP2017151926A (ja) 2017-08-31

Family

ID=59678942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016036283A Pending JP2017151926A (ja) 2016-02-26 2016-02-26 情報処理プログラム、情報処理装置および情報処理方法

Country Status (2)

Country Link
US (1) US20170249320A1 (ja)
JP (1) JP2017151926A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020004401A1 (ja) * 2018-06-29 2020-01-02 日本電信電話株式会社 回答文選択装置、方法、およびプログラム
JP2020030764A (ja) * 2018-08-24 2020-02-27 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
WO2020095776A1 (ja) * 2018-11-06 2020-05-14 株式会社 東芝 知識情報作成支援装置
JP7319478B1 (ja) 2023-03-20 2023-08-01 トランス・コスモス株式会社 情報処理方法、情報処理システムおよびプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922696B2 (en) * 2017-11-14 2021-02-16 Sap Se Smart agent services using machine learning technology
CN110275946A (zh) * 2019-05-14 2019-09-24 闽江学院 一种faq自动问答方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020004401A1 (ja) * 2018-06-29 2020-01-02 日本電信電話株式会社 回答文選択装置、方法、およびプログラム
JP2020004224A (ja) * 2018-06-29 2020-01-09 日本電信電話株式会社 回答文選択装置、方法、およびプログラム
JP2020030764A (ja) * 2018-08-24 2020-02-27 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
JP7119769B2 (ja) 2018-08-24 2022-08-17 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
WO2020095776A1 (ja) * 2018-11-06 2020-05-14 株式会社 東芝 知識情報作成支援装置
JP2020077091A (ja) * 2018-11-06 2020-05-21 株式会社東芝 知識情報作成支援装置
JP7267714B2 (ja) 2018-11-06 2023-05-02 株式会社東芝 知識情報作成支援装置
JP7319478B1 (ja) 2023-03-20 2023-08-01 トランス・コスモス株式会社 情報処理方法、情報処理システムおよびプログラム

Also Published As

Publication number Publication date
US20170249320A1 (en) 2017-08-31

Similar Documents

Publication Publication Date Title
JP2017151926A (ja) 情報処理プログラム、情報処理装置および情報処理方法
CN109190111A (zh) 一种文档正文关键词提取方法及装置
KR101220557B1 (ko) 사람의 활동 지식 데이터베이스를 이용한 모바일 어플리케이션 검색 방법 및 시스템
CN108776684A (zh) 知识图谱中边权重的优化方法、装置、介质、设备及系统
CN110390106B (zh) 基于双向关联的语义消歧方法、装置、设备及存储介质
JP6722615B2 (ja) クエリクラスタリング装置、方法、及びプログラム
JP2018045537A (ja) 検索プログラム、検索装置および検索方法
JP2019082931A (ja) 検索装置、類似度算出方法、およびプログラム
CN112612875B (zh) 一种查询词自动扩展方法、装置、设备及存储介质
JP2018185771A (ja) 文ペア分類装置、文ペア分類学習装置、方法、及びプログラム
JP6819420B2 (ja) 学習プログラム、学習方法および学習装置
US9058328B2 (en) Search device, search method, search program, and computer-readable memory medium for recording search program
Zhao et al. Interactive attention networks for semantic text matching
JP6340351B2 (ja) 情報検索装置、辞書作成装置、方法、及びプログラム
Minkov et al. Learning graph walk based similarity measures for parsed text
CN111339778B (zh) 文本处理方法、装置、存储介质和处理器
CN117453861A (zh) 基于对比学习与预训练技术的代码搜索推荐方法和系统
JP2005149014A (ja) 文書関連語彙獲得方法及び装置及びプログラム
JP2021179932A (ja) 文書処理装置、文書処理方法、及び、プログラム
JP5175585B2 (ja) 文書処理装置、電子カルテ装置および文書処理プログラム
JP5008137B2 (ja) 単語ベクトル生成装置、単語ベクトル生成方法、プログラムおよびプログラムを記録した記録媒体
JP6976178B2 (ja) 抽出装置、抽出方法、及び抽出プログラム
JP6495206B2 (ja) 文書概念ベース生成装置、文書概念検索装置、方法、及びプログラム
JP2020021343A (ja) 解析装置、解析方法及びプログラム
JP4567025B2 (ja) テキスト分類装置、テキスト分類方法及びテキスト分類プログラム並びにそのプログラムを記録した記録媒体