安裝相關包
pip install datasets, transformers
去官網看看有什么數據集
https://huggingface.co/datasets
我們選擇其中的一個數據集:cail2018
from datasets import load_dataset
datasets = load_dataset('cail2018')
datasets
DatasetDict({
exercise_contest_train: Dataset({
features: ['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'],
num_rows: 154592
})
exercise_contest_valid: Dataset({
features: ['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'],
num_rows: 17131
})
exercise_contest_test: Dataset({
features: ['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'],
num_rows: 32508
})
first_stage_train: Dataset({
features: ['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'],
num_rows: 1710856
})
first_stage_test: Dataset({
features: ['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'],
num_rows: 217016
})
final_test: Dataset({
features: ['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'],
num_rows: 35922
})
})
我們發現datasets里面是一個字典,每個字典里面是一個Dataset類,Dataset類里面有兩個屬性:features和num_rows,features是一個字典:
datasets['exercise_contest_train'].features.keys()
dict_keys(['fact', 'relevant_articles', 'accusation', 'punish_of_money', 'criminals', 'death_penalty', 'imprisonment', 'life_imprisonment'])
我們可以隨機選取10條來看看數據:
from datasets import ClassLabel
import random
import pandas as pd
# from IPython.display import display, HTML
def show_random_elements(dataset, num_examples=10):
assert num_examples <= len(dataset), "Can't pick more elements than there are in the dataset."
picks = []
for _ in range(num_examples):
pick = random.randint(0, len(dataset)-1)
while pick in picks:
pick = random.randint(0, len(dataset)-1)
picks.append(pick)
df = pd.DataFrame(dataset[picks])
for column, typ in dataset.features.items():
print(column, typ)
if isinstance(typ, ClassLabel):
df[column] = df[column].transform(lambda i: typ.names[i])
# display(HTML(df[:2].to_html()))
return df
df = show_random_elements(datasets["exercise_contest_train"])
print(df)
fact Value(dtype='string', id=None)
relevant_articles Sequence(feature=Value(dtype='int32', id=None), length=-1, id=None)
accusation Sequence(feature=Value(dtype='string', id=None), length=-1, id=None)
punish_of_money Value(dtype='float32', id=None)
criminals Sequence(feature=Value(dtype='string', id=None), length=-1, id=None)
death_penalty Value(dtype='bool', id=None)
imprisonment Value(dtype='float32', id=None)
life_imprisonment Value(dtype='bool', id=None)
fact ... life_imprisonment
0 蓬萊市人民檢察院指控,一、販賣毒品罪被告人楊某於2015年5月6日,經楊某甲介紹,在蓬萊市紫... ... False
1 經審理查明:(一)××罪上訴人姚某在擔任德清縣看守所副所長期間,利用職務便利,自2009年4... ... False
2 經審理查明,2008年4月,被告人劉某甲向李某賒賬購買化肥,並於同年4月20日向李某出具一份... ... False
3 朔州市平魯區人民檢察院指控,被告人孟某某作為浙江中礦建設集團有限公司駐平魯區蘭花永勝煤業有限... ... False
4 經審理查明:2017年6月13日14時40分許,被告人蘇某某駕駛重型自卸貨車沿省道331線(... ... False
5 公訴機關指控:一、××2014年6月至8月期間,被告人劉某甲化名劉某,謊稱自己有能力給被害人... ... False
6 經審理查明,2015年4月初至2015年4月21日期間,被告人郭某租用位於肅寧縣城關鎮玉皇廟... ... False
7 晉江市人民檢察院指控:2017年3月至6月期間,被告人陳某經預謀,准備手機、手機卡、銀行卡、... ... False
8 益陽市赫山區人民檢察院指控:一、××罪2015年4月25日晚8時許,被告人盛某與周某等人在謝... ... False
9 公訴機關指控,(一)××罪2015年2月18日,被告人楊某某駕車至沂水縣高庄鎮王家庄子村時,... ... False
[10 rows x 8 columns]
需要注意不同的datasets可能組成的結構不一樣,需要自己看看。