如何使用Hugging Face中的datasets


安裝相關包

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可能組成的結構不一樣,需要自己看看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM