CHANGE エンジニア BLOG

株式会社チェンジ エンジニア ユニットによる情報発信BLOG

AlexaとGoogle Assistantの開発 ~Alexa開発 自然言語処理編~(2)

f:id:Taku_Nakagawa:20180221150922j:plain

前説

こんにちは!株式会社チェンジでエンジニアをしている中川です!
連載形式でAlexaとGoogle Assistantの開発について記事を書いていくつもりで
今回は連載2回目
そしてテーマは「Alexa開発 自然言語処理編」!


AlexaとGoogle Assistantの開発をする場合、
前回の記事内に記載しましたが
blog.chgjp.net

  1. ユーザーが話した内容の理解(自然言語処理)
  2. 質問内容に従った処理の実行

の順で開発していきます。
その中で今回の記事は
ユーザーが話した内容の理解(自然言語処理)
について説明をしていきます。

Alexa Skillとは

まず開発する前に、認識していて欲しいことは
Alexa Skillの開発方法は3種類あります

  • Custom Skill
    • プログラミングを駆使して自由度が高いスキルの開発が可能
  • Flash Briefing Skill
    • プログラミングの知識が必要なくて開発が可能
    • 単純なニュース読み上げSkillしか作成できない
  • Smart Home Skill

今回はCustom Skill開発について説明をしていきます!

Amazon Developer portal

ユーザーがAlexaに対して質問した内容を理解するために自然言語処理が必要です。
自然言語処理と聞くと、機械学習の知識が必要ではないか...と頭をよぎりますが、
そこのところはこのAmazon Developer portalを
使用することでGUIベースで設定が出来るので心配しなくても大丈夫です!
developer.amazon.com

開発

スキルの概要

今回は練習として、足し算をしてくれるスキルを開発していこうと思います。
デフォルトで計算するSkillは使えるよ!って言わないで、今回は練習として!
Slot(Entity)の理解とプログラミングの実装をする時にすごく伝えやすいので!

設定方法

共通設定

Amazon Developer potalにログインをしてください。
f:id:Taku_Nakagawa:20180221104457p:plain
もしもまだユーザー登録をしていない方は
ここからユーザー登録をしてください!!
f:id:Taku_Nakagawa:20180221104715p:plain
ちなみにこのAmazon Developer portalは無料で使えるので、安心してください!
ログインし、[ Developer Console ]のボタンをクリックしてください!
f:id:Taku_Nakagawa:20180221104953p:plain
[ Alexa ]タブをクリックしてください!
f:id:Taku_Nakagawa:20180221105226p:plain
Alexa Skills Kitをクリック
f:id:Taku_Nakagawa:20180221105554p:plain
そうすると、この画面が出てきてきます。
f:id:Taku_Nakagawa:20180221111521p:plain
今回はせっかくなので、このBetaページを利用していこうと思います!
ちなみ自分もこのBetaページを始めて使います!
f:id:Taku_Nakagawa:20180221111611p:plain
Betaページに遷移したら、新しくSkillの開発を行うので、[ Create Skill ] をクリックしましょう!
f:id:Taku_Nakagawa:20180221112254p:plain
Skill名に適当なもの(ここではTEST_Customを指定)を使用言語にはJapaneseを選択します。
f:id:Taku_Nakagawa:20180221113432p:plain
Custom Skillを開発していくので、Custom Skill の[ Select ]ボタンをクリック
f:id:Taku_Nakagawa:20180221113559p:plain
[ Selected ]が表示されていることが確認できたら、[ Create skill ]をクリック
f:id:Taku_Nakagawa:20180221114030p:plain
そしたら、この画面に遷移します!
f:id:Taku_Nakagawa:20180221125715p:plain
[ Invocation ]ボタンをクリック
f:id:Taku_Nakagawa:20180221130105p:plain
Skill Invocation NameにこのSkillの呼び出し名を指定
※ 「Alexa, カスタムテストを開いて」の部分の指定です。
f:id:Taku_Nakagawa:20180221131000p:plain
ここまでが共通設定です。
AlexaでCustom Skillを作成する際はここまで基本同じです。

IntentとSlot(Entity)の設定

左側の[ Intent ] ボタンをクリックして、 [ + Add Intent ]をクリック
f:id:Taku_Nakagawa:20180221132824p:plain
Create custom intentを選択し、
[ CalcPlusIntent ]と入力して、[ Create custom intent ]ボタンをクリック
f:id:Taku_Nakagawa:20180221133424p:plain
この画面に遷移します!
f:id:Taku_Nakagawa:20180221140717p:plain
ここにユーザーが言いそうなことを入力していきます!
f:id:Taku_Nakagawa:20180221141842p:plain
手順は

  1. Sample Utterancesにユーザーが言いそうなことを入力していく
  2. Slot(Entity)は中括弧 { }
  3. Slot Typeは [ AMAZON.NUMBER ]を指定

[ Save Model ]と[ Build Model ]をクリック
f:id:Taku_Nakagawa:20180221143747p:plain
[ Build Model ]をクリック時、結構時間がかかります!
この表示がされている間はお待ちください!
f:id:Taku_Nakagawa:20180221144026p:plain


以上が「Alexa開発 自然言語処理編」の説明です。

あとがき

以上が自然言語処理編の説明で、
Alexa開発をする上ですごく重要な設定です。
しかし、これだけでは全然、動きません!
Alexaに話しかけても全然、無反応!
なんなら「理解できません!」って言われてしまう始末です!
冒頭でもお話しましたが、
AIアシスタントの開発では

  1. ユーザーが話した内容の理解(自然言語処理)
  2. 質問内容に従った処理の実行

のセットで開発が必要です。
なので次の記事では

  • 質問内容に従った処理の実行

について記載します!
次の記事まで行うことができれば、動くもの作成できます!
お楽しみに!でわ!!