# 20 Newsgroups Ciphertext Challenge — Data

来源：https://www.kaggle.com/competitions/20-newsgroups-ciphertext-challenge/data

本地 Meta Kaggle 快照；不是本次实时页面。

# Dataset Description

## What terms should I be aware of?

- A `cipher` is an algorithm that transforms a readable piece of information into an unreadable one (and in most cases vice versa).  Modern encryption algorithms - AES, DES, etc. - are examples of commonly used ciphers.

- In this case, we've used `simple` (or `classic`) `ciphers`.  For as long as information has existed, methods have been used to obscure the information's meaning.  Before computers were common, they usually consisted of a series of simple operations performed on text.  In this data you'll encounter multiple text-transformation ciphers that date back centuries, if not longer.

- Text that has been encrypted is referred to as `ciphertext`.  (Unencrypted text is usually called `plaintext`.)

The exact cipher(s) used to encrypt this data will be revealed at the end of the competition - if they're not discovered first!

## How has the text been encrypted?

Each document has been encrypted with up to 4 layered ciphers (ciphers 1, 2, 3, and 4).  We've used a `difficulty` value here to denote which ciphers were used for a particular piece of text.

Every document in the dataset was broken into sequential 300-character chunks, and all chunks for the document were then encrypted based on its `difficulty` level.  A `difficulty` of `1` means that only cipher #1 was used.  A difficulty of `2` means cipher #1 was applied, followed by cipher #2, and so on.  The `difficulty` level denotes exactly which ciphers were applied, and in what order.

To clear up some questions we've had:

  1) If a document is 301 characters long, the first chunk is 300 characters and the second is 1, etc.  
  2) Line breaks and other special characters in the original text count do count as characters for the 300-character chunks.  

## What files do I need?

You'll need **train.csv** and **test.csv**.  **sample_submission.csv** contains the same `Id`s that **test.csv** does.

## What should I expect the data format to be?

Each row in the data provides the ciphertext of a chunk of text from a document.  Most documents are represented by multiple rows.  Both files are simple CSV files containing `Id`s, ciphertext, and, in the case of the training data, a `target` column.

## What am I predicting?

The target is a multi-class label denoting which newsgroup the ciphertext originated in.

## File descriptions

*   **train.csv** - the training data - contains `Id`s and ciphertext samples for each document in the training set, along with a label.
*   **test.csv** - the test data - `Id`s and ciphertext.
*   **sample_submission.csv** - a sample submission file in the correct format.

## Data fields

*   **Id** - A unique ID for each chunk of ciphertext in the set.
*   **ciphertext** - A segment of encrypted text.
*   **difficulty** - Each document has been encrypted with between 1 and 4 ciphers.  The `difficulty` level of a segment of ciphertext denotes which ciphers were used, and in what order (see **How has the text been encrypted?** above).