{
  "fetched_at": "2026-10-19T07:38:30Z",
  "source_url": "https://www.kaggle.com/competitions/goodreads-or-badreads/data",
  "pages": [
    {
      "name": "data-description",
      "content": "This dataset contains about 900k book reviews as well as some other features. Your task is to predict the `rating` column.\n\n## Files\n\n*   **train.csv** - the training set\n*   **test.csv** - the test set\n*   **sample_submission.csv** - a sample submission file in the correct format\n\n## Columns\n\n- `user_id` - Id of user\n\n- `book_i` - Id of Book\n\n- `review_id` - Id of review\n\n- `rating` - rating from 0 to 5\n\n- `review_text` - review text\n\n- `date_added` - date added\n\n- `date_updated` - date updated\n\n- `read_at` - read at\n\n- `started_at` - started at\n\n- `n_votes` - no. of votes\n\n- `n_comments` - no. of comments",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "Ever found yourself spending more time trying to decide what to read next than actually reading? Quality reviews can help you find the best stuff out there.\n\nWork with a dataset of book reviews, and build a model that can predict the rating of a review, ranging from 0-5.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Heads up!",
      "content": "- The dataset is designed such that you would have to perform a fair bit of preprocessing before training a classification model.\n\n- After the data is ready, `train_test_split` the data and see how your model is performing. If you feel that your model is performing well, go ahead and predict the values for the `test.csv`. Submit your predictions to check your score.\n\n- You are free to use anything or any model you like. However, ensure that you have a basic understanding of the model you are using.\n\n- Log all your experiments and results. You would need them to prepare the final presentation.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "These are rules that you must accept before participating in this competition.\n\n- **Don't cheat**. Plagiarism is strictly prohibited. You might be banned from the competition and being banned will be really bad for you in the future.\n\n- Use all the knowledge that you have learned in the course. No point in reserving some of your knowledge, can't even sell it.\n\n- **Have fun!** This is mandatory.\n- Don't focus on the leaderboard too much. It's the effort that counts :)\n\nAll the best!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Suggestions",
      "content": "Note that this is a Natural Language Processing (NLP) dataset, so you are expected to do extensive research on how to tackle NLP problems. Here are some hints to guide you -\n\n- Analyze the text data and perform appropriate preprocessing steps such as text cleaning, tokenization, or stemming/lemmatization. \n- You can create features using basic techniques like Bag of words or TF-IDF.\n- The above two steps will affect your model performance a lot, so do play around with different preprocessing techniques and feature engineering hyperparameters.\n- This is a multi-class classification problem. The class distribution might be skewed towards higher ratings (1-star ratings are always rare). How would you tackle class imbalance? \n- Remember that you don't have test data labels. Use validation techniques to test your model before submitting on Kaggle.\n- Lastly, this is a fairly large dataset. Don't waste time by running time-consuming code again and again. Save your preprocessed data and read about saving models with pickle.\n\nBest of Luck!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "Your submissions are evaluated on [Weighted F1 Score](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html).\n\n## Submission File\nFor each \"review_id\" in the test set, you must predict the \"rating\" variable. The file should contain a header and have the following format:\n\n    review_id,rating\n    94a41ad0c55523947,0\n    7aafd63d003c20d4fef,3\n    e2482359e76b,5\n    etc.\nCheck out the sample_submission.csv for a sample submission file.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}