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