簡體   English   中英

如何使用 torchtext 0.12.0 從 csv 加載數據

[英]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.

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