簡體   English   中英

如何獲取 Huggingface 數據集的唯一行?

[英]How can I take the unique rows of a Huggingface Dataset?

Huggingface 數據集有一個unique方法,它為特定列生成一個唯一 val 的列表。 這種方法非常快。

我想做類似的事情,但有兩個不同之處:

  1. 我不僅需要第一列( id ),還需要另一列( answer )。 對於每個id ,每個answer都是相同的,因此對於給定的id ,我們從哪一行得到answer是無關緊要的。

  2. 我希望結果是一個數據集,而不是一個列表,因為有很多值,我寧願不將它們全部加載到 Python memory 中。

我怎樣才能做到這一點?

據我從當前文檔中了解/理解,除非您從數據集中迭代兩次(不轉換為熊貓)並且不使用中間變量,否則無法做到這一點。 我還讀到其他開發人員遇到了同樣的問題,似乎重復數據刪除並不像人們想象的那么簡單。

在撰寫此評論時,僅 HF 沒有任何方法可以直接實現您想要的,除非您想使用 pandas 然后重新轉換。

如果您仍然只想使用 HF(沒有 pandas),這可能是一個潛在的解決方案:

我會這樣處理(你確實需要一個中間列表):

    initial_list = dataset.filter(lambda example: example['id'], example['answer'])
    _ , unique_indices = np.unique(initial_list, return_index=True, axis=0)
    filtered_dataset = dataset.select(unique_indices.tolist())

PS:我可以理解/期望這不是您想要的,但不幸的是,確實沒有任何內置/現成的純 HF 解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM