[US スキル] Alexa petit hack. Amazon.LITERAL を Amazon.Bookで代替する + [JPスキル] Synonyms を使ってシンプルに名前を認識させよう

この投稿は、

JAWS-UG KOBE Alexa Meetup #11 のセッションで発表した内容です。

[JAWW-UG KOBE Alexa Meetup #11](https://jaws-ug-kobe.doorkeeper.jp/events/71408)

この投稿のターゲットは、US向けのAlexa Skill です。

----
ハッシュタグ

**'#jawsug', '#jawsugkobe'**

----


# [USスキル] Amazon.LITERALをAMAZON.bookで代替してみる。
----
## Amazon.LITERAL
Amazon.LITERAL というスロットタイプがあります。と、いっても、昨年の１月から、
というより、Alexa が出てきた当初から、**[deplicated](将来なくなるよー）** というアナウンスが流れていました。

https://developer.amazon.com/ja/blogs/post/Tx3IHSFQSUF3RQP/why-a-custom-slot-is-the-literal-solution

----

さて、このAmazon.LITERAL。**ユーザーの任意のキーワードをパラメーターとして受け取れる** という、まさに夢のようなスロットではあるのですが、

何を言ってくるかもわからない**人**という生物に対して、任意のキーワードなんて、Alexaにとってわかるはずもありません。

----

実際、新しいAlexa Skill Builder では、LITERAL を指定するとビルドできません。
（正確には、ダイアログモデルでは、AMAZON.LITERAL はビルドできないのですが、ダイアログモデル以外スキルビルダーが選べないので、実質ビルドはできません。）

----
## AMAZON.Bookを使うという選択肢
[slot type reference](https://developer.amazon.com/docs/custom-skills/slot-type-reference.html#list-types)

**AMAZON.Book** というスロットがあります。文字通り、本の名前が数万という単位でリスティングされているスロットです。

<img width="763" alt="スクリーンショット 2018-03-16 3.06.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/d4577f13-c6c2-8661-39ba-70e310459d99.png">

----
**本の名前は、ほぼ人が任意でつける名前なので、任意のワードにも代替できるはず**
----

----
**なんという、発想でしょうか。(怒**

しかし、AMAZON.LITERAL が使えない以上、本当に任意のキーワードを取りたいと思ったときには、現状この方法しかありません。（他のスロットでも代替できる可能性はあります。）

----
## そもそもVUIの設計が間違っている or VUIに適していない状況である
こんなときは、自分に問いかけましょう。

- 任意と思っているキーワードはほんとうに特定のリストに変換できないだろうか？
- VUIを提供したいと思っている状況にそもそも間違いはないのか？
- 状況の絞り込みが必要ではないか？

----
## AMAZON.Book を使ってみた感触

- 色、食べ物、名前、あいさつ、乗り物、はかなりの確率でこのスロットに入るので、実際は試してみる価値はある、、かもしれない。（悪魔の声）

----
# [JPスキルが対象] Synonimを活用して、シンプルな名前認識を。
----

## 音にするとややこしい日本人の名前

「山田 太郎」 この名前をAlexa に認識させたい場合、

- 苗字部分は、独自のカスタムスロットが必要です。
- 名前部分は、AMAZON.FirstName スロットが利用できます。

とはいえ、

----

リストに、
- **山田**

と定義をしても、Alexa には、「やまだ」なのか、「山田」なのか、「ヤマダ」なのか、わかりません。
名前に関しても同じですね。

スキルとしては、全部どれか一つに統一したかたちで識別したいものです。

----

このようなときに活用できるのが、**Synonyms**　という機能です。

----

<img width="849" alt="スクリーンショット 2018-03-16 3.25.53.png" src="https://qiita-image-
store.s3.amazonaws.com/0/49986/4bfe8870-4812-d2df-4225-b297fc4d6929.png">

<img width="844" alt="スクリーンショット 2018-03-16 3.26.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/e9f2d27d-e6b1-735c-baa7-d3749765da76.png">

スキルのスロットに、ひらがな、カタカナで Synonyms を定義しておきます。
そうすると、resolutionsPerAuthority の下に、Synonyms でヒットした値に対する名前が取得できます。

----

```#json

{
  "intent": {
    "slots": { 
      "firstname": {
        "resolutions": {
          "resolutionsPerAuthority": [ 
            { "values": [ 
              { "value": 
                { "name" : "太郎"} 
              }]
            } 
          ]
        }
      }
    }
  }
}

```

----

SYNONYMS を有効活用することで、スロットに値をたくさんリスティングすることなく、正しく名前を認識させることが
できます。

----

**Keep it simple VUI!**

----

最後にお知らせ

----

**JAWS-UG the Netherlands branch 始動！**

<img width="1152" alt="スクリーンショット 2018-03-16 8.27.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/dbb6c54a-7995-7b1e-d1d0-c05e185b056f.png">

----

4月11日(水) 18:00 - 21:00(CET)、
１回目のミートアップ開催します。

----

Guest Speaker **Chief Evangelist of Alexa Skills Kit**
<img width="1228" alt="スクリーンショット 2018-03-16 8.30.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/18fbcc6d-5a0a-36cc-6a13-ac61f58c215c.png">

----
なぜか、このお3かたがオンラインで登壇予定。（深夜１時やぞ）

東京のAlexa IoT おじさん
<img src="https://qiita-image-store.s3.amazonaws.com/0/49986/414ada73-cc16-54db-8aea-226ac5aa4505.jpeg" width=35%>

サムライ
<img width="249" alt="スクリーンショット 2018-03-16 8.30.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/4de49a73-aed4-4d8a-8399-c0de26d218d0.png">

JD
<img width="249" alt="スクリーンショット 2018-03-16 8.32.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/2f63dc4e-e1f8-305e-7e8c-1210931ee99d.png">

----

**バカなのか！？**

----

ちょっとおもしろそうやなーと思ったなら参加してみて。

https://www.meetup.com/ja-JP/jawsug_netherlands_branch/members/250321713/

----

JAWS-UG KOBE 4月も決まってます。
(本日募集開始です)

<img width="928" alt="スクリーンショット 2018-03-16 8.42.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/49986/e7409265-5641-ba16-c525-6af96c45f9d7.png">

----

ありがとうございました。

----