【エントリー部門】
アイディア部門
【応募者属性】
社会人
【応募者名】
横井一仁
【エントリー作品の権利指定】
クリエイティブ・コモンズ・ライセンス
【エントリー作品のURL】
アイデア部門のため、なし
【利用しているオープンデータ】
音声テキスト化API、構文解析APIから生成したRDFデータを利用しているため、オープンデータの活用なし(ただし、発展アイデアとして、DBpediaやWordnetのデータを用いて、英会話の語彙力向上に役立つ付加情報の提示などの拡張ができると考える)
【利用しているパートナーリソース】
E2D3(データの可視化の部分で使用)
IBM Bluemix(人工知能API、RDFストア、開発環境で使用)
【関連する応募作品】
「人工知能APIとRDFデータ分析を活用した英会話学習支援アプリケーション」
http://idea.linkdata.org/idea/idea1s2183i
アプリケーションのアイデアの内容は、上記作品のページに記載した。
【エントリー作品の詳細説明】
本ページでは、関連する応募作品のページで解説した「人工知能APIとRDFデータ分析を活用した英会話学習支援アプリケーション」をIBM BluemixとMicrosoft Azureを用いて実装する方法のアイデアを説明する(以下の番号(1)~(9)は、Slideshareの説明スライドに記載の番号と対応する)。
(1)スカイプ英会話の音声を録音、(2)音声データを送付
スカイプ英会話(または英会話スクール)で、話者の発言を録音する。本ステップでは、スカイプAPIを直接用いても音声データを取得しても良いし、単にPCやスマートフォンで録音する形でも良い。録音したデータは、下のステップ(3)のAPIへ送付する。
(3)音声テキスト化API(Watson Speech to Text)、(4)テキストデータを送付
音声テキスト化APIはWatson Speech to Text APIを用いる。本APIは音声のバイナリデータを受付け、指定した言語にてテキスト化を行う。本APIを用いてスカイプ英会話にて話者が発言した内容の英文テキストを取得する。本テキストデータは、次のステップ(5)の構文解析APIへ送付する。
(5)構文解析API(Microsoft Cognitive Services Linguistic Analysis API)、(6)構文データをRDFとして格納
構文解析APIは、Microsoft Azureで提供されているCognitive ServicesのLinguistic Analysis APIを用いる。本APIはテキストデータを送付すると、構文解析を行った結果を括弧と品詞情報を付けて返送する。本構文解析のデータは、ツリー構造であるため、容易にRDFデータへ変換できる(具体的なRDFデータのフォーマットは、関連する応募作品のページに記載)。RDF化した構文解析結果は、次のステップ(7)のRDFストアへ格納する。
(7)RDFストア(Apache Jena)
RDFストアとしてSPARQLクエリに対応しているApache Jenaを用いる。RDFストアの検索処理は、Joinを繰り返すため、実用時間内のユーザレスポンスで検索を実行するには、CPU性能、メモリ量、ディスク性能が求められる。そのため、RDFストアを運用するサーバは、ベアメアルサーバを提供しているBluemix IaaSとした。
(8)SPARQLを用いて各文法パターンの頻度算出
RDFデータとして構文解析結果は、SPARQLクエリで検索し、話者が発言した文法パターンの出現頻度を算出する(具体的なSPARQLクエリは、関連する応募作品のページに記載)。例えば、受動体、完了形、文型などの文法パターン特有の接続構造をWhere句に指定し、各文法パターンの出現頻度をselect count()を用いて算出する。
(9)各文法パターンの頻度をグラフ表示
各文法パターンの出現頻度のグラフ表示は、データの可視化で実績のあるE2D3を用いる。
・開発環境(Node-RED)
Node-REDとは、GUI上で処理のブロックを繋ぐのみで、今回の様な一連の処理を簡単に記述できる開発環境である。WatsonやCognitive Servicesのモジュールも提供されているため、API仕様書を確認する事なく開発に取り組める。またHTTP経由のREST APIに対応していれば、どの様なAPIも呼び出すことができるため、Fusekiなどの仕組みを用いてApache JenaをREST API化すれば接続可能である。
※参考URL
・Node-RED Watsonモジュール
https://flows.nodered.org/node/node-red-node-watson
・Node-RED Cognitive Servicesモジュール
https://flows.nodered.org/node/node-red-contrib-cognitive-services
・Watson Speech to Text API
http://www.ibm.com/smarterplanet/jp/ja/ibmwatson/developercloud/speech-to-text.html
・Microsoft Cognitive Services Linguistic Analysis API
https://www.microsoft.com/cognitive-services/en-us/linguistic-analysis-api
・Apache Jena
https://jena.apache.org/
・E2D3
http://e2d3.org/ja/
Update: Jan 16, 2017
(Kazuhito Yokoi)