Я уже часами просматриваю веб-страницу, чтобы найти решение для моего, что, как я полагаю, может быть довольно мелкой проблемой.
Я использую процессор части предложения Фастая (SPProcesor) в очень Первые шаги инициации языковой модели.
Мой код для этих шагов выглядит следующим образом:
bs = 48
processor = SPProcessor(lang='pl')
data_lm = (TextList.from_csv('', target_corpus, processor=processor)
.split_by_rand_pct(0.1)
.label_for_lm()
.databunch(bs=bs)
)
data_lm.save(data_lm_file)
После выполнения я получаю ошибку, которая выглядит следующим образом:
~/x/miniconda3/envs/fastai/lib/python3.6/site-packages/fastai/text/data.py in process(self, ds)
466 self.sp_model,self.sp_vocab = cache_dir/'spm.model',cache_dir/'spm.vocab'
467 if not getattr(self, 'vocab', False):
--> 468 with open(self.sp_vocab, 'r', encoding=self.enc) as f: self.vocab = Vocab([line.split('\t')[0] for line in f.readlines()])
469 if self.n_cpus <= 1: ds.items = self._encode_batch(ds.items)
470 else:
FileNotFoundError: [Errno 2] No such file or directory: 'tmp/spm/spm.vocab'
Правильный результат выполнения кода, приведенного выше, должен быть следующим:
созданная папка с именем 'tmp',
содержащая папку 'spm',
внутри которой должны быть размещены 2 файла с именами соответственно: spm. vocab и spm.model.
Вместо этого создается папка 'tmp' вместе с файлами
с именами "cache_dir" .vocab и "cache_dir" .model внутри моей текущей директории.
Папка 'spm' нигде не найдена.
Я нашел своего рода обходное решение.
Она состоит из ручного создания папки 'spm' внутри 'tmp' и перемещения этих двух других
упомянутых выше f в него, и меняя их имена на spm.vocab и spm.model.
Это позволяет мне продолжать обработку, но я бы хотел найти способ пропустить
эту необходимость вручную перемещение созданных файлов и др.
Может быть, мне нужно передать некоторые параметры (возможно, cache_dir) с указанными значениями c перед обработкой?
Если у вас есть идеи, как решить эту проблему, пожалуйста, укажите мне это.
Буду благодарен.