yzhangcs / parser

:rocket: State-of-the-art parsers for natural language.
https://parser.yzhang.site/
MIT License
829 stars 141 forks source link

unexpected keyword argument 'defaults' #24

Closed attardi closed 4 years ago

attardi commented 4 years ago

Running:

python run.py -h

I get:

I0519 11:18:48.137495 139755282601792 file_utils.py:55] TensorFlow version 2.1.0 available. Traceback (most recent call last): File "run.py", line 5, in from parser.cmds import Evaluate, Predict, Train File "/project/piqasso/tools/biaffine-parser/parser/cmds/init.py", line 3, in from .evaluate import Evaluate File "/project/piqasso/tools/biaffine-parser/parser/cmds/evaluate.py", line 5, in from parser.cmds.cmd import CMD File "/project/piqasso/tools/biaffine-parser/parser/cmds/cmd.py", line 4, in from parser.utils import Embedding File "/project/piqasso/tools/biaffine-parser/parser/utils/init.py", line 3, in from . import corpus, data, field, fn, metric File "/project/piqasso/tools/biaffine-parser/parser/utils/corpus.py", line 10, in defaults=[None]*10) TypeError: namedtuple() got an unexpected keyword argument 'defaults'

attardi commented 4 years ago

Solution for Python 3.6

In parser/utils/corpus.py:

CoNLL = namedtuple(typename='CoNLL', field_names=['ID', 'FORM', 'LEMMA', 'CPOS', 'POS', 'FEATS', 'HEAD', 'DEPREL', 'PHEAD', 'PDEPREL'], ) # defaults=[None]10)
CoNLL.new.defaults = (None,)
10

yzhangcs commented 4 years ago

Python 3.7 works. And if you only care about training, directly delete this line.