ValueError: precisa de mais de 1 valor para desempacotar

1

Quando executo este código:

~/cdec/training/mira/mira.py -d dev.lc-tok.es-en.sgm -t devtest.lc-tok.es-en.sgm -c cdec.ini -j 2

Eu recebo esta mensagem de erro:

 File "~/prefix/sw/cdec/training/mira/mira.py", line 551, in <module>
    main()
  File "~/prefix/sw/cdec/training/mira/mira.py", line 204, in main
    args.weights, hope_best_fear = optimize(args, script_dir, dev_size)
  File "~/prefix/sw/cdec/training/mira/mira.py", line 327, in optimize
    (source, refs) = split_devset(args.devset, args.output_dir)
  File "~/prefix/sw/cdec/training/mira/mira.py", line 314, in split_devset
    s,r = line.strip().split(' ||| ',1)
ValueError: need more than 1 value to unpack

Isso está acontecendo em este script

Posso consertar isso?

    
por user297091 02.02.2015 / 12:34

1 resposta

2

Literalmente, o que está acontecendo aqui é que o código espera dois valores na parte de trás de line.strip().split(' ||| ',1) (para que possa atribuí-los a s e r ), mas está apenas obtendo um. Assim explode.

Isso está acontecendo porque você não está usando o script corretamente. Se você olhar para o --help (ou mais acima no código, linha ~ 90), verá que ele espera um formato muito específico:

parser.add_argument('-d', '--devset', required=True,
                    help='dev set input file in parallel. '
                    'format: src ||| ref1 ||| ref2')

Você não está seguindo isso, por isso não pode se dividir e, portanto, explodir.

    
por Oli 02.02.2015 / 12:47