非タスクの対話システムっていうのは普通のチャット
手で作ったルールベース方式のは、古くは
the study of natural language communication between man and machine, Communications of the ACM, Vol. 9, No. 1, pp. 36–45 (1966) - A.L.I.C.E [Wallace 09] Wallace, R.: The anatomy of ALICE, Parsing the Turing Test, pp. 181–210 (2009)
Jabberwacky は、 応答事例のデータベースを大きく持っておき、
とする。「質の高い対話ログ」を大量に持っておくことが必要
最近で言うと、Twitter上のやりとりを用いる手法がごまんと提案されている
e.g. http://www.isi.imi.i.u-tokyo.ac.jp/publication/2012/IPSJ2012_bessho.pdf
この論文は、では質の高い発話文をいかに獲得するか、について述べる
受け答えじゃなくて、
何か話題語が入力された時に、それについての何でもない発言をさせたい
特に四番目を鑑みるに、 著者らは Jabberwacky への利用を考えていることがわかる。
先の4の質の高さ、に当てはまるかどうかの 正解データ、不正解データを作って、 分類器を作る
Twitterからの文であって 話題語を含み、単語が5以上30未満で、@を含まない
次のルール全てに当てはまるものを、正解とする
話題語と他の名詞が連続しないこと
これはたぶん、別に複合語を示していて話題語とは関係がない
(ex. (アメリカ, アメリカザリガニ))
人名、代名詞が含まれないこと
先頭の単語が助詞、助動詞、接続詞ではないこと
末尾の2単語が
*
-名詞となってるものは何かおかしいからダメ。
ただし、
はセーフらしいです
文末以外に 助詞-助動詞 が含まれないこと
これは句読点がおかしい
時間、数値を含まないこと
比較対象の不十分な比較を含まないこと
/(ほう|方)が/
にマッチして、 /より.*(ほう|方)が/
にマッチしないものは削除する
以上のルールでも不正解なのに正解とされるものを除外するために、 点数付けを行う。
助詞以外の単語 \(w\) について、
\(w\) の点数を
\(f(w) = \frac{n_1}{N_1} / \frac{n_0}{N_0}\)
とする。つまんない設定だ。
0より大きい実数であって、正解に多く見られるものは、 \(1.0\) を超える
ただし、稀な語 (訓練事例中で頻度が \(m\) 未満; \(m=5\) ) は無視して 点数を与えない。
助詞の前後の1語ずつをとった 3-gram \(x\) を見る。 ここで BOSとEOSを考慮する。
この点数 \(f(x)\) は先と同じ式で出す。
\(\prod \max(\alpha, f(x))\)
where \(\alpha = 1.4\)
文の点数がある閾値 \(\theta\) ( \(\theta = 1.0\) ) 以下のものは除外して不正解とする
最強にどうでもいい話
対話システムだから優しい口調にしたい
$
→ ですね$
→ ですよね$
→ でしょうか$
→ 好きなんですよね$
→ 嫌いなんですよね$
→ 好きなんでしょうか$
→ 嫌いなんでしょうね$
→ +ですよね$
→ +でしょうか$
→ +でしょうか$
→ 思いません$
→ +ません$
→ ないですよね$
→ ないでしょうか|
べき |
だけ |
のみ |
たい |
つもり) $
→ +です|
べき |
だけ |
のみ |
たい |
つもり)か $
→ +でしょうか普通に良い