[英]How to load data from csv with torchtext 0.12.0
我試圖找出為 Torchtext 加載 csv 數據集的新方法,但我找不到任何明確的解釋。
給定一個包含兩列的 csv: text, class
,我可以找到的所有關於 torchtext 加載數據的教程如下:
tokenizer = lambda x: re.sub(r"[^a-zA-Z ]", "", x).split()
text = Field(sequential = True, use_vocab = True, tokenize = tokenizer, lower = True)
class = Field(sequential = False, use_vocab = False)
fields = {'text': ('text', text), 'class':('class', class)}
train_data, test_data = TabularDataset.splits(
path = 'data_directory/',
train = 'train.csv',
test = 'test.csv',
format = 'csv',
fields = fields
)
text.build_vocab(train_data, max_size=10000, min_freq=10)
train_iterator, test_iterator = BucketIterator.splits(
(train_data, test_data), batch_size = 2, device = "cpu"
)
以上從這個 git 存儲庫修改
但我找不到任何關於使用較新版本的 torchtext 加載數據的教程。 新的 torchtext 甚至不包含舊代碼。 如何使用新的 torchtext 0.12.0 加載 csv?
from torchdata.datapipes.iter import FileOpener, IterableWrapper
def get_data(split = "train"):
url_dp = IterableWrapper([f"{split}.csv"])
data_dp = FileOpener(url_dp, mode="b")
return data_dp.parse_csv().map(fn=lambda t: (t[0], t[1] ))
我使用 IterableWrapper 和 FileOpener 來解析我的 csvs。 然后,您可以將其傳遞給 DataLoader 以獲取所需的數據加載器。 我認為 torchtext 刪除了 csv 加載組件以減少冗余,因為 torchdata 負責所有數據處理用例。
希望這可以幫助。
編輯 2: https://github.com/pytorch/text/issues/711#issuecomment-1154000107 :從火炬團隊得到相同的回應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.