{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Explorations of Goodreads User-Book Interactions\n",
"\n",
"**Run this notebook only when you have LARGE memory (recommend 32g+)!**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import gzip\n",
"import json\n",
"import os\n",
"import sys\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load and process the dataset\n",
"\n",
"** Specify your directory here: **"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"DIR = './'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Load the huge '.csv' file **"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"PATH_IN = os.path.join(DIR, 'goodreads_interactions.csv')\n",
"df_interactions = pd.read_csv(PATH_IN)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Take a look of the first 5 lines; **\n",
"\n",
"** Check if there're any duplicated (user_id, book_id) pairs in the file. **"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== first 5 records ===\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" user_id | \n",
" book_id | \n",
" is_read | \n",
" rating | \n",
" is_reviewed | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0 | \n",
" 948 | \n",
" 1 | \n",
" 5 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" 0 | \n",
" 947 | \n",
" 1 | \n",
" 5 | \n",
" 1 | \n",
"
\n",
" \n",
" | 2 | \n",
" 0 | \n",
" 946 | \n",
" 1 | \n",
" 5 | \n",
" 0 | \n",
"
\n",
" \n",
" | 3 | \n",
" 0 | \n",
" 945 | \n",
" 1 | \n",
" 5 | \n",
" 0 | \n",
"
\n",
" \n",
" | 4 | \n",
" 0 | \n",
" 944 | \n",
" 1 | \n",
" 5 | \n",
" 0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" user_id book_id is_read rating is_reviewed\n",
"0 0 948 1 5 0\n",
"1 0 947 1 5 1\n",
"2 0 946 1 5 0\n",
"3 0 945 1 5 0\n",
"4 0 944 1 5 0"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"=== duplicated records ===\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" user_id | \n",
" book_id | \n",
" is_read | \n",
" rating | \n",
" is_reviewed | \n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [user_id, book_id, is_read, rating, is_reviewed]\n",
"Index: []"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"ideally you will not see any rows displayed above, then we are good now, no duplicates.\n"
]
}
],
"source": [
"print('=== first 5 records ===')\n",
"display(df_interactions.head())\n",
"print('=== duplicated records ===')\n",
"display(df_interactions[df_interactions.duplicated(['user_id', 'book_id'], keep=False)])\n",
"print('ideally you will not see any rows displayed above, then we are good now, no duplicates.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Display basic statistics\n",
"\n",
"'# shelved': the total number of records in this file\n",
"\n",
"'# read': the number of records where users read the books\n",
"\n",
"'# rated': the number of records where users provided rating scores for the books\n",
"\n",
"'# reviewed': the number of records where the book review texts are not empty"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" count | \n",
"
\n",
" \n",
" \n",
" \n",
" | # shelved | \n",
" 228648342 | \n",
"
\n",
" \n",
" | # read | \n",
" 112131203 | \n",
"
\n",
" \n",
" | # rated | \n",
" 104551549 | \n",
"
\n",
" \n",
" | # reviewed | \n",
" 16219149 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" count\n",
"# shelved 228648342\n",
"# read 112131203\n",
"# rated 104551549\n",
"# reviewed 16219149"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_stats = pd.DataFrame([df_interactions.shape[0],\n",
" df_interactions['is_read'].sum(),\n",
" (df_interactions['rating']>0).sum(),\n",
" df_interactions['is_reviewed'].sum()], \n",
" columns=['count'],\n",
" index=['# shelved', '# read', '# rated', '# reviewed'])\n",
"display(df_stats)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize user/item distributions\n",
"\n",
"** 1) count the number of interactions for each user/item **\n",
"\n",
"** 2) count the frequency of these numbers (i.e., ranks) **\n",
"\n",
"** 3) visulize for each type of interaction (log-log plots) **\n",
"\n",
"we'll see distributions are long-tailed, approximately follow power-law (zipf's law)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"shelve_user = df_interactions['user_id'].value_counts().value_counts().reset_index().sort_values('index').values\n",
"read_user = df_interactions['user_id'].loc[df_interactions['is_read']>0].value_counts().value_counts().reset_index().sort_values('index').values\n",
"rate_user = df_interactions['user_id'].loc[df_interactions['rating']>0].value_counts().value_counts().reset_index().sort_values('index').values\n",
"review_user = df_interactions['user_id'].loc[df_interactions['is_reviewed']>0].value_counts().value_counts().reset_index().sort_values('index').values\n",
"\n",
"shelve_book = df_interactions['book_id'].value_counts().value_counts().reset_index().sort_values('index').values\n",
"read_book = df_interactions['book_id'].loc[df_interactions['is_read']>0].value_counts().value_counts().reset_index().sort_values('index').values\n",
"rate_book = df_interactions['book_id'].loc[df_interactions['rating']>0].value_counts().value_counts().reset_index().sort_values('index').values\n",
"review_book = df_interactions['book_id'].loc[df_interactions['is_reviewed']>0].value_counts().value_counts().reset_index().sort_values('index').values"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(5,5))\n",
"plt.loglog(shelve_user[:,0], shelve_user[:,1], label='shelve')\n",
"plt.loglog(read_user[:,0], read_user[:,1], label='read')\n",
"plt.loglog(rate_user[:,0], rate_user[:,1], label='rate')\n",
"plt.loglog(review_user[:,0], review_user[:,1], label='review')\n",
"plt.xlabel('rank')\n",
"plt.ylabel('frequency')\n",
"plt.title('Log-Log Plot of the Distribution of Users')\n",
"plt.legend(loc='upper right')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ngg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(5,5))\n",
"plt.loglog(shelve_book[:,0], shelve_book[:,1], label='shelve')\n",
"plt.loglog(read_book[:,0], read_book[:,1], label='read')\n",
"plt.loglog(rate_book[:,0], rate_book[:,1], label='rate')\n",
"plt.loglog(review_book[:,0], review_book[:,1], label='review')\n",
"plt.xlabel('rank')\n",
"plt.ylabel('frequency')\n",
"plt.title('Log-Log Plot of the Distribution of Books')\n",
"plt.legend(loc='upper right')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}