9/23 に東京大学で開催された技育展出場しました。
技育展 とは
技育展 は、人気 IT 企業などが参加する就活支援サービス「サポーターズ」のイベントで、「未来の技術者を育てる」技育プロジェクトの一環として 実施されています。
技育展は、アウトプットの促進を目的としたエンジニアを目指す学生のための、国内最大規模のピッチコンテストです。自らのアウトプット(作品)を展示(プレゼン)し、もの創りの楽しさ、厳しさ、可能性を知りながらコンテストの頂点に挑むイベントです。
200チーム以上が参加したブロック予選勝ち残った60チームが東京大学に集まり、作品についてのプレゼンを行いました。60チームの中から12チームのファイナリストが選出され、優勝と準優勝の作品が選ばれました、
開発した作品
アプリ:「wisdom Tree」
私たちは wisdom Tree というアプリを開発しました。
9/2 に開催された技育 CAMP アドバンス 9月 での作品をブラッシュアップするという形で出場しました。
9/2 の 技育 CAMP についてはこちらから
wisdom Tree は情報系の学びを得るためのアプリで、それぞれの情報系の単語の結びつきをたどって自分の知らない情報を見つけられます。
アプリはこちらのリンク実際に触ることができます。
wisdomTree
※現在のリンクは技育展 本戦にてブラッシュアップされたものに変わっています。
wisdomTree はある単語からその単語と関連するワードを見つけることができます。
単語には短い説明がセットになっていて、画面の左側にあるカードをクリックすることで読むことができます。
実際の動作の様子
以降仕様の変更がある可能性があります。
3 種類のノード
ノードの色 | 概要 |
---|---|
オレンジ | 一度選択されたノードで、また広がる要素を持つ |
黒 | 一度選択されたノードで、それ以上の広がりを持たない |
青 | まだ選択されておらず、ノードからさらに単語を広げられる |
検索のお助け機能
それぞれのノードについての説明文を開くと、それぞれのワードについて、Qiitaのタグ検索と、Google検索がボタン1つでできるようになっています。
担当したところ
wisdom Tree では、ノード同士の繋がりと記事の自動生成をしました。
単語同士の繋がりを取得するために、webから情報系の技術記事を取得し自然言語処理を行い、Jaccard係数を取得しましたが十分に関連性を得られませんでした。 そのため、既存にあるものから関連性を取得に方向転換を行いました。
技術記事には大抵タグとして関連する技術や言語が登録されていて、その双方には強い関係があります。そこでQiitaAPIを用いて、記事に登録されたタグを取得し同じタグ同士の組み合わせがどのくらいの数があるのかを集めサンプリングしました。それに加え精度向上のためZennからもタグの組み合わせのパターンを取得しました。それぞれのデータに対して正規化を行い、データを合成しました。
さらに追加して、Githubで公開されているスクリプトからその依存関係を集計してフレームワークやライブラリ、またそれらに含まれる関数についてのデータも追加しています。
記事はGithubAPIやwikipediaを用いて集め、GASを使って日本語に直し、不足した分はGPTに生成させています。
終わりに
技育展という全国から優れた作品ばかり集まるコンテストで、発表することができ、とても嬉しく思います。自分達もサービスのブラッシュアップを行なった中で、基本となるアイデアやその完成度など至らないところがたくさんあったと感じました。 ハッカソンに出場する中でさまざまなプロダクト開発について知る機会がありましたが、ハッカソンで開発されるプロダクトとはまた異なる、github Actions を使ったCI/CDやサーバーの保守についてまで考えられたものが多いと感じました。技術スタックにおいてもフロントエンドはNext.js、バックエンドはGOのようなモダンな開発ばかりで、自分の知識不足と経験不足を感じたので、これからも勉強を続けていかなければいけないと感じました。