シンギュラリティ対策室

シンギュラリティは本当にくるのか?人工知能分野(おもに機械学習)の学習。その他いろいろ。

Watsonの翻訳機能を使ってみました

翻訳モジュールをテスト的に作ってみよう。 という話があり、

多数ある翻訳API候補の中から今回選んだのは、

30日間の無料トライアルがあるということで、IBM BluemixのWatsonです。


今回の目標は、 テキストを送信し、そのテキストの翻訳結果を取得する、です。


それでは翻訳結果を取得するまでを書きます。

まずはじめにIBM BluemixのIDを登録しました。

翻訳するにはどうしたら良いかと調べていると、 WatsonのサービスからLanguage Translatorを使用するということがわかりました。 f:id:antisingularity:20170714113830p:plain

後から分かったのですが、Language Translatorは、 Bluemix上のアプリと連携させて使用する方法とWatsonのAPIを直接叩いて使用する方法があることがわかりました。


前者から作り出しました。


Cloud Foundry アプリの作成からNode-RED Starterを登録し、Language Translatorと連携させました。 ※連携時はアプリの再起動をしました。 f:id:antisingularity:20170714113932p:plain

Node-RED Starterを登録し、 Node-REDの画面でノードを繋いでいき、日本語から英語、英語から日本語を配置しました。 WatsonのLanguage Translatorも忘れずに配置します。 f:id:antisingularity:20170714113905p:plain

https://(登録したアプリ名).eu-gb.mybluemix.net/(ノード内のディレクトリ)

でアプリにアクセス出来るようになりました。


「Hello」の翻訳を試してみるために、

https://(登録したアプリ名).eu-gb.mybluemix.net/(ノード内のディレクトリ)?message=hello

等とブラウザに入力すると、

「こんにちは」と返ってきました。

第一目標達成出来ました。


今回はPHPでPOST・GETで送信し、結果を取得するという方法をとりました。

PHPの前にPowershellでGETで送信し、結果を取得したのですがその話は今回は割愛。


登録したアプリにアクセスする前に、いくつかテストを行いました。

  1. BJDをインストールし、アプリを想定したローカル通信環境を構築。
  2. POST・GETの送受信をWIRESHARKで通信キャプチャ・解析。
  3. パラメーターを送信しPOST・GET通信、WIRESHARKで通信キャプチャ・解析。
  4. プロキシを通したローカル通信テスト。

この話は詳しく書くと長くなるのでこれも割愛します。


テスト後無事翻訳の取得に成功しました。 第二目標達成。

PHPの翻訳結果の取得には、 file_get_contentsという関数を使用しました。

翻訳の精度にWatson独特の癖がありそうな感じもしました。



次にWatsonのAPIを直接叩いて結果を取得する方法ですが、

英語から日本語の翻訳で「Hello」をテストするには、

https://(username):(password)@gateway.watsonplatform.net/language-translator/api/v2/translate?model_id=en-ja&text=Hello

で結果取得でした。

POSTもGETも成功です。

最終目標達成。

ユーザー名とパスワードは、管理画面から確認です。 f:id:antisingularity:20170714113952p:plain

APIを直接叩く方法はたどり着くと意外と早く出来ました。


先輩に色々と指導いただき2日くらいかかりましたが、無事に目標を達成出来て良かったです。

AI・人工知能EXPO行ってきました

別のR&Dメンバーによる始まるよの記事にあったように、R&Dメンバー個々で展示会の方に行ってきました。

f:id:antisingularity:20170703104537j:plain

とりあえず無料講演会を聞いて、あそこのブースとここのブースをまわって…と、色々計画を立てていました。

が、なんということでしょう。想像を凌駕する人の群れ!!

f:id:antisingularity:20170703104538j:plain

うかつに細い通路に入ったりしようものなら、進も引くもままならない状態になってしまったりしました。

私が見学に行ったのが最終日の午後だったのですが、用意されたパンフレットがなくなっていたり、販促品が品切れになっていたり(残念)という状態でした。

人の流れに流され、立ち止まることも許されず、パンフレットはどこも品切れ、各ブースのポスターが頼りという状態で、それでも果敢に見て回りました。あらためてAIはブーム何だなぁと感慨深かったです。

以後、場内での写真撮影が禁止されていましたので、私の文章のみでお届けします。

では、気を取り直していってみよ~!

とりあえずチャットボットでしょぅ

一番目に付いたのがチャットボットのブースでした。

WEBサイトの賑やかしに雑談するようなものや、コールセンターでFAQを元に簡単な質疑応答を行うもの。もっと本格的なビジネスユースのものなど、色々展示されていました。

文脈認識(+音声認識)がAIの担当となるのですが、アプリケーションorサービスとして成り立つほど、この分野は十分成熟した印象でした。

隠れた主役、テキストマイニング

先のチャットボットでも使われている文脈認識ですが、チャットボットが文のパターンによる判断がメインとなるのに対して、こちらではもっと積極的に「意味」に焦点をあてている感じでした。

意味を解析して要約したり、新語や造語を自動的に認識したり、複数の文章から世間の評判を判断したりと、かなり本格的です。

AIというと海外(主に西洋圏)が先行している感がありますが、こと日本語となると、単語の切れ目がわからない・語順が不定・主語が省略されるなど、特有の問題があります。

それだけに、純国産勢が頑張っている部分であり、個人的にももっとも注目している部分でもあります。

この分野はSNSを始めとするネットでのデータの氾濫が背景となって、今後も成長分野と思われます。

サービス/アプリの内容としては、自社やその製品のネット上での評判を分析したり、SNS等を監視してコンプライアンス違反を探したり、膨大なデジタル文書(例えば特許情報)の中から条件に合致するデータを探したりと、地味(失礼)なものが多かったです。

ハードウェアだって頑張ってるモン

AIはソフトウェアばかりじゃありません。

その膨大な計算量を処理するために、GPGPUが無くてはならないものであります。

そのGPGPUマシンでは、昨年のプレAI展示会にも出展されていたDEEPstationが今年も出てました。無駄にカッコよい(誉め言葉です)。

この子は結構気に入っていたので、また会えてうれしかったりしました(が足を止めてじっくり見られなかったのが残念)。ソフトウェアを陰で支えるハードウェアさん、頑張ってください。

でも、時代はクラウドGPUなのかなぁ、というのが正直な気持ちです。

その他に気になったのは、AIチップです。

まだ「なんでもござれ」といった汎用のものではなさそうでしたが、音声認識や画像認識に特化したチップといった趣です(まあ、ソフトウェアも同じようなものですが)。

To be continued

ふぅ疲れた。

来年も(もしブームが続けば)こんな人だかりになるのでしょうか?

なにやら、来年は規模を3倍に拡大しますともアナウンスされてましたが、もう少しゆとりをもって見られたらと切に願う次第であります。

※私の独断ですが、来年は「AI」の文字が消えて、チャットボット展とテキストマイニング展になってたりして…

以上、ten@蓼科情報でした。

第一回 AI ・人工知能EXPOがはじまりました!

R&Dチームのメイン取り組みテーマであるAI専門展がいよいよ6月28日[水]から開催です!

www.ai-expo.jp

多くの応用事例を目に焼き付けてこようと思っています。
私が注目しているのは「はたらくAI」枠から、

ホワイトカラー業務も AI におまかせ!

⇒RPAテクノロジーズ 「BizRobo!」
ホワイトカラーの生産性を革新するロボットらしい。
どんなことをしてくれるのか話を聞くのが楽しみです。

味・フレーバーの鑑定士 AI

⇒コーンズ テクノロジー 「Gastrograph AI (味覚フレーバー用 AI)」
人間の味覚センサーである舌は位置によって味を感じ分けていますが、
ロボットはどんな仕組みで実現させているのかな?

あたりを見てきます。
他にもソフトバンク全社員が使っているAIエンジン「APTWARE」や、「Kibiro」も楽しみです。

ロボティクス奮闘記

Sota講習会@秋葉原に参加してきました。

かなり詳しそうなお店のお兄さんにご教授いただくこと1時間。

オフ会感漂う講習会を終え、気分はロボット使い!

f:id:antisingularity:20170628150710j:plain

「Sota君よ喋れー」

「Sota君よ喋れー」

しかし現実は、

ロボット使いとはまだまだ程遠く。

忍耐強くコードを書き込む作業の日々の連続です。

結果は、

Sota君が喋るという部分以外のプログラムでつまずき転倒の連続。

先輩にたくさん教えていただきました。

とにかく Sota君とのTCP通信で 音声を話してもらうことに奮闘しました。

奮闘すること数週間

Sota君は通信に対して3種類の応答を使い分ける、

ということが出来るようになりました。

日々Sota君の研究は続きます。

PowershellでSota君とのTCP通信メモ。

VstoneMagicのTCP/IPサーバ受信ブロックを使用して Powershellで作ったプログラムとsota君をTCP通信するというタイミングがあったのでメモに残しておきます。

 #送信内容
 $call = “ok`n”

#ソータと接続 $TCPSocket = New-Object System.Net.Sockets.TcpClient(“sotaのipアドレス”, 5001) $stm = $TCPSocket.GetStream()

#ソータへ送信 $byte = [System.Text.Encoding]::UTF8.GetBytes($call) $stm.write($byte,0,$byte.length)

#ソータとの通信切断 $TCPSocket.close()

これは色々なところに使えるかも?と思いました。

送信文字には改行コードの`nを加えて、Sota君側のポート番号は5001番です。

QRコードライター登場

Sota君の流れで、 QRコードライターを制御し、動かすために奮闘しています。

VB.NETと初めて向き合った私。

VisualStudioも初めてインストール

書籍「作って覚えるVisualBasic2015」も購入。

(インストールしたのは2015が配信されていなかったのでVisualStudio2017)

上記書籍を3日でざっくり読む。

QRコードライターのサンプルソースをサイトからダウンロードし、 分析開始。

VisualStudio2017のインターフェースにとまどいながら、サンプルソースの分析奮闘。

いざオリジナルのアプリ開発へレッツゴー。

(今までの価値観からすると急展開、でもそんな価値観は捨てて楽しみます)

そして現在、開発中。

先輩に助けられながらなんとか開発は進んでいます。 時間はかかってしまっていますが。

Pythonのときも、

書籍「実践力を身につけるPythonの教科書」を じっくり読み、

機械学習の世界へレッツゴー!

(初めてすぎる。。)

でした。

常にチャレンジ精神を忘れなければ、きっとなんとかなりますね!

とても広く浅く様々な言語の経験を積ませていただいている。

PythonVB.NETも初めてで、正直とまどいましたが。

最初はみんな初心者なので、

私もこの職種なら誰もが通りうるであろう道をゆっくりと進んでいます。

新人研修を迎えるころ

四月になると新入社員が入ってきますね。

そして私たち先輩はその準備をしています。

PCの設定や社内ネットワークの説明、資料の準備、研修に使うアプリのインストール等。

Sota君はといいますと、

今のところ新人研修では出番の予定はありません。

予想外の質問や気付きが出てくることと思いますが、

これも新人さんとの貴重な接点ということで、 柔軟に対応していきたいと思います。

新入社員の皆さんに負けないように、

新人研修は、企画部チカラを合わせて

フレッシュな姿勢が見せられればと思います。