昨今人気のクラウドサービスですが無料プランで利用できるものあれば、期間限定のサービスも多いです。
基本的には、個人用途では触れる機会が少ないですが、それでも興味があって触ってみたい技術者も多いと思います。
今回はIBM Cloudについて紹介したいと思います。
タイトルにある通りIBM Cloudはすごいです。
何がすごいのかというと、先にご紹介しておきたいと思います。
以下に列挙したいと思います。
- ライト・アカウントで無料利用出来る(リソースやサービス制限はあり)
- 商用利用も可
- 使用できるサービスが多い
この3つが大きなメリットで、特にライト・アカウントはクレジット登録も不要なので課金が発生する心配がありません。
また、無料の範囲内でも商用利用可というのはかなり太っ腹です。
そして何より、使用できるサービスも多くの有名なWatsonを使う事も出来ます。
今はAIやディープラーニング、ニューラルネットワークなど人工知能や機械学習がトレンドです。
IBMのWatsonはAIの中でもずっと有名な存在で、それが無料試せるのは技術者として大きなメリットです。
それではIBM Cloudについて書いていきたいと思います。
凄いぞ!IBM Cloud!
豊富なサービス
ライト・アカウントの登録は紹介するまでもなく道なりに勧めれば登録が可能です。
登録後に「My IBM」から登録しているサービスを表示すれば「IBM Cloud」があるので「起動」をクリックすればクラウドの管理画面へ遷移します。
クラウドの管理コンソールの右上の「カタログ」をクリックすると以下の画面に遷移します。
ライト・アカウントでカタログを表示するとデフォルトでライト・アカウントが使用できるサービスをフィルタして表示してくれます。
どうでしょう、かなりの数のサービスが試せます。
インフラストラクチャ―とプラットフォームを合わせて48種類のサービスを利用する事が出来ます。
またUIも見やすくて使いやすいです。
Watsonサービスは13種類も使用できます。
さすがIBMですね。
時間があればたくさん使ってみたいと思います。
Watsonを用いたボット作成
やはりIBMといったWatsonです。
Watosonですが、Slackなどと連携してボットなどを作成できます。
先ほどの「カタログ」画面で「Watson Assistant」を選択してサービスを登録します。
後程、別のWatsonサービスも簡単に紹介したいと思います。
また、サービスを登録するときに必ずライト・プランでの使用にチェックを入れましょう。
これは全てのサービスで共通です。
Watson Assistantは基本的に英語マニュアルですがデモもあります。
ボットの作成の詳細はまた後日紹介したいと思いますが、「Intents」と「Entities」を設定していき、ボットが回答できる言葉の種類や設定を実施していきます。
画面の例では「挨拶」の言葉をリストアップしています。
Watson Assistantの動きは日本語をサポートしているので、Slack連携などで問い合わせの自動化などが実施できます。
ここら辺は、英語のマニュアルに慣れて仕様を理解すれば単純作業で作成が可能です。
dialogで会話のフローを作成します。
学習については右側に「Try it out」というツールがあるので、そこですぐに動作を確認する事が出来ます。
画面にある挨拶程度であれば、1時間もあれば簡単に作成できるほどUIは簡単に使う事が出来ます。
クラウド版DB2
次は、IBMのデータベースと言えば「DB2」です。
メインフレームのZなどを利用している会社や、Power(Pノード)でAIXを利用している会社ではDB2を利用している事が多いでしょう。
このDB2もクラウド版をライト・アカウントで利用できます。
本当に良いサービスです。
IBM様様だと思います。
クラウド版DB2の管理コンソールです。
データ使用量などが表示されています。
私はまだデータを投入してからきちんと利用出来てはいないですが、以下の画面などを見ると、「DB2」というよりは「クラウドデータベース」といった感じです。
データベースへのデータのロードもドラッグ&ドロップで簡単に出来てしまいます。
SQLのフォームもあります。
ここら辺は、「DB2」であることを意識せずにデータベースを扱えるようになっています。
基礎的な機能も分かりやすい印象が強いですね。
SQLのクライアントソフトをWeb版にしたような、かつ非常にシンプルな構造です。
私はOracle DBとSQL Serverはオンプレで扱っていましたがDB2は業務利用したことはありません。
しかしこのUIであれば問題なく使えそうな気がしますし、DB2の技術者もかなり作業が楽になるのではないでしょうか。
手軽に使える感情分析
次は実際にWatsonのサービスを利用したいと思います。
今回使ってみるのは一番お手軽に使用できる「感情分析」です。
「感情分析」とは何かというと、テキストをWatsonに読み込ませて、どんな心理や傾向があるか分析するサービスです。
このサービスが進化したりきちんと開発出来れば様々なコンシューマビジネスに役に立ちそうですし、医療業界などにも役立ちそうです。
「WatsonNatural Language Understanding」サービスを登録します。
使用方法は簡単で、資格情報を登録してAPIで呼び出すだけです。
APIはLinux機からcurlコマンドでhttps経由でサービスを利用します。
しかし、残念ながらこちらのサービスはまだ「英語のみ」しか対応していません。
なので、解析させたいテキストを翻訳機で翻訳します。
今回は以下を翻訳します。
!#/bin/bash set -x USER=[資格情報] PASSWORD=[パスワード] WTSN_API=https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2018-03-16 OPTIONS="equal.&features=sentiment,keywords" if [ $# -ne 0 ]; then TEXT=`cat $1 | sed -e 's/ /%20/g'` curl --user "$USER"':'"$PASSWORD" "$WTSN_API"'&'text=$TEXT'%20'"$OPTIONS" fi exit
個人の資格情報とパスワードを設定すれば他の方でも使えるので、気になったらコピーして自由にご使用ください。
使い方は、資格情報とパスワードをシェルに組み込み、引数1に分析させたいテキストファイルを指定して実行します。
先ほどの翻訳テキストを「sample.txt」としてサーバに配置して実行してみます。
# ./language.sh sample.txt
出力結果は以下になります。
{ "usage": { "text_units": 1, "text_characters": 165, "features": 2 }, "sentiment": { "document": { "score": 0.0442964, "label": "positive" } }, "language": "en", "keywords": [ { "text": "beloved person", "relevance": 0.948704 }, { "text": "beloved now.", "relevance": 0.863274 } ] }
解析結果を見てみると、10行目が「positive」となっており、スコアは+の値になっています。
それ以降では「Keyword」についてピックアップされており、「beloved person」と「beloved now」という言葉がポジティブな要素である事が分かります。
では逆にネガティブな文章を解析させてみましょう。
これは、「幸せ」と「子供が欲しいと思わない」というポジティブな言葉とネガティブな言葉をかけあわせて、かつネガティブなフレーズは「死」などという直接的なネガティブなフレーズではない遠回しな表現を用いました。
それを翻訳してみます。
それでは再度感情分析してみます。
{ "usage": { "text_units": 1, "text_characters": 46, "features": 2 }, "sentiment": { "document": { "score": 0.287411, "label": "positive" } }, "language": "en", "keywords": [ { "text": "child.", "relevance": 0.944664 } ] }
ポジティブのスコアが下がりました。
ただしまだネガティブではないようです。
また少し文章を変えたいと思います。
次は「子供」というフレーズを伏せて「遺伝子」という抽象的な言葉へ変えます。
それを翻訳してみます。
それでは分析してみましょう。
{ "usage": { "text_units": 1, "text_characters": 38, "features": 2 }, "sentiment": { "document": { "score": -0.789343, "label": "negative" } }, "language": "en", "keywords": [ { "text": "gene.", "relevance": 0.995788 } ] }+
スコアがマイナス数値になり、「negative」と判定されました。
「遺伝子」というフレーズはポジティブな数値を出していますが、文章全体でネガティブと評価されたようです。
このように文章やテキストから感情を分析する機能も、もっと追求すれば医療業界や精神的な問題に直面する業界には貢献できることもあるのではないと思います。
機能の紹介はひとまずここまでにしたいと思います。
最後に
IBM Cloudについて紹介してみました。
本当にライト・アカウントは素晴らしいサービスで、IBMの主要製品も手軽に無料で扱えて本当に素払いサービスです。
パブリック・クラウドに関しては、AzureとAWSが先行していますがIBMも全然劣っていませんし、Watson含めてむしともっと評価されるべきだと思います。
無料でここまで簡単に扱えるのは本当にメリット以外ありません。
ディープラーニングや機械学習・AIなどがトレンドなIT業界ですが、IBM Cloudから挑戦してみても良いのではないでしょうか。
私ももっと機能を優位に使っていけるように日々頑張っていきたいと思います。