SlideShare a Scribd company logo
Shinyによる
Scrapboxの共同編集履歴を
分析するアプリケーションの開発
龍谷大学大学院数理情報学専攻 修士1年
河村勇佑
1
目次
1. 背景
2. 目的
3. Shiny
4. その他ライブラリ・パッケージ
5. Scrapbox
6. 編集距離
7. 仕様
8. 使用想定
9. 使用結果
10. まとめ
2
背景
• (オンライン授業の増加)
• 複数人で作業し,最終的に1つの文書を提出する課題の存在
• 提出された課題文書の評価
• 提出された最終状態のみを見て評価
• 学習者の作業のタイミングや量にはどのような特徴があるのか
最終状態だけでは測定不可
3
目的
• 学習者の文書作成過程に関する特徴を可視化したい
• 複数人で編集した際の文書作成への参加具合を測りたい
• 入力したデータに合わせてグラフや選択肢を用意したい
4
Shiny
• Webアプリケーションを簡単に作るためのRのライブラリ
• R言語のみで記述
• インタラクティブなグラフや表の生成
• Shiny内の関数を用いた柔軟なUIの設計
• RとShinyで作るWebアプリケーション
• 梅津 雄一, 中野 貴広
5
ui.R/server.R
• UIとサーバ処理を2つの別ファイルに記述
6
ui.R server.R
入力欄(input)を設定 入力を受け取り処理
ui.rに受け渡す
出力結果(output)を表示
input$(変数名)
output$(変数名)
入力欄(input)を設定 入力を受け取り処理
入力に応じた入力欄を作成
作成した入力欄をui.rに受け渡す
入力欄(output)を表示
入力欄(input)を設定
input$(変数名)
output$(変数名)
input$(変数名) 入力を受け取り処理
…
Shinyを用いたwebアプリケーション例
• 今田 一希, 船山 貴光, 山田 実俊, 山本 義郎,Shinyアプリケーションを
用いたインタラクティブな顧客情報の分析と可視化,計算機統計学
2020 年 33 巻 1 号 p. 31-40
• 山田 実俊, 山本 義郎,RStudioを利用したサッカー試合のゾーン使用
率・ゾーン支配率の可視化,計算機統計学2017 年 30 巻 1 号 p. 59-
70
7
論文より引用
その他の利用ライブラリ・パッケージ
• tidyverse
• ggplot2・・・グラフ描画
• dplyr・・・データフレーム成形
• stringdist・・・編集距離の導出
• lubridate・・・日付に関する処理
8
Scrapbox
• Notaが提供する情報整理サービス
9
プロジェクト プロジェクト
A
B
C
A
D
ページ ページ
ページ ページ
ページ ページ
ページ
ページ
Scrapbox
• 非階層構造
• 同時編集
• 自動保存
• 双方向のリンク
10
Scrapbox-userscript
• Scrapbox内に作成できるマイページに特定の記法でjavascriptを記述
することで各ページに適用可能
• ボタンの追加や各APIへのリクエストが可能
• cssを記述すれば見た目の変更も可能
11
編集距離-レーベンシュタイン距離
• 「文字列Aから文字列Bへ変えるのに何文字編集すればいいか」
の最小値
• 編集
• 挿入
• 削除
• 置換
た ら い
た い い く さ い
た い
た い い
た い い く
た い い く さ
「ら」を削除
「い」を挿入
「く」を挿入
「さ」を挿入
「い」を挿入
仕様-機能
• データの読み込み
• 編集距離の計算
• 学習者ごとにデータ集計
• 棒グラフ,円グラフ
• 時系列で累計編集距離を計算
• 折れ線グラフ
• 集計に含める人,含めない人の選択
• 折れ線グラフの表示範囲設定
13
仕様-操作方法
0.マイページに編集履歴取得用のuserscriptを記述
• ダウンロードボタンの作成と編集履歴を取得するAPIへのリクエスト
14
仕様-操作方法
1.編集履歴を取得したいページでダウンロードボタンを押す
15
取得するデータ(commit_data)
commitId レコードのId
ParentId どのレコードの次か
created レコードが作られた日時(UNIX時刻)
userId 作業したユーザのId
operate 作業内容
lineId どの行に対して操作を行なったか
lineId2 どの行に対して操作を行なったか2
origText 元のテキスト
text 作業後のテキスト
16
編集距離を計算
• Insert
• Update
• Delete
仕様-操作方法
2.ダウンロードしたcsvファイルをshinyで制作したアプリケーションに
アップロード
17
仕様-操作方法
3.集計結果の表示
18
仕様-操作方法
3.集計結果の表示
19
使用想定
• Scrapboxによる文書作成
• 複数人or一人による作成+教員のコメント等に対応
• 文書作成する期間を定め,その期間が終わってからデータを取得
20
今回は
• 同研究室の大学院生に文書の作成をScrapbox上で行うよう依頼
• 11/25~12/2までを期間とし,12/3にデータ取得
使用結果
21
• 終了日の前日にほぼ仕上げた
• 序盤と終盤にまとめて作業した
集計期間 開始日(11/25)~終了日(12/2)
集計モード 日別
使用結果
22
• 作業している日は昼過ぎから夕方にかけて
作業する
• 1日に2回に分けて作業はしない
集計期間 11/26~11/27
集計モード 最小区間
今後の展望
• 文書のどのあたりを編集しているのか(文書末を書き足しているのか,
文書の途中を書き直しているのか)の可視化
• Scrapboxの特徴であるリンクに着目した作業量の分析
• Scrapboxの他のAPIの活用
• レーベンシュタイン距離以外の編集距離の検討
• 編集履歴のデータから実際に文書ができていく過程を再現
• さまざまな形態の文書に対する検討
23
まとめ
• Scrapboxで作成した文書の編集履歴から
学習者の文書作成活動の傾向を観察することが可能
• Shinyを用いたことでUIが簡単に用意可能
• webアプリケーションなので環境によらず使える
• 入力に応じたインタラクティブな出力が可能
24

More Related Content

Similar to Rjpusers1218kawamura

漢籍利用者の研究プロセスと利用者タスク
漢籍利用者の研究プロセスと利用者タスク漢籍利用者の研究プロセスと利用者タスク
漢籍利用者の研究プロセスと利用者タスク
Maiko Kimura
 
Rを使ったコンピュータ適応型テスト構築の試み
Rを使ったコンピュータ適応型テスト構築の試みRを使ったコンピュータ適応型テスト構築の試み
Rを使ったコンピュータ適応型テスト構築の試み
Mizumoto Atsushi
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
Taro L. Saito
 
Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方
Yoshitaka Seo
 
卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント
Tsubasa Hirakawa
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
Daisuke Taniwaki
 
文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...
文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...
文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...
Shohei Okada
 
Twitterにおける即時話題推定技術「どたばたかいぎ」の開発
Twitterにおける即時話題推定技術「どたばたかいぎ」の開発Twitterにおける即時話題推定技術「どたばたかいぎ」の開発
Twitterにおける即時話題推定技術「どたばたかいぎ」の開発
Eric Sartre
 
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06俊仁 小林
 
SoCC12報告
SoCC12報告SoCC12報告
SoCC12報告
Hirotaka Ogawa
 
Lab-ゼミ資料-5-20150512
Lab-ゼミ資料-5-20150512Lab-ゼミ資料-5-20150512
Lab-ゼミ資料-5-20150512
Yuki Ogasawara
 
Code4Lib 2013参加報告
Code4Lib 2013参加報告Code4Lib 2013参加報告
Code4Lib 2013参加報告
Masao Takaku
 
HiroshimaR6_Introduction
HiroshimaR6_IntroductionHiroshimaR6_Introduction
HiroshimaR6_Introduction
SAKAUE, Tatsuya
 
Scrum体験スパルタワークショップ
Scrum体験スパルタワークショップScrum体験スパルタワークショップ
Scrum体験スパルタワークショップ
You&I
 
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
 
読書会のすすめ
読書会のすすめ読書会のすすめ
読書会のすすめ
Satoshi Noto
 
データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用
データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用
データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用
Kenichi Kamiya
 
Survey of Scientific Publication Analysis by NLP and CV
Survey of Scientific Publication Analysis by NLP and CVSurvey of Scientific Publication Analysis by NLP and CV
Survey of Scientific Publication Analysis by NLP and CV
Shintaro Yamamoto
 
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
Masayoshi Kondo
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
Recruit Technologies
 

Similar to Rjpusers1218kawamura (20)

漢籍利用者の研究プロセスと利用者タスク
漢籍利用者の研究プロセスと利用者タスク漢籍利用者の研究プロセスと利用者タスク
漢籍利用者の研究プロセスと利用者タスク
 
Rを使ったコンピュータ適応型テスト構築の試み
Rを使ったコンピュータ適応型テスト構築の試みRを使ったコンピュータ適応型テスト構築の試み
Rを使ったコンピュータ適応型テスト構築の試み
 
Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例Presto As A Service - Treasure DataでのPresto運用事例
Presto As A Service - Treasure DataでのPresto運用事例
 
Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方
 
卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
 
文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...
文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...
文献紹介:An Iterative 'Sudoku Style' Approach to Subgraph-based Word Sense DIsamb...
 
Twitterにおける即時話題推定技術「どたばたかいぎ」の開発
Twitterにおける即時話題推定技術「どたばたかいぎ」の開発Twitterにおける即時話題推定技術「どたばたかいぎ」の開発
Twitterにおける即時話題推定技術「どたばたかいぎ」の開発
 
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
大規模JSプロジェクト ロードオブナイツの管理手法紹介 2012-11-06
 
SoCC12報告
SoCC12報告SoCC12報告
SoCC12報告
 
Lab-ゼミ資料-5-20150512
Lab-ゼミ資料-5-20150512Lab-ゼミ資料-5-20150512
Lab-ゼミ資料-5-20150512
 
Code4Lib 2013参加報告
Code4Lib 2013参加報告Code4Lib 2013参加報告
Code4Lib 2013参加報告
 
HiroshimaR6_Introduction
HiroshimaR6_IntroductionHiroshimaR6_Introduction
HiroshimaR6_Introduction
 
Scrum体験スパルタワークショップ
Scrum体験スパルタワークショップScrum体験スパルタワークショップ
Scrum体験スパルタワークショップ
 
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
 
読書会のすすめ
読書会のすすめ読書会のすすめ
読書会のすすめ
 
データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用
データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用
データベースソフトウェアを利用した外国語教育のための教材作成支援と教材データの多目的利用
 
Survey of Scientific Publication Analysis by NLP and CV
Survey of Scientific Publication Analysis by NLP and CVSurvey of Scientific Publication Analysis by NLP and CV
Survey of Scientific Publication Analysis by NLP and CV
 
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
 

Rjpusers1218kawamura

Editor's Notes

  1. 目的を追加
  2. 文書の最終状態をみるだけではわからないような 最後のを達成するためにshinyを用いました
  3. Shinyの他のアプリ ui,server 書籍
  4. 関連研究というよりは可視化にshinyが遣われる例はままあって自然なアプローチ
  5. tidyverseの中からグラフ描画とデータフレーム成形のためのライブラリを, 編集距離を扱うためのstringdist 日付を扱うためのlubridateを用いました
  6. Scrapboxにはプロジェクトというグループ単位で扱われ,プロジェクトには1人以上メンバーが参加しています. 各メンバーにそれぞれの編集権限などはなく,プロジェクトのメンバーであればどのページも編集することができます. 一人が複数のプロジェクトに参加することも可能です・
  7. プロジェクトのとっぷぺーじはこのようになっており,非階層構造です.よく使うページは先頭にピン止めすることができます. またこの図のように複数人で同時に編集することが可能でその場合同時に編集している人の名前とカーソルが表示されます. 他にもページ間の移動が簡単にリンクで行えるようになっていたり,コードを記述することができるのも特徴です.
  8. ページの中にはメンバーのマイページというものがあります.そこに特定の気泡でjsを記述すると,そのユーザはほかのページでもそのjsを適用することができます.
  9. Userscriptを描いた人が使えるから評価者のみ書けばよい RでAPIにリクエストすることもできるがjsで行う方が後のデータ成形が容易だったためuserscriptを利用 ログイン制約もなくなる
  10. Commit_dataは行ごと,特定期間ごと
  11. 縦軸は,横軸は 累計編集距離
  12. 縦軸は,横軸は 累計編集距離