{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example of Page Transition" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# import openLA as la\n", "import OpenLA as la" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "course_info, event_stream = la.start_analysis(files_dir=\"dataset_sample\", course_id=\"A\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Before conversion" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidoperationnamepagenomarkermemo_lengthdevicecodeeventtime
0A_U1C1PREV10NaN0tablet2018-04-09 10:57:15
1A_U1C1PREV9NaN0tablet2018-04-09 11:00:59
2A_U1C1PREV8NaN0tablet2018-04-09 11:03:31
3A_U1C1PREV30NaN0tablet2018-04-10 10:14:12
4A_U1C1PREV29NaN0tablet2018-04-10 10:27:24
...........................
263279A_U99C8NEXT3NaN0pc2018-06-05 16:16:18
263280A_U99C8ADD MARKER4difficult0pc2018-06-05 16:18:34
263281A_U99C8NEXT4NaN0pc2018-06-05 16:19:24
263282A_U99C8NEXT5NaN0pc2018-06-05 16:20:45
263283A_U99C8PREV6NaN0pc2018-06-05 16:21:03
\n", "

263284 rows × 8 columns

\n", "
" ], "text/plain": [ " userid contentsid operationname pageno marker memo_length \\\n", "0 A_U1 C1 PREV 10 NaN 0 \n", "1 A_U1 C1 PREV 9 NaN 0 \n", "2 A_U1 C1 PREV 8 NaN 0 \n", "3 A_U1 C1 PREV 30 NaN 0 \n", "4 A_U1 C1 PREV 29 NaN 0 \n", "... ... ... ... ... ... ... \n", "263279 A_U99 C8 NEXT 3 NaN 0 \n", "263280 A_U99 C8 ADD MARKER 4 difficult 0 \n", "263281 A_U99 C8 NEXT 4 NaN 0 \n", "263282 A_U99 C8 NEXT 5 NaN 0 \n", "263283 A_U99 C8 PREV 6 NaN 0 \n", "\n", " devicecode eventtime \n", "0 tablet 2018-04-09 10:57:15 \n", "1 tablet 2018-04-09 11:00:59 \n", "2 tablet 2018-04-09 11:03:31 \n", "3 tablet 2018-04-10 10:14:12 \n", "4 tablet 2018-04-10 10:27:24 \n", "... ... ... \n", "263279 pc 2018-06-05 16:16:18 \n", "263280 pc 2018-06-05 16:18:34 \n", "263281 pc 2018-06-05 16:19:24 \n", "263282 pc 2018-06-05 16:20:45 \n", "263283 pc 2018-06-05 16:21:03 \n", "\n", "[263284 rows x 8 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "event_stream.df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Behavior in each page with consideration page transition, e.g. going back and jumping page " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "page_transition = la.convert_into_page_transition(event_stream=event_stream,\n", " user_id=course_info.user_id()[:5],\n", " contents_id=\"C1\",\n", " invalid_seconds=5,\n", " timeout_seconds=20*60,\n", " count_operation=True,\n", " operation_name=[\"ADD MARKER\", \"ADD MEMO\", \"ADD BOOKMARK\"],\n", " separate_marker_type=False)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
useridcontentsidpagenoreading_secondstime_of_entrytime_of_exitADD MARKERADD MEMOADD BOOKMARK
0A_U1C192242018-04-09 10:57:152018-04-09 11:00:59000
1A_U1C181522018-04-09 11:00:592018-04-09 11:03:31000
2A_U1C1297922018-04-10 10:14:122018-04-10 10:27:24000
3A_U1C1275952018-04-10 10:27:242018-04-10 10:37:19000
4A_U1C128992018-04-10 15:13:552018-04-10 15:15:34000
..............................
1333A_U102C19232018-06-05 16:12:202018-06-05 16:12:43100
1334A_U102C151632018-06-05 16:12:432018-06-05 16:13:46000
1335A_U102C1473302018-06-05 16:13:462018-06-05 16:19:16000
1336A_U102C1483302018-06-05 16:19:162018-06-05 16:24:46100
1337A_U102C1234732018-06-05 16:24:462018-06-05 16:32:39000
\n", "

1338 rows × 9 columns

\n", "
" ], "text/plain": [ " userid contentsid pageno reading_seconds time_of_entry \\\n", "0 A_U1 C1 9 224 2018-04-09 10:57:15 \n", "1 A_U1 C1 8 152 2018-04-09 11:00:59 \n", "2 A_U1 C1 29 792 2018-04-10 10:14:12 \n", "3 A_U1 C1 27 595 2018-04-10 10:27:24 \n", "4 A_U1 C1 28 99 2018-04-10 15:13:55 \n", "... ... ... ... ... ... \n", "1333 A_U102 C1 9 23 2018-06-05 16:12:20 \n", "1334 A_U102 C1 51 63 2018-06-05 16:12:43 \n", "1335 A_U102 C1 47 330 2018-06-05 16:13:46 \n", "1336 A_U102 C1 48 330 2018-06-05 16:19:16 \n", "1337 A_U102 C1 23 473 2018-06-05 16:24:46 \n", "\n", " time_of_exit ADD MARKER ADD MEMO ADD BOOKMARK \n", "0 2018-04-09 11:00:59 0 0 0 \n", "1 2018-04-09 11:03:31 0 0 0 \n", "2 2018-04-10 10:27:24 0 0 0 \n", "3 2018-04-10 10:37:19 0 0 0 \n", "4 2018-04-10 15:15:34 0 0 0 \n", "... ... ... ... ... \n", "1333 2018-06-05 16:12:43 1 0 0 \n", "1334 2018-06-05 16:13:46 0 0 0 \n", "1335 2018-06-05 16:19:16 0 0 0 \n", "1336 2018-06-05 16:24:46 1 0 0 \n", "1337 2018-06-05 16:32:39 0 0 0 \n", "\n", "[1338 rows x 9 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "page_transition.df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Save the data to CSV file" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "page_transition.to_csv(save_file=\"data.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aggregate Information" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Number of users in the data\n", "page_transition.num_users()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['A_U1', 'A_U10', 'A_U100', 'A_U101', 'A_U102']" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# User ids in the data\n", "page_transition.user_id()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['C1']" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Contents ids in the data\n", "page_transition.contents_id()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ADD MARKER', 'ADD MEMO', 'ADD BOOKMARK']" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Operation names in the data\n", "page_transition.operation_name()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Number of selected operation logs\n", "page_transition.operation_count(operation_name=\"ADD MARKER\", \n", " user_id=\"A_U1\", \n", " contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'ADD MARKER': 2, 'ADD BOOKMARK': 3}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "page_transition.operation_count(operation_name=[\"ADD MARKER\", \"ADD BOOKMARK\"], \n", " user_id=\"A_U1\", \n", " contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "67" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Number of unique pages in the data\n", "page_transition.num_unique_pages(user_id=\"A_U1\", contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42748" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Total reading seconds in the data\n", "page_transition.reading_seconds(user_id=\"A_U1\", contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42748" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Total reading time in the data (seconds)\n", "page_transition.reading_time(time_unit=\"seconds\", user_id=\"A_U1\", contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "712.4666666666667" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Total reading time in the data (minutes)\n", "page_transition.reading_time(time_unit=\"minutes\", user_id=\"A_U1\", contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11.874444444444444" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Total reading time in the data (hours)\n", "page_transition.reading_time(time_unit=\"hours\", user_id=\"A_U1\", contents_id=\"C1\")" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "363" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Number of page transition (number of reading pages including duplication)\n", "page_transition.num_transition(user_id=\"A_U1\", contents_id=\"C1\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "pycharm": { "stem_cell": { "cell_type": "raw", "metadata": { "collapsed": false }, "source": [] } } }, "nbformat": 4, "nbformat_minor": 4 }