u++の備忘録

「NHKハッカソン- 教育×シビックテック×ニュース」参加録

運営に関わる知人に誘われ、この週末に開催された「NHKハッカソン- 教育×シビックテック×ニュース」に参加してきました。以下がイベントページから抜粋した本イベントの概要です。NHKのニュース関連のAPIを用いて開発できる貴重な機会でした。

今回は「NHK for School」「NHK NEWS WEB」などのデータを活用し、試験的にサービスやアプリケーションを開発することを通して、新たな学びの可能性を探ります。コロナ禍で教育現場や子どもたちの日常に大きな変化が起きている今、新しいサービスやコンテンツのアイデアが本イベントの中で生まれ、カタチとして表現されることを期待しています。

NHK for Schoolは子どもや先生向けに学びのための動画コンテンツが集まっているサイト、NHK NEWS WEBNHKの一般的なニュースサイトです。APIを通じて、動画・画像・テキスト・ジャンルなど各種情報を取得できました。

日程は10月22、23日の2日間でした。初日冒頭の企画立案で、全員が取り組みたい内容をスライド1枚にまとめ、内容が類似した参加者同士でチームを組みました。私を含めた3人のチームの題材は「学びとニュースを繋ぐ」になりました。実装したのは、NHK for Schoolで学びのための動画を観た後、関連する話題についてのNHK NEWS WEBのニュースが表示されるウェブサービスです。学んだことと世の中との繋がりを実感できることが、より主体的・積極的な学びを促すことを期待しました。

具体的な処理の流れを以下に示します。

  1. ユーザから検索語を受け取る
  2. 検索語を含む「NHK for School」の動画クリップを一つ表示
  3. 表示した動画クリップのタイトルや説明文を形態素解析ツール「MeCab」で処理し、名詞部分を「キーワード」として抽出(各キーワードは「TF-IDF」で重要度を計算しておく)
  4. それぞれの名詞で「NHK NEWS WEB」の記事を検索し、重複を排除した記事群を「関連記事」とする
  5. 関連記事は、各記事に含まれるキーワードを用いてスコア付けし、降順で表示

言語はチームメンバーが共通で利用可能だったPythonを選び、フロントエンドの実装には「Streamlit」を使いました。最終発表時などは「ngrok」を使って、実際に触ってもらえるような環境を整えました。ハッカソンの参加は久々でしたが、日頃の業務経験も生かして、円滑に開発を進められたと思います。

NHKが自社のAPIを(参加者限定とはいえ)社外の参加者に公開し、このようなハッカソンを開催していることに、良い意味で非常に驚きました。ドキュメントもきちんと用意されており、特に不自由なく開発を進められました。参加同意書によると成果物も公開可能とのことで、問題のない範囲で下記リポジトリにまとめました。

github.com