docomoの雑談対話APIのエンドポイントが変わって動かなくなっていた件

日本語でそれっぽい雑談対話を生成してくれてチャットボットとかで使われているであろうdocomoの雑談対話APIにアップデートがあったらしい。 よって今まで動いていたエンドポイントから404が返ってくるようになってしまった。 これからは/naturalChatting/v1/dialogueで終わるエンドポイントへ切り替えなければならないのと、 今まではAPIKEYを指定するだけでリクエストができていたがこれからは事前にユーザー登録を行ってappIdを入手する必要がある。 ということでこちらに新しい仕様があるのでPythonでサンプルを書いてみた import requests import os import json docomo_key = “{ docomo api key }” def registration(config_path,key): regist = “https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/registration?APIKEY={key}”\ .format(key=key) data = { “botId”: “Chatting”, “appKind”: “Smart Phone” } res = requests.post(regist, json=data) res_json = res.json() with open(config_path, “w”) as f: json.dump(res_json, f) def conversation(key,app_id,speech): url = “https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY={key}” \ .format(key=key) data…

[論文読み]ルールベース発話生成と統計的発話生成の融合に基づく対話システムの構築

論文 28回 人工知能学会 年次会 (2014) 目黒 豊美ら NTTコミュニケーション科学基礎研究所ほか https://kaigi.org/jsai/webprogram/2014/pdf/752.pdf 概要 雑談対話システムにおける発話生成においては、ルールベースで発話を生成するとユーザーの欲求に正確に応答できる可能性があるがドメイン外の発話になった場合に対応できない恐れがある。この研究ではルールベースの対話発話生成手法の比較を行うとともに、ルールベースと統計ベースの発話手法の適切な切り替えをする識別器を作成している。 ルールベース手法性能検証実験 実験用にコーパスを2つ用意している。 雑談対話コーパス Twitterから収集したコーパス ルールベース発話生成に用いる特徴量は発話中の自立語(名詞、動詞、形容詞、終助詞、連体詞など)以外をワイルドカードとしたパターンマッチルールを作成する ルールベースの比較実験をするために4つの発話生成手法を提案 ルールベース(ルール) TF-IDFで最も近いするルールを選択 文節ペアの係り受けを利用した発話生成(統計) 係り受け構造を統計的に抽出し、発話を生成? 単語間の係り受けを利用した発話生成(統計) 単語間の係り受け関係をテンプレートに入れて発話生成 IR-status Twitterの発話に紐づいた返信文を発話とする IR-response Twitterの返信文を発話文として検索する 結果、入力文がコーパス内の発話だった場合、ルールベースの評価が高いがTwitterコーパスのようなオープンな入力文の場合、ルールベースは評価が下がった。 この実験の結論としてはルールベースで応答すべき時はルールベースを使うべきであるが、それ以外の場合は別の手法を使う必要があるということ。 ルールベースと統計ベースの融合 ルールベースと統計ベースを融合するために、ルールベースで応答すべきか否かを判定する識別器を作る。 以下の特徴量をSVMでルールベースを使用すべきか否か識別する。 品詞、語彙体系、単語unigram ルールとの一致度 パープレキシティ 結果、雑談コーパスでは78.7%、Twitterコーパスでは53.4%の精度となった。