Alexaスキルのネタに困っている人はオープンデータを使ってみよう
この記事はCivic Tech Advent Calendar 2019 1日目の記事です。 Alexaスキル開発みなさんされていますか?いない人の方が多い気はしています(主観) ワークショップやハンズオンにメンターとし […]
目次
この記事はCivic Tech Advent Calendar 2019 1日目の記事です。
Alexaスキル開発みなさんされていますか?いない人の方が多い気はしています(主観)
ワークショップやハンズオンにメンターとして参加しているとよく聞くのが、「作ろうと思うけど、ネタがね・・・」という声です。
実際「声で動かすなにか」だけでも今までと違う雰囲気がある中、そこで何を喋らせるのかまで考え始めると「今度でいいか」となって、Alexa開発コンソールにワークショップのサンプルスキルだけが積み上がっていきます。
ですがここは考え方の問題です。
「全部自分で用意しようとする」からしんどくなるわけで、自分で用意しなければ、そこまで難しくない(はず)です。
Alexaの豆知識スキルを下敷きにする
もっとも簡単に自分のスキルを作る方法は、「豆知識スキル」のサンプルを使うことです。
このサンプルを日本でオススメする理由は、「公式で日本語化されていること」です。
英語のチュートリアルをみながらするのはちょっと気合がいりますが、日本語化されており、ワークショップなどでもよく使われているものなので、もくもく会などでも質問がしやすいです。
そしてなにより便利なのが、「一部定数を書き換えるだけでオリジナルにできること」です。
サンプルのコードを一部抜粋してみましょう。
//=========================================================================================================================================
//TODO: このコメント行より下の項目に注目してください。
//=========================================================================================================================================
const SKILL_NAME = "宇宙の豆知識";
const GET_FACT_MESSAGE = "知ってましたか?";
const HELP_MESSAGE = "豆知識を聞きたい時は「宇宙の豆知識」と、終わりたい時は「おしまい」と言ってください。どうしますか?";
const HELP_REPROMPT = "どうしますか?";
const FALLBACK_MESSAGE = "";
const FALLBACK_REPROMPT = "";
const STOP_MESSAGE = "さようなら";
//=========================================================================================================================================
//「TODO: ここから下のデータを自分用にカスタマイズしてください。」
//=========================================================================================================================================
const data = [
"水星の一年はたった88日です。",
"金星は水星と比べて太陽より遠くにありますが、気温は水星よりも高いです。",
"金星は反時計回りに自転しています。過去に起こった隕石の衝突が原因と言われています。",
"火星上から見ると、太陽の大きさは地球から見た場合の約半分に見えます。",
"木星の<sub alias='いちにち'>1日</sub>は全惑星の中で一番短いです。",
"天の川銀河は約50億年後にアンドロメダ星雲と衝突します。",
"太陽の質量は全太陽系の質量の99.86%を占めます。",
"太陽はほぼ完璧な円形です。",
"皆既日食は一年から二年に一度しか発生しない珍しい出来事です。",
"土星は自身が太陽から受けるエネルギーの2.5倍のエネルギーを宇宙に放出しています。",
"太陽の内部温度は摂氏1500万度にも達します。",
"月は毎年3.8cm地球から離れていっています。"
];
どういう会話がされるか、何をどう書き換えればいいか、なんとなく見えてきますね。
SKILL_NAME
やHELP_MESSAGE
を自分の作るスキル向けに書き換えて、あとはdata
を変更すれば自分のオリジナル豆知識スキルが作れます。
実際に公開するためにはもう少し手間をかける必要がありますが、一から考えて作るよりはまずこれで「公開した」という経験を積む方が大事かなと思います。
データはどこから? -> 公開されているものを使おう
そして豆知識スキルを作る上で重要なのは、「その豆知識をどこから手に入れるの?」という点です。自分で考えようとすると、自分の知識量を超えて作ることが難しくなります。
しかし今は便利なことに様々な企業・団体・自治体が、「オープンデータ」としてパブリックに使えるデータを提供し始めています。
たとえばWikipediaのデータを元にして作れているDBPediaというサービスを利用すると、「東京都」や「全国の地域限定ゆるキャラ」などのデータを抽出することができます。
他にも「自治体名 オープンデータ」などでGoogle検索すると、その自治体のイベント・観光情報や施設の情報などがCSV / PDF / JSONなどで公開されているページにアクセスできます。
このデータを先ほどのdata
変数の配列に1行ずつ移してやれば、それだけで新しいAlexaスキルが誕生します 🙂
作って公開しよう!
実際にいくつか豆知識系スキルを公開しました。
サンプルのコードを参考せずに作っているものもありますが、データさえあればこのようにいろんなスキルを作ることができます。
公開時の注意点
そして公開のリクエストをする際ですが、必ずスキルの説明文にライセンス・著作権表記をいれましょう。
DBPediaのデータであれば、このような表記を入れています。
## データについて
都道府県に関するデータは、DBpediaによって公開されているデータを利用しています。
# License
The DBpedia project leverages this gigantic source of knowledge by extracting structured information from Wikipedia and by making this information accessible on the Web under the terms of the Creative Commons Attribution-ShareAlike 3.0 License and the GNU Free Documentation License.
https://creativecommons.org/licenses/by-sa/3.0/deed.ja
Amazon.co.jpのサイトに掲載される関係だと思いますが、そのデータ・コンテンツが誰の所有物なのかを公開審査できっちりチェックされます。使ってはいけないものを勝手に使っているわけでもありませんので、正直に「このデータを使って作った豆知識スキルだよ!」と書くようにしましょう。
おわりに
「ちょっとこれならやってみようかな」という気持ちになれましたでしょうか?
一度作ってみると、「じゃあ次はこうしてみよう」という気持ちになったり、意外とレビューの星がついてテンションが上がったりといろんなことが置きます。
また、ここで紹介した自作オープンデータ系スキルはほんの一部です。
現在進行形でいろんな形のスキルを開発中ですので、またアドベントカレンダーなどで紹介することができればと思います。