Wiki更新内容自動通知BOT+校則診断サービス【中間発表】

Wiki更新内容自動通知BOT+校則診断サービス【中間発表】

千葉県立柏の葉高等学校 情報理数科

プログラムのソースコードは「https://github.com/KunitakeYuto/MediawikiAPIs

1.システムの概要

1)開発動機

全国校則wikiというwikiサービスの運用をしている中で、更新された記事名をツイートするという作業を行っている。しかし毎日更新された記事を確認してツイートするというのは単純ではあるものの面倒な作業であり、更新記事名を自動で投稿するサービスあれば日々の労力が下がると考えたのが開発動機である。


2)完成イメージ

〇Wiki更新内容自動通知BOT

画像1

日にち、更新された記事名、現在の掲載数を通知する。

〇校則診断サービス
20個程度のアンケートに答えることでおすすめの学校校則を紹介する。

2.システムの詳細

1)搭載する機能の紹介

〇要件定義-Wiki更新内容自動通知BOT
システム図

画像2

・MediaWikiAPIによって学校名を取得する
・BS4によって更新記事名をスクレイピングし、Listに格納
・日にち、更新された記事名、現在の掲載数をツイート

〇要件定義-校則診断サービス
・全国校則wikiからAPIによって記事内容を取得
・記事内の単語を「日本語評価極性辞書」にPythonで照らしあわせ極性分析を-1~1の範囲で行う
・校則自由度を極性分析結果から算出(数値の積み重ね)
・アンケート(例えばスマホ持ち込みができる学校がいいのかどうか等)に答えることで、回答者が望む校則自由度の学校名を知ることができる。


〇開発計画-Wiki更新内容自動通知BOT

6月:MediaWikiAPIによる記事の取得、編集
   :TwitterAPIの取得
7月:自動ツイート実装
   :スクレイピング実装
   :Herokuにデプロイ
8月:以降バグ,コーナーケースの修正


〇開発計画-校則診断サービス


7月:記事の内容自体の取得
   :pythonの単語頻出度解析による校則自由度の数値化
   :東北大学の極性分析辞書を利用した文章全体の数値化
8月:分析結果の数値が直感的な校則自由度と相関しているかの検証
   :相関していなかった場合-別の数値化方法の検証
   :相関していた場合-極性分析を実装する
   :Twitter連携のWebサイトを作成
   :校則自由度を測る質問の作成
   :Web上で質問に答えて対応した学校が表示される仕組みの実装
   :結果のツイート機能の実装


2)取り組んだ内容

〇こだわった点-Wiki更新内容自動通知BOT
自分の組織内の業務効率化ツールなので要件定義で示した条件を満たせばとくにコードに対するこだわりはない。開発への取り組み方のこだわりとしては、透明感ある組織を目指しているのでコードをGitHubで公開する予定(現状はTwitterの秘密キーをコードに直接記述しているのでプライベートリポジトリだが今後環境変数を使ってパブリックリポジトリにする)

〇こだわった点-校則診断サービス
他に類を見ない校則データベースを活かしたサービスを何か提供できないかを考えた所、自分に合った校則の学校を見つける校則診断サービスを思いついた。なお結果をツイートできるようにすることで診断メーカー的な流行(バズり)を期待をする。

〇苦労した点
開発を繰り返すに当たってPythonのコードが肥大化したため何度か書き直しを行い可読性も確保した。これはPublicリポジトリにすることで将来的に誰でも校則wikiのデータを利用できるようにすることを踏まえた作業である。

画像3


3)開発環境

〇言語
 Python3
 PHP
 JavaScript
 WikiMarkup

〇開発環境
 GitHub
 VScode
 MediaWiki
 GoogleAppsScript
 TwitterDeveloperTool
 Heroku


3.2学期への意気込み

 更新校則の取得ツイートプログラムを想定より速く完成させることができたので、校則診断サービスも2学期前半に完成させ、さらにもう一つ機能を追加していきたい。


つづきの記事はこちらからお読みください。


GJ!!
千葉県立柏の葉高等学校 情報理数科
千葉県立柏の葉高等学校 情報理数科の公式note / 全国専門学科「情報科」高等学校長会 事務局 / 日本で唯一の「情報理数科」の高校 / 【投稿内容】◇専門教科「情報」の授業 ◇情報理数科独自の取り組み ◇Google Workspace&Microsoft Teamsの活用