- 中尾龍矢 :アルゴリズム担当
- 伊地知翔也 :UI兼サーバー構築
- パニアグアカルロス :UI担当
以前、友人にプログラムの相談を持ち掛けた際、うまく説明できず、なかなか解決に至らなかった経験があります。
これをきっかけに「強化版ラバーダック・デバッグを作ってみたらどうだろう」と思い、開発に至りました。
「ラバーダック・デバッグ」とはソフトウェア工学の一つの手法で、ゴム製アヒル人形にコードの説明を一行ずつを行い、その過程で解決策を得るというものです。
この手法のメリットは、プログラマが自身のコードについて、達成したい目的と意図を言語化する過程にあります。(アヒル人形をプログラム初心者として捉え、)相手が正しく理解できるように様々な表現や着眼点を模索することで、新たな解決策と深い理解へ繋がることができます。
本製品は、ユーザが話したアルゴリズムの動作や変数、関数といった関係をAIが解析し、わかりやすく表示します。これにより、理解を助けるとともに、意図していた説明との食い違いや、わかりずらい抽象的な単語を避け、わかりやすい説明と明快な理解を促します。
1. 「開始ボタン」を押して話そう
2. 話終わったら「終了ボタン」を押そう
3. 右下の「送信ボタン」で解析開始
4. 結果が表示させる
デダックのデモサイトはこちらです (Android/Desktop番Chromeのみ対応))
音声での入力(説明)の中で、抽象的、複雑な単語(主に技術用語)を検知し、その部分の具体的な説明を推奨する。
実際にメモを取ることなく、画面と常に向かい合って作業ができるので、スムーズに説明と考察を繰り返せる。
入力された説明をAIで解析し、自動的に要点をかいつまみ表示する。
「ラバーダック・デバッグ」 特徴1の機能によって、再度説明をしたときに理解のしやすい説明になり、利用者を深い理解に誘導しやすくなります。 また、特徴3の機能によってユーザの認識と、実際に話した説明が食い違いを見つけやすくする。また、説明はできるが具体的にどんな実装をすればよいのかを納得しきれていないときに、判断の指標としてリスト化しておけます。
- 要点を抽出する処理において、正確な文節の親子関係を推測する事が技術的に間に合わなかったこと
- アプリ化すること
- 音声認識APIがchrome(Android/desktop番)のみしか対応していないので、対応させたい。
- 利用者が入力した音声データから複雑な単語を抽出する機能
- チャット風のUIに仕上げたことで親密感を上げたこと
- Intro.jsを導入したことによりチュートリアルを実装したこと
- 自然言語処理(ユーザが話した言葉を解析する処理)
- さくらインタネットサーバー
- CaboCha/南瓜
- MeCab
- Flask
- intro.js
- jQuery
- 利用者が入力した音声データから複雑な単語、伝えたい要点を抽出する機能
自然言語処理の勉強と独自研究(CaboChaから送られてくる係り受けについて、親子関係の推定)