首先,打開 Jupyter Notebook 後,先來安裝套件
pip install datasets
from datasets import load_dataset
datasets = load_dataset('wikiann', 'zh')
print(datasets)
wikiann
數據集的中文版本DatasetDict({
validation: Dataset({
features: ['tokens', 'ner_tags', 'langs', 'spans'],
num_rows: 10000
})
test: Dataset({
features: ['tokens', 'ner_tags', 'langs', 'spans'],
num_rows: 10000
})
train: Dataset({
features: ['tokens', 'ner_tags', 'langs', 'spans'],
num_rows: 20000
})
})
train
(訓練集 20000 個)、validation
(驗證集 10000 個)、test
(測試集 10000 個)datasets["train"].features
{'tokens': Sequence(feature=Value(dtype='string', id=None), length=-1, id=None),
'ner_tags': Sequence(feature=ClassLabel(names=['O', 'B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-LOC', 'I-LOC'], id=None), length=-1, id=None),
'langs': Sequence(feature=Value(dtype='string', id=None), length=-1, id=None),
'spans': Sequence(feature=Value(dtype='string', id=None), length=-1, id=None)}
來看看完整的一筆資料裡面的內容
print(datasets["train"][0])
{
'tokens': ['2', '0', '0', '9', '年', ':', '李', '民', '基', '《', 'E', 't', 'e', 'r', 'n', 'a', 'l', '#', 'S', 'u', 'm', 'm', 'e', 'r', '》'],
'ner_tags': [0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
'langs': ['zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh', 'zh'],
'spans': ['PER: 李 民 基']
}
B-PER
-> 1
、I-PER
-> 2
,這種方式可以節省儲存空間,還可以提高電腦在處理和計算這些標籤時的速度datasets = load_dataset('wikiann', 'zh', split='train')
print(datasets)
split
指定要載入的特定子集,這裡我選擇 train
。Dataset({
features: ['tokens', 'ner_tags', 'langs', 'spans'],
num_rows: 20000
})
wikiann : 這個資料集的用途是進行命名實體識別訓練 NER 任務,其中模型的目標是從文本中識別和標記命名實體(主要例如人名、地名、組織名等,這也是最常見的)。我們可以使用訓練集來訓練 NER 模型,使用驗證集來調整模型的超參數,然後使用測試集來評估模型的效能,而且有非常多種語言的資料集。(有興趣可以直接到關往查看)