2016年11月25日(金)
きょうの横浜は、よく晴れて、放射冷却で冷え込みました。
※ ITの難しい話(チャットボット)が延々と続きますので、興味がない方は、スルーして、ポチっとしてください。
― ― ― ― ― ― ― ― ― ―
[飲み会調整botの語句類似度計算による類似語入力]
現在、このチャットBotは、PoCステータスです。
世の中には、「多様な入力方法がウリです」というチャットBotもあります。
長いアルファベットの英語のスペルや、長い漢字交じりのお店の名前や、会社の名前や、人の名前を、正確に入力するのは、手間がかかりますし、間違いえることもあります。
そこで、そういったケースで、簡単に固有値表現(会社名や、人名、地名など)を入力するときに便利な方法あります。
さっそく、4時間ぐらいで、飲み会調整botに、語句類似度計算による類似語入力対応を実装して、試してみました。
お台場の「Trattoria Pizzeria LOGIC」というお店で、19:00から誕生会がしたいので、そのように日本語自然文入力しています。
これは、形態素解析と、意味解析を行っています。
「ぐるなび」で人気のお台場のお店のリストが箇条書きで表示され、お店のサイトへのリンクも表示されます。
ここで、アルファベットの お店の名前を正確に打ち込むのは難しいので、番号で「3」と入力すればよいのですが、一部の語の読み方が分かれば、「カタカナ」や、「ひらがな」などで、お店の名前の一部を入力すれば、お店を選ぶことができます。
これは、辞書を作って変換するとか、今どき、そんなレガシーな処理をやっていません。
お店の名前を「語」に分解し、しゃべるときの「音」の類似度を計算して、数値計算で判定しています。
「Trattoria」は、「とらっとりあ」と発音するので、「トラットリア」と入力すれば、音が同じなので、計算で同定できます。
[“Trattoria”,”トラットリア”]
↓ 読み方の類似度計算
“score”: 0.7536330573456226
スコアは、0.0 ~ 1.0で表現されますので、0.753は、高確率で同じものと認識します。
アルファベットだけでなく、漢字も、「塚田農場」を「つかだのうじょう」と入力しても、同じことです。
では、ステートフル会話セッションを、マジックワード「キャンセル」で取り消して、こんどは、
アキバの「GUNDAM Cafe」でオフ会を設定してみます。
こんどは、アキバのお店のリストに変わります。
そして、「ガンダム」と入力すれば、「GUNDAM Cafe」と識別します。
読み方の音が同じだからです。
【類似度の比較】
店名 | 入力 | 類似度 |
ふらんす亭 | ふらんすてい | 0.44123316775998394 |
猫カフェ | ねこかふぇ | 0.6703200460356393 |
GUNDAM | ガンダム | 0.5986132188802234 |
bonbori | ぼんぼり | 1.0 |
bonbori | bonjiri | 0.751477293075286 |
bonbori | GUNDAM | 0.42437284567695 |
ここで、やっかいなのは、「音 = 読み方の類似度」の計算だけでは、「bonbori」と「GUNDAM」が、わりと近いスコアになることです。
例がよくないですが、タモリさんの番組の『そら耳アワー』という現象のようなものです。(ゴニョニョ)
しかし、スコアのボーダーラインを上げると、「ルーナ」を「ニーナ」や「ネーナ」と、うろ覚えしていた時に、拾えなくなってしまいます。
さて、どうする?!
そこで、、、
同じ文字種の語に対しては、『レーベンシュタイン距離』を計算します。
↓
https://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%BC%E3%83%99%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E8%B7%9D%E9%9B%A2
レーベンシュタイン距離による類似性判定は、DNA配列同士の類似性を判断するために応用されている方法です。
では、上記の、うろ覚えの店名を入力しても、類似度のボーダーラインを超えていれば、店名を認識できるか試します。
ここでは、「ダイニング&カフェ Luna ルーナ」を、類似した「ニーナ」と入力してみます。
上記のように、店名を間違って覚えていても、うろ覚えでも、読み違えても、入力し間違えても、ある程度類似していれば、店名を認識することができます。
会社名や、人名、地名など、固有値表現は、うろ覚えだったりして、正確に入力するのが難しいでしょう。
何でもかんでも、DBに辞書を作ればいいってもんじゃないんですよ。 ←バカのひとつ覚え
誰がDBの辞書をメンテナンスするんですか!?
現在のPoC用のシステム構成ですが、さくらのVPS上のApacheから、独自ドメインを取得して、 SSL/TLSで配信しています。
その後ろで動くチャットBotは、Microsoft Azureのサービス(商用版)を従量課金で使っています。
Windows系PCの方、Android系スマホの方は、以下の URLでデモを動かすことができます。
↓
・2016.11.26 MS Bot Framework 3.0で 飲み会調整botのiPhoneからのSkypeコネクター対応
※Apple系(OS X、iOS)の Safariなどは、Microsoftのバグのため、正しく動作しません。
とりあえず、上記のWebチャット画面を表示して、「hi」と打ち込んでください。
あとは、分かります。
※Web Chatコネクターを使っていますので、HTTPSセッションごとにパーソナルエクスペリエンスをデフォルト学習状態にしています。
※Skype、Lync、Facebook Messenger等では、ユーザごとにパーソナルエクスペリエンスを永続化できます。
[MS チャットBot 実証実験 関連ブログ]
・2016.10.30 Microsot Bot Framework 3.0で 飲み会調整botデモサイト改二
・2016.11.04 Microsot Bot Framework 3.0で ニュースbotデモサイト改二
・2016.11.05 Microsot Bot Framework 3.0で 飲み会調整botデモサイト改二 再始動
・2016.11.12 MS Bot Framework 3.0で 飲み会調整botのパーソナライゼーション
・2016.11.18 MS Bot Framework 3.0で 飲み会調整botのリスト並べ替えパーソナライズ
・2016.11.20 MS Bot Framework 3.0で 飲み会調整botの日本語自然文入力
・2016.11.25 MS Bot Framework 3.0で 飲み会調整botの語句類似度計算による類似語入力
― ― ― ― ― ― ― ― ― ―
[追伸]
今朝は晴れましたが、放射冷却で、早朝は、冷えました。
今朝の富士山です。
とはいっても、横浜の海沿いは、気温 7℃です。(冷蔵庫程度)
気温 2℃とか、3℃のところもある中で、暖かいほうかと思います。
まだ、ウールやアンゴラのコートではなく、ナイロンコートでいけます。
土曜日は、朝から出かけますので、ブログ訪問が、夜になります。
ヴェーダが、こう判断している。
オリジナルの太陽炉=GNドライブを持たざる者は、イノベイターにはなれない。