[英]How can I take the unique rows of a Huggingface Dataset?
Huggingface 數據集有一個unique
方法,它為特定列生成一個唯一 val 的列表。 這種方法非常快。
我想做類似的事情,但有兩個不同之處:
我不僅需要第一列( id
),還需要另一列( answer
)。 對於每個id
,每個answer
都是相同的,因此對於給定的id
,我們從哪一行得到answer
是無關緊要的。
我希望結果是一個數據集,而不是一個列表,因為有很多值,我寧願不將它們全部加載到 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.