読者です 読者をやめる 読者になる 読者になる

はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

無題

おいしい食材、旬の食材を探してきて、それを組み合わせて価値ある料理を作る。

アプリ開発というのは実はそういったものなのかもしれない。

 

もし、フルコースの料理じゃなくて、シンプルな一皿、しかも一見すると食材に対して何も仕事をしていないように見える一皿があったときに人はどのような反応を示すだろう。

食べてみると、「この食材とこの食材からこの味の領事になるんですか!」そう言ってもらえる料理。

 

こういった料理をだされたときに、

一目見だけで「これ、すごいね。いや、もう匂いを嗅いだだけですごいと思うよ」という同じ料理人もいたりするだろう。

実際に遠くから食べに来て「また、食べに来ますね」と次回予約をしていく人もいるだろう。

 

そうしたなか、フルコースこそ料理。料理に食材があることを忘れ、料理されたものからどれだけの料理工程や腕が必要かが類推できないと価値が見いだせない人たちも少数いる。

なぜか、もともと料理なんてしないレストランオーナーとかではなく、料理をしなくなった経営だけが楽しいレストランマネージャー、そんな料理って何?って忘れてしまった人たちには食べもせずに

「なんでこんな食材をそのままだしているだけなのにこの値段なんだ。これは誰でも作れるし、プロじゃなくても作れる。タダでいいだろう。」

と言い放つ人が多いように思える。

LUISが日本語対応したよ

Cognitive

2016/09/15にLUISが日本語対応しました。

https://www.microsoft.com/cognitive-services/en-us/news

LUIS = Language Understanding Intelligent Serviceということで、話し言葉をテキストで入力するとその意味を解析してテキストの要素を認識してくれるサービスが日本語対応しました。

 

早速、LUISを使ってみましょう。C#SDKもありますがまずはWebのエンドポイントから軽く試してみましょう。

 

まずはLUISのWebサイト(https://www.luis.ai/) からMicrosoftアカウントでログインしましょう。

初回ログインのところでの質問はこんな感じに回答すればOKです。

image

 

新規作成の[+]ボタン、真ん中は[Cortana pre-built apps]ボタン、一番右側は[Start Tutorial]ボタンでチュートリアルを見るためのボタンです。

image

真ん中の[Cortana pre-built apps]ボタンでコルタナの受け答え言語理解モデルを使ってアプリをつくてれます。残念ながら日本語はまだ提供されていません。

しかたがないので、新規作成ボタンで言語理解モデルなしでアプリを作成しましょう。

 

シナリオとして、IoT、Bot、Mobile、Otherなどが選べます。今回はBotを選んでおきます。

また、ドメインもいろいろ選べます。ドメインを指定するのは、同じ言葉でも分野によって意味づけが異なるからです。

  1. Booking & Reference
  2. Business
  3. Comics
  4. Communication
  5. Education
  6. Entertainment
  7. Finance
  8. Gaming
  9. Health & Fitness
  10. Home Automation
  11. Media & Video
  12. Medical
  13. Music & Audio
  14. Navigation & Maps
  15. News & Magazine
  16. Personalization
  17. Productivity
  18. Real Estate
  19. Sceduler
  20. Shopping
  21. Social Network
  22. Sports
  23. Telecom
  24. Tools
  25. Transportation
  26. Translation
  27. Travel & Local
  28. Weather
  29. Other

ここは、Comics、Gaming、Media & Video、Social Networkを選んでみます。たぶん、分野を絞れば絞るほどその分野において的確な意味としてとらえてくれるはずです。どのあたりをターゲットにするのかよく考えて絞り込みましょう。

image

そしてもちろん[Choose Application Culture]には「Japanese」を選択します。

[Add App]ボタンをクリックすればアプリケーションの作成が開始されます。1~2分かかりますが気長に待ちましょう。

 

生成された直後は、こんな感じです。この状態では何もできません。なにかするにはメニュー右端の[Edit]をクリックしてセッティングを行わないとダメなのです。

image

 

Editをクリックしたときに表示される画面はこんな感じ。

image

まずは何も設定せずに[New utterances]に「みなさん、こんにちは。初音ミクです。永遠の16才の電子の歌姫です。」といれてみましょう。

image

その結果は、半角区切りが入って次のように分解されて表示されます。

  • みなさん、
  • こんにちは
  • 初音
  • ミク
  • です
  • 永遠
  • 16才
  • 電子
  • 歌姫
  • です

しかし何も設定していないので、出力はこれだけです。もう一度、同じ文章を入れたら「This utterance has already been labeled. You can make changes to the label, or type in a different utterance.」って表示されます。

この一度入れたものは[Review labels]でも表示できます。

これだけって書きましたけれど、文章を入れてこういったこと=「形態素解析」ができることだけでもすごいですよね。

 

それではLUISに意味を教えていきましょう。

はい。もうわかりましたね。LUISを使えば勝手に意味を抽出してくれるんじゃなくて、言語理解モデルというものが必要なわけです。

 

左端のEntitiesの+を押して[Add a new Entity]で登録してみましょう。

image

「名前」EntitiyはInclude childrenということで「姓」と「名」を子供に定義して作成します。

作成が終わったら左下の[Train]ボタンを押してみましょう。

 

次に[Review labels]でさっき入れた文章を表示し、「初音」をクリックして「姓」、「ミク」をクリックして「名」をEntityとして選びます。

image

それでは試しにこれで何ができるか確認してみましょう。

左下の[Train]ボタンをクリックしてトレーニングをしてから左上の[Publish]ボタンで公開します。

 

Query欄に「初音ミクって誰?」と入れた結果は次のようなJSONで返却されます。

image

 

それでは次にIntentを追加してみましょう。左メニューのIntentの[+]ボタンをクリックして、「GetTopic」という名前で「初音ミクは、永遠の16才の電子の歌姫です。」と登録してみましょう。

image

そしてさっきと同様に「姓」と「名」のEntityを設定して[submit]します。

 

[Train]ボタンを忘れずに押してから[Publish]して、[Update published application]ボタンをクリックしたら、Queryにさっきと同じ質問をいれた結果のJSONは次のように変化しました。

image

このようにEntityはIntentを設定して初めて抽出してくれるのです。

 

これで「初音ミク」って要素が入ったテキストに対しては「GetTopic」という話題を返せばいいという言語理解モデルができあがりました。

 

最後に、英語の意味を少し理解しておきましょう。

Intent:意図、目的

Entity:実体(要は、名という識別に対する実データ)

 

月1万トランザクション(以前は10万トランザクションまでだったけれど9/15に改訂。言語増えたから世界的に使われる量が増えることを見越してかな?)までは無料なのでぜひ使ってみてくださいね。

日本語の言語理解モデルとかがOSSとしてgithubあたりに流通し始めると面白いかもね。

今期アニメ言語理解モデルとか。

Mobile first, Cloud first

Mobile Cloud

トラディショナルジャパニーズカンパニーには、この2つに積極的にかかわりあいたくない人たちがいます。要は自分が変わりたくない、自分の仕事を変えたない。
そして、新しい取り組みを消極的に妨害します。そう、本人は意識していないかもですが妨害してくるのです。
前例がない、事例がない、私を納得させろ。
人は人によって納得させられるものではありません。人は自分の意思により納得するのです。変化したいから発せられたのとそうでないのとは、同じ字面であっても心根は正反対です。
かわりたいから発せられたとき、それは自分ごととして一緒に変わり事を考えるという動きになって行くのです。
そうでないときは、否定するための問いであり逃げるための問いに付き合わされるという消耗戦を勝ち抜かないと前に進みません。

諦めればそこで試合終了ですよ。

まさにこれ。

Windows10Mobileへのデプロイが「Unexpected Error: -1988945906」エラーになったときには?

UWP Windows10 Windows10Mobile VisualStudio

 

Visual StudioからWindows 10 Mobileにデプロイすると「Unexpected Error: -1988945906」が発生してデプロイできないということがありました。

Windows 10のバージョンは、Windows 10 ver.1501 (OS build 10586.545)。

 

いろいろ調べてみて下記のサービスが自動なのに起動していないと発生するらしいとのことで対応したらできるようになりました。

 

(1)Windows 10を再起動する

(2)ローカルサービスから、Windows Phone IP over USB Transport (IpOverUsbSvc)が起動していなかったら起動する

(3)Visual Studioで該当ソリューションを開く

(4)Windows 10 Mobileを接続してUSB接続のダイアログでOKする

(5)ARM - デバイスを選択して実行。

 

これで無事デプロイできました。

HoloLens連載の後半が公開されました

HoloLens Hardware UWP Unity

www.buildinsider.net

基礎編前後編の後編が公開されました。

「HoloToolKitの使い方など応用編を読みたーい」などのご希望もぜひSNSで拡散ください。

Xamarin.Forms Androidで画面をスリープ状態にしないためには

Xamarin

Androidのアプリなどでロックスクリーン状態でも画面表示されているやつがあると思います。あれをXamarin.Formsでやろうとしたらどうするのか。

Androidアプリの普通のノウハウがそのまま使えます。

 

Xamarin.Forms (Android) でスリープ状態にさせないためには

 

Microsoft HoloLens 2016/08 Update

HoloLens

blogs.windows.com

Windows 10 Anniversary Updateの配布が始まりましたが、時期を合わせてHoloLensにも「Windows Holographic August 2016 Update (10.0.14393.0, Windows 10 Anniversary Release)」がやってきました。 

Release notes

新機能は次の3つ

  1. Visual Studio 2015 Update 3からプロセスにつないでデバック可能
  2. HoloLensエミュレータのUpdate
  3. Xboxゲームパッドサポート

前回の5月UpdateでBluetoothでキーボードとマウスはサポートしていましたが、今回のUpdateでXboxゲームパッドが使えるようになり、 Windows.Gaming.Input APIで連携できるようになりました。

 

で、このUpdateは開発者用なのですが、これとは別に「Microsoft HoloLens Commercial Suite」なんていうのが発表されています。

Commercial features

  1. Kiosk mode
  2. MDM for HoloLens
  3. Windows Update for Business
  4. Data security (Bitlockerサポート、VPNサポート)
  5. Work access
  6. Windwos Store for Business

企業内利用などに必要な様々な機能が使えるようになってきています。これは、Windows 10 Mobileと同じように既存の企業セキュリティポリシーに準拠することで企業内ネットワークへの接続が容易になる、つまり、「普通のWindows 10 PCと同じようなデバイス管理下で使えます。だからつないでいいですよね?」といえることになります。地味だけれどすごく便利。

 

北米とカナダでは申請なしでHoloLensが買えるようになったようですし、現地にいくことがあればサクッと1台購入してMR世界を体験してみるといいかもしれませんね。