task_categories:question-answering size_categories:10K<n<100K language:zh license:cc-by-sa-4.0 region:us
---
configs:
- config_name: default
  data_files:
  - split: train
    path: data/train-*
  - split: validation
    path: data/validation-*
  - split: test
    path: data/test-*
dataset_info:
  features:
  - name: id
    dtype: string
  - name: context
    dtype: string
  - name: question
    dtype: string
  - name: answers
    sequence:
    - name: text
      dtype: string
    - name: answer_start
      dtype: int32
  splits:
  - name: train
    num_bytes: 14839890
    num_examples: 10142
  - name: validation
    num_bytes: 4976411
    num_examples: 3219
  - name: test
    num_bytes: 1534360
    num_examples: 1002
  download_size: 4781898
  dataset_size: 21350661
license: cc-by-sa-4.0
task_categories:
- question-answering
language:
- zh
size_categories:
- 10K<n<100K
---
# Dataset Card for "squad-cmrc2018-zhtw"

## 資料集摘要

[CMRC 2018](https://hfl-rc.github.io/cmrc2018/) 是第二屆「訊飛盃」中文機器閱讀理解頒獎研討會（CMRC 2018）中相關競賽所使用的資料集。

它主要用於中文機器閱讀理解的跨度提取資料集，以增加該領域的語言多樣性。該資料集由人類專家在維基百科段落上註釋的近 20,000 個真實問題組成。

同時它也註釋了一個挑戰集，其中包含需要在整個上下文中進行全面理解和多句推理的問題。

原始資料來源:
- https://hfl-rc.github.io/cmrc2018/
- https://github.com/ymcui/cmrc2018

## 資料下載清理

1. 下載 [cmrc2018](https://huggingface.co/datasets/cmrc2018) 資料集
2. 使用 [OpenCC](https://github.com/yichen0831/opencc-python) 來進行簡繁轉換
3. 使用 Python 正規表示式來清理一些殘留在 `context`, `question`, `answer` 的不必要字元
4. 根據 `answers.text` 來重新計算 `answers.answer_start` 的字元位置
5. 使用 Huggingface Datasets 來上傳至 Huggingface Hub

## 資料集結構

範例如下：

```
{
  "id":"DEV_1889_QUERY_0",
  "context":"巴士底廣場是法國首都巴黎的一個廣場是法國大革命的重要紀念地方。過去是巴士底獄所在地直到攻佔巴士底獄隨後在法國革命期間的1789年7月14日到1790年7月14日之間被徹底破壞沒有留下任何痕跡。這個廣場跨巴黎市的3個區：第四區、第十一區和第十二區。這個廣場和周邊地區簡稱為“巴士底”。立於廣場中心的七月圓柱由路易-菲利普一世興建於1833年到1840年是為了紀念1830年的七月革命。其他顯著的特徵包括巴士底歌劇院、巴士底地鐵站以及一段聖馬丁運河。在1984年以前歌劇院所在的地方曾經是巴士底火車站。這個廣場經常舉辦音樂會或類似活動。巴士底的東北部擁有許多咖啡館、酒吧、夜總會和音樂廳夜生活頗為熱鬧。由於這個廣場具有相當的歷史意義也經常用於政治示威包括大規模的2006年3月28日法國勞工抗議。在巴士底廣場交匯的道路有聖安託萬路、聖安託萬市郊路、亨利四世大道、里昂路、勒努瓦大道、博馬舍大道等。",
  "question":"巴士底廣場是哪場革命的重要紀念地方？",
  "answers":{
    "text":[
      "法國大革命"
    ],
    "answer_start":[
      18
    ]
  }
}
```

## 資料欄位

所有配置(Split)的資料欄位都是相同的：

- `id`: (string) 編號
- `context`: (string) 問題內容的上下文
- `question`: (string) 問題
- `answers`: 問題回答(基於內容的上下文來提取), 在SQuAD的結構裡, `text` 與 `answer_start` 是一個 list 列表
  - `text`: list(string) 問題的答案
  - `answer_start`: list(int) 問題的答案位於 `context` 上下文中的位置
 
## 資料分割

這個資料集總有下列的分割(split)子集:

- `train`: 10,142 筆
- `test`: 1,002 筆
- `validation`: 3,219 筆

## 如何使用

```python
from datasets import load_dataset

# 請使用 `split="train"` 參數來指定要使用的分割(split)
dataset = load_dataset("erhwenkuo/squad-cmrc2018-zhtw", split="train")
```

詳細的教學可參考:
- [NLP 課程-問答系統](https://huggingface.co/learn/nlp-course/zh-TW/chapter7/7?fw=pt)

## 許可資訊

CC BY-SA 4.0

## 論文引用

```
@inproceedings{cui-emnlp2019-cmrc2018,
    title = "A Span-Extraction Dataset for {C}hinese Machine Reading Comprehension",
    author = "Cui, Yiming  and
      Liu, Ting  and
      Che, Wanxiang  and
      Xiao, Li  and
      Chen, Zhipeng  and
      Ma, Wentao  and
      Wang, Shijin  and
      Hu, Guoping",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP)",
    month = nov,
    year = "2019",
    address = "Hong Kong, China",
    publisher = "Association for Computational Linguistics",
    url = "https://www.aclweb.org/anthology/D19-1600",
    doi = "10.18653/v1/D19-1600",
    pages = "5886--5891",
}
```



   