Use OpenLA in Google Colaboratory¶
Install OpenLA¶
[1]:
!pip install OpenLA
Collecting OpenLA
Downloading OpenLA-0.2.2-py3-none-any.whl (23 kB)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from OpenLA) (3.2.2)
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from OpenLA) (1.19.5)
Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from OpenLA) (1.1.5)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (3.0.6)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (2.8.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (0.11.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->OpenLA) (1.3.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->OpenLA) (1.15.0)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->OpenLA) (2018.9)
Installing collected packages: OpenLA
Successfully installed OpenLA-0.2.2
Import OpenLA¶
[2]:
import OpenLA as la
Mount google drive¶
[3]:
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
If you have uploaded the dataset of the course A to ‘data’ directory in GoogleDrive, the dataset files belong to ‘/content/drive/MyDrive/data’
[4]:
ls /content/drive/MyDrive/data
Course_A_EventStream.csv Course_A_LectureMaterial.csv Course_A_QuizScore.csv
Course_A_GradePoint.csv Course_A_LectureTime.csv
Load course data from google drive (‘/content/drive/MyDrive/data’)¶
[5]:
course_info, event_stream = la.start_analysis(files_dir="/content/drive/MyDrive/data",
course_id="A")
or
[6]:
course_info, event_stream = la.start_analysis(event_stream_file="/content/drive/MyDrive/data/Course_A_EventStream.csv",
lecture_material_file="/content/drive/MyDrive/data/Course_A_LectureMaterial.csv",
lecture_time_file="/content/drive/MyDrive/data/Course_A_LectureTime.csv",
# quiz_score_file="/content/drive/MyDrive/data/Course_A_QuizScore.csv", # in this code, quiz score and grade point is not needed
# grade_point_file="/content/drive/MyDrive/data/Course_A_GradePoint.csv"
)
Get reading time for contents “C1” and “C2” outside of lecture 2¶
[7]:
# event stream before lecture 2 started
events_before_lecture2 = la.select_by_lecture_time(course_info=course_info,
event_stream=event_stream,
lecture_week=2,
timing="before",
extension_minutes_before_lecture=0,
extension_minutes_after_lecture=0,
include_other_lecture_time=False)
# event stream after lecture 2 ended
events_after_lecture2 = la.select_by_lecture_time(course_info=course_info,
event_stream=event_stream,
lecture_week=2,
timing="after",
extension_minutes_before_lecture=0,
extension_minutes_after_lecture=10,
include_other_lecture_time=False)
# concatenate the event stream before/after lecture 2
events_out_lecture2 = la.concat_data([events_before_lecture2, events_after_lecture2])
# calculate reading time outside of lecture 2
reading_time, pagewise_aggregation = la.individual_reading_time(event_stream=events_out_lecture2,
user_id=None,
contents_id=["C1", "C2"],
invalid_seconds=5,
timeout_seconds=20*60,
return_aggregation_result=True,
time_unit="minutes",
for_each_content=True
)
[8]:
reading_time
[8]:
reading_minutes | ||
---|---|---|
userid | contentsid | |
A_U1 | C1 | 2.750000 |
C2 | 3.350000 | |
A_U10 | C1 | 11.633333 |
C2 | 0.466667 | |
A_U100 | C1 | 43.966667 |
... | ... | ... |
A_U97 | C2 | 20.183333 |
A_U98 | C1 | 4.450000 |
C2 | 36.166667 | |
A_U99 | C1 | 8.800000 |
C2 | 4.200000 |
220 rows × 1 columns