本記事は以下記事の自然言語認識部分についての記事になります。
自然言語認識とは
簡単な具体例で示すと、人が喋って画像検索したい場合、
- 「〇〇の画像を検索して」
- 「〇〇の画像を探して」
- 「〇〇を検索」
- 「〇〇を探して」
- 「〇〇の画像」
など数多くのパターンが考えられます。これらの文章から〇〇の画像を検索したいということを適切に認識することが自然言語認識になります。
LUIS
LUIS(Language Understanding)とはMicrosoft Cognitive Servicesの言語カテゴリに含まれるAPIの一つで、自然言語の意図分類・キーワード抽出を行うことが可能です。
このAPIを利用することで「画像を検索したい」という意図を文章から検出し、さらに〇〇に該当する検索キーワードを抽出しました。
LUISについては以下のサイトから Login/Sign up することで利用可能です。 www.luis.ai
LUISの設定
LUISアプリの作成の流れは以下のようになります。
- アプリの作成(言語の選択)
- エンティティの作成
- インテントの作成
- Train
- Test
- Publish
LUISを利用した際のポイントとして、LUISではアプリ作成時に言語を選択するようになっているため、日本語、英語の2言語対応するためにLUIS上で日本語のアプリ、英語のアプリ2つ作成しました。
以下日本語でアプリを作成する例
アプリ作成後の設定については、それぞれ言葉で説明するよりも操作画面を見たほうが早いと思ったので動画を準備しました。以下は日本語アプリの設定例です。
精度を高くするためにはもう少し細かい設定をする必要がありますが(intentsの例文は5つ程入力するように書かれている)、簡単な操作確認程度であればものの1, 2分で設定できることが分かると思います。
最後にPublishを行うと画面下部にendpointのURLが表示されます。
なお。LUISの詳細については以下の書籍も参考になります。
・Cognitive Services入門
・さわってわかるクラウドAI Microsoft Cognitive Services実践ガイド
Unity プロジェクト
Unity 2017.2.1p2
HoloToolkit-Unity-2017.2.1.4.unitypackage(HoloLensで動作するUnityプロジェクトになっています)
Unity プロジェクトはGitHubにアップロードしています。 github.com
endpointのURLをInspectorで設定することで動作します。
Search Sentenceに入力した文章をLUISへの入力として文章から検出されたキーワードを画面に表示します。