2016年10月16日(日曜)
腎細胞がんでの腎臓部分切除手術から、1年6ヶ月です。
※1) 2016.10.17 05:40 Skypeのステートに関する記述を追記
※2) 2016.10.19 05:20 Bot関係ログの関連リンク誤記訂正
きょうの横浜は、晴れでした。
― ― ― ― ― ― ― ― ― ―
[組織・人名に反応するチャットbot改]
組織名や人名は、日本語形態素解析すると品詞が特定できずに「未知語」として識別されることが多いです。
組織名や人名、地名などの「なまえ」は、人間が決めたものであって、きちんと辞書を作って検索しないと、100%の正解率はありえません。
前回のブログ記事では、NTTレゾナント社の gooラボに、固有表現抽出APIを使わせていただいて、組織・人名に反応するチャットbotを、Azureクラウド上に構築し、Microsoft Bot Frameworkに公開して、デモサイトを作って、実際に動かせるようにしました。
仕様などは、前回のブログを参照願います。
↓
http://emiclock.blog.so-net.ne.jp/2016-10-10
きょうは、Wikipediaに登録されていない企業名、人名については、リンクをクリックしてから、ガッカリするのではなく、自動的にコンテンツが存在するかチェックし、存在しない場合は、最初からハイパーリンクをはらないことにしました。
人名についても、組織名と同じ形式での応答とし、Wikipediaに登録されていない場合にかぎり、ナレッジから応答文を生成するようにしました。
おおまかな、会話プロセスフローは、下図の通りです。
実際にAzureクラウド上に構築したデモサイトに、Windows 10のIE 11でアクセスし、Web Chatコネクタを使って会話した画面が以下になります。
上記画面例では、「山田製作所」は、Wikipediaには項目が登録されていませんので、そのことを自動的に調べて、最初からハイパーリンクを表示しないようになっているのが、お分かりいただけると思います。
続けて、人名への反応、人名と組織名が混在した場合の会話例を以下に示します。
Wikipediaに項目がある人名のみ、ハイパーリンクが表示され、そうでない「佐山香織」「北山美香」は、ナレッジから応答文を生成しています。
マリコ様の例は、組織名と人名の組み合わせを、正しく認識しています。
ほらね?!
これなら、何かに使えそうでしょう。
チャットbotのお試しは、こちらです。
↓
https://microsoft-apiappf0cdfce67ee04f7eac082f57026e6c0c.azurewebsites.net/
LINEができる知識があれば、使えますので、5分ぐらい、お試しください。
システムは、Microsoft Azureクラウド上に構築しています。
セキュリティのために、伝送路はSSLで暗号化しています。
[MS Bot Framework 関連ブログ]
・Microsot Bot Framework 3.0で 簡単にbotが作れる!
・Microsot Bot Framework 3.0 と MeCabで なんちゃってbotを作る
・Microsot Bot Framework 3.0で もっとbotぽいbot試作
・Microsot Bot Framework 3.0で LUISが使えず 自作のIRC会話bot移植
・Microsot Bot Framework 3.0で 最新のニュースを取得するbotを作る
・Microsot Bot Framework 3.0で ニュースbot公開途中でエラーのち成功
・Microsot Bot Framework 3.0で ニュースbotフィジビリティスタディ終了
・Microsoft LUISの日本語 自然言語理解を試してみた
・Microsot Bot Framework 3.0で もっとbotぽいbot試作のお試しサイト
・Microsot Bot Framework 3.0で ニュースbotデモサイト復活 (※1)
・Microsot Bot Framework 3.0で 飲み会調整botデモサイト、勤怠連絡bot (※2)
・MS Bot Framework 3.0 + goo APIで組織・人名に反応するチャットbot (※3)
・MS Bot FW 3.0 + goo APIで組織・人名に反応チャットbot改+Skype接続 (※3)
※1)ニューストピックチャットbotのお試しは、こちらです
https://microsoft-apiappe1511ed89a014eff94d98cd9ffab6c50.azurewebsites.net/
※2)飲み会調整チャットbotのお試しは、こちらです
https://microsoft-apiapp937554448978497cb48a05cb30f2eb14.azurewebsites.net/
※3)組織・人名に反応する雑談チャットbotのお試しは、こちらです
https://microsoft-apiappf0cdfce67ee04f7eac082f57026e6c0c.azurewebsites.net/
― ― ― ― ― ― ― ― ― ―
[Skypeコネクタでのテスト結果]
いままでは、Web Chatコネクタを使い、Webブラウザでテストしてきました。
この中で、前述のテストサイトで、iPhone上の Safariや ChromeなどのWebブラウザでは、正しく会話の状態を維持できない現象が発生し、現象をGitHubに上げたところ、「BUG」判定でした。(現在も、継続対応中)
本件、後日のブログで取り上げたいと考えています。
さて、標準コネクターには、Web Chatの他に、Skypeコネクター、Facebook Messengerコネクターなどがありますが、きょうは、Skypeコネクターを試しました。
まずは、Windows 10の Skypeから チャットBotに接続してみました。
Web Chatと違い、URLはなくて、Botの「ともだち」につないで、LINEのように会話します。
Skypeコネクタは、簡単に動かせました。
でも、改行されないバグがありますね。
ハイパーリンクは、ちゃんとWikipediaへ飛びました。
次に、iPhone 7の Skypeアプリから接続してみました。
やはり、改行されません。
それはまぁ、小さなバグなんですが、Wikipediaへのハイパーリンクが、すべてエラーページにジャンプします。
Skypeはだめ。
いくらベータ版でも、基本的なテストやってないんじゃないのかな。
ボランティアのベータテスターですな、これじゃ。
やれやれ、また、GitHubに バグ報告を issueするのか・・・
[2016/10/17 05:40 Skypeのステートに関する記述を追記]
Web ChatコネクタとSkypeコネクタでは、ステートのライフサイクルに以下の相違点がありますので、コード記述時にコネクタの違いを意識する必要があります。
(1) Web Chat
いわゆる、HTTPセッションと同じライフサイクルでステートが維持される。
接続時にセッションが作られ、切断時まで維持され、その後破棄される。
再接続すると、ステートがリセット。
(2) Skype
LINEなどと同様、セッションの概念がなく、サインインからサインアウトまで、ステートが永続的に維持される。
通常は、サインアウトしないので、最初に作られたステートは、何日間(何ヶ月、何年)でも維持(永続化)され、破棄されない。
― ― ― ― ― ― ― ― ― ―
[追伸]
ポケモンは、もう、集めてなくて、ジム戦ばかりやっています。
だから、お昼は、マクドナルドです。
※ポケモン GO、機械学習、AIチャットbot関係のブログは、コメント欄を閉じさせていただいております