{
  "fetched_at": "2026-10-20T00:16:09Z",
  "source_url": "https://www.kaggle.com/competitions/cs-4248-fact-checking-2420/data",
  "pages": [
    {
      "name": "data-description",
      "content": "<h3>Dataset Description</h3>\n<p>The task is to do a mini-research for solving a fact-checking task. In this fact-checking task, you need to classify whether a text is an important fact (labeled as 1), an unimportant statement (labeled as 0), or a non-factual statement (labeled as -1).</p>\n\n<code>train.csv</code> contains 22,501 rows, where each row has three columns:\n<ul>\n    <li><code>Sentence_id</code>: a positive integer that represents the sentence identifier</li>\n    <li><code>Text</code>: the raw text to be verified</li>\n    <li><code>Verdict</code>: an integer number between [-1, 0, 1] represent the label of the corresponding text.\n        <ul>\n            <li><code>-1</code> means the text is a non-factual statement</li>\n            <li><code>0</code> means the text is an unimportant statement</li>\n            <li><code>1</code> means the text is an important fact</li>\n        </ul>\n    </li>\n</ul>\n\n<p><code>test.csv</code> contains 1,032 rows, where each row has 2 columns, same as the <code>train.csv</code> but without the <code>Verdict</code> column.</p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<h3>Congrats! You found the second assignment</h3>\n\n<p> Make sure you read the assignment pdf carefully. Rename your team name to your student number under the <a href=\"https://www.kaggle.com/competitions/cs4248-fact-check-2320/team\"> team page</a>. We encourage you to use public tools/libraries for building your model. Afterward, you can read the data descriptions in the Data tab and the evaluation descriptions in the Evaluation tab. </p>\n\n<h3> Integrity Note </h3>\n**!! WARNING !!** All three assignments in CS4248, including this Assignment 2 (A2), are strictly <u>individual</u> assignments. These assignments are all crafted such that you, as an individual student, can accomplish the assignment on your own, without needing to consult others or AI tools.  Explicitly, this means:\n<ul>\n  <li> NO discussion with fellow students, peers, seniors or alumni about any part of the assignment.\n  </li> \n  <li> NO use or consultation of AI Tools on the assignment.  This includes coding utilities such as Github Co-Pilot, Cursor, etc.  \n  </li> \n</ul>\nInevitably, as AI-enhanced tools are being added to many software packages, you may find it difficult to avoid the implicit use of AI.  Please ask us in the <b>Assignment 2</b> discussion forum on Canvas -- public discussion on the forum is sanctioned, as long as you do not give away answers; if you are unsure, ask your tutorial leader, or us directly via email.    \n\nWhile we enjoy having students talk and learn with each other, there are appropriate times to do this; but these assignments are not such an appropriate time. We have had to make the guidelines very explict (no sharing/consultation/discussion) since  it is hard to demarcate what is acceptable and what is not.  So we have had to forgo it for these assignments.   \n\nFailure to follow these guidelines may result in prosecution that take months to resolve and may result in significant penalties to your academic career.\n\n<h3> Limitations </h3>\n<ol>\n    <li> Your implementation should be runnable in Python 3.11.x.</li>\n    <li>To make it fair for everyone, the allowed machine learning algorithms are limited to the algorithms taught up to Week 6. Slight variations of the algorithm (different probability distribution for naive bayes, different activation functions), regularization, and normalization are allowed. RNNs are not allowed as it will be taught in Week 7.</li>\n    <li>Feature engineering is highly encouraged. Finding good features and manually combining ones that you think need to be combined such that a linear classifier can benefit from it will be helpful. Using pre-trained models and standard libraries to generate feature is allowed. </li>\n    <li>Using additional data instances (external data) is not allowed; only data augmentations of the provided data instances (e.g., upsampling) are allowed. This also means fine-tuning (continuing training or initializing weight) pre-trained models are not allowed.</li>\n</ol>\n\n<h3>Submission Guidelines</h3>\n<p>In order to make a submission to Kaggle, you need to :</p>\n<ol>\n    <li>Download <code>train.csv</code> and <code>test.csv</code>.</li>\n    <li>Implement your code. You may use the <a href=\"https://drive.google.com/drive/folders/19KDkbRjGMrMi0JByBd0W7alTFLW8QGOA?usp=sharing\"> skeleton code</a>.</li>\n    <li>Run the code. The skeleton code should automatically generate <code>A2_YourName_E01234567.csv</code>. (Do not forget to change to your student number in the code).</li>\n    <li>Make sure <code>A2_YourName_E01234567.csv</code> contains 2 columns: <code>Sentence_id</code> and <code>Verdict</code> , and the number of rows match with the number of rows in <code>test.csv</code> (which has 1,032 lines). We encourage you to check the file since you are limited to submit up to 20 submissions per day.</li>\n    <li>Log in to Kaggle, and head to <code>Submit Predictions</code> of this competition, then submit your <code>A2_YourName_E01234567.csv</code></li>\n    <li>See your score under the same page, or the <code>leaderboard</code> page.</li>\n    <li>Please take note that the score shown in the leaderboard is only from 50% of the test data, as the rest will be evaluated privately. You may see your final score (private score) sometime after the Assignment 2 due date.</li>\n</ol>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<h2>Evaluation Metric</h2>\n\n<p>The evaluation metric for this competition is  Macro F1-Score. The F1 score, commonly used in information retrieval, measures accuracy using the statistics precision p and recall r. Precision is the ratio of true positives (tp) to all predicted positives (tp + fp). Recall is the ratio of true positives to all actual positives (tp + fn). The F1 score is given by:</p>\n<p>\\[ F1 = 2\\frac{p \\cdot r}{p+r}\\ \\ \\mathrm{where}\\ \\ p = \\frac{tp}{tp+fp},\\ \\ r = \\frac{tp}{tp+fn} \\]</p>\n<p>The F1 metric weights recall and precision equally, and a good retrieval algorithm will maximize both precision and recall simultaneously. Thus, moderately good performance on both will be favored over extremely good performance on one and poor performance on the other.</p>\n\n<h2>Submission Format</h2>\n<p>The submission files should contain two columns: <code>Sentence_id</code> and <code>Verdict</code>.\n</p><p>The file should contain a header and have the following format:</p>\n<pre>Sentence_id,Verdict<br>1,1<br>2,0<br></pre>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "This is a page where you can include rules that participants must accept before joining. You may wish to include rules like:\n - Don't cheat!\n - Apply yourself!\n - Have fun!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}