Как мне поступить с ошибкой: - несбалансированная скобка в позиции 32 - PullRequest
2 голосов
/ 03 июня 2019

КОД: - train_validation_split = tfds.Split.TRAIN.subsplit ([6, 4])

   (train_data, validation_data), test_data = tfds.load(
   name="imdb_reviews", 
   split=(train_validation_split, tfds.Split.TEST),
   as_supervised=True)

1). ОШИБКА = несбалансированная скобка в позиции 32.

2). Я получаю эту ошибку при загрузке набора данных imdb.

3). Изображение кода с ошибкой

1 Ответ

4 голосов
/ 20 июня 2019

tldr;

  • Это проблема разделителя пути Windows.(Почему Windows это делает? Подробнее о здесь )

  • Разрешение:

    • Использование Google Colab использовать tensorflow_datasets (рекомендуется)
    • Использовать * nix-подобные системы (где разделитель путей /)

Что пошло не так?

Escape-символ и regex

В строка 156 из what_ever_python/Lib/site-packages/tensorflow_datasets/text/imdb.py

reg_path = "(?P<label>neg|pos)" if labeled else "unsup"
reg = re.compile(os.path.join("^%s" % directory, reg_path, ""))
  • В Windows

    1. os.path.join("^%s" % directory, reg_path, "") => '^aclImdb\\train\\(?P<label>neg|pos)\\'
    2. И это то, что программа видит '^aclImdb\train\(?P<label>neg|pos)\'
    3. И регулярное выражение см:^ + aclImdb + tab + rain + ( (это экранированный символ, приведший к ошибке unbalanced parenthesis) + ... + ) (это персонаж закрытой группы, которому его открытый компаньон был экранированный ) + ...
  • On * nix

    1. os.path.join("^%s" % directory, reg_path, "") => '^aclImdb/train/(?P<label>neg|pos)/' и ничего не происходит сбежал .

P / S: Эти парни используют только Macbook и 1083 * забыть * никогда не сталкивался с , или отказывался от Windows path problem?Я никогда больше не использую os.path.join().

...