TypeError: __init__() got an unexpected keyword argument 'tokenizer_language'

正在利用谷歌的 colab 学习 pytorch 关于 torchtext 的官方教程:LANGUAGE TRANSLATION WITH TORCHTEXT

执行下列代码时就遇到了报错

from torchtext.data import Field, BucketIterator

SRC = Field(tokenize = "spacy",
            tokenizer_language="de",
            init_token = '<sos>',
            eos_token = '<eos>',
            lower = True)

TRG = Field(tokenize = "spacy",
            tokenizer_language="en",
            init_token = '<sos>',
            eos_token = '<eos>',
            lower = True)

train_data, valid_data, test_data = Multi30k.splits(exts = ('.de', '.en'),
                                                    fields = (SRC, TRG))

TypeError: init() got an unexpected keyword argument ‘tokenizer_language’

但是查看官方关于torchtext 0.6.0的文档,发现明明有这个函数定义:

CLASS torchtext.data.Field(sequential=True, 
							use_vocab=True, 
							init_token=None, 
							eos_token=None, 
							fix_length=None, 
							dtype=torch.int64, 
							preprocessing=None, 
							postprocessing=None, 
							lower=False, 
							tokenize=None, 
							tokenizer_language='en', 
							include_lengths=False, 
							batch_first=False, 
							pad_token='<pad>', 
							unk_token='<unk>', 
							pad_first=False, 
							truncate_first=False, 
							stop_words=None, 
							is_target=False	)

看了一眼colab的 torchtext 版本:

!pip list

发现 torchtext 版本竟然是0.3.0的,于是重启jupyter notebook(如果不重启的话,notebook会提示你已经载入了torchtext库,不能更新版本),并安装较新的版本:

!pip install torchtext==0.4.0

问题解决,代码成功运行。

downloading training.tar.gz
training.tar.gz: 100%|██████████| 1.21M/1.21M [00:02<00:00, 598kB/s]
downloading validation.tar.gz
validation.tar.gz: 100%|██████████| 46.3k/46.3k [00:00<00:00, 167kB/s]
downloading mmt_task1_test2016.tar.gz
mmt_task1_test2016.tar.gz: 100%|██████████| 66.2k/66.2k [00:00<00:00, 162kB/s]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的引用内容,出现了TypeError: __init__() got an unexpected keyword argument 'date'和TypeError: __init__() got an unexpected keyword argument ‘encoding’的问题。这两个错误通常是由于使用了不支持的参数导致的。 对于第一个错误,TypeError: __init__() got an unexpected keyword argument 'date',这个错误通常发生在调用某个函数或方法时传递了不支持的参数。要解决这个问题,你需要检查你的代码,确保你传递的参数是正确的,并且与函数或方法的定义相匹配。 对于第二个错误,TypeError: __init__() got an unexpected keyword argument ‘encoding’,这个错误通常发生在使用json模块读取json文件时传递了不支持的参数。要解决这个问题,你需要检查你的代码,确保你传递的参数是正确的,并且与json模块的函数或方法的定义相匹配。 以下是两个示例来演示如何解决这两个错误: 1. 解决TypeError: __init__() got an unexpected keyword argument 'date'错误的示例: ```python class Person: def __init__(self, name): self.name = name person = Person(name='John', date='2021-01-01') # 错误的调用,传递了不支持的参数'date' ``` 在上面的示例中,我们在实例化Person类时传递了一个不支持的参数'date',导致了TypeError: __init__() got an unexpected keyword argument 'date'错误。要解决这个错误,我们需要检查代码并删除不支持的参数'date'。 2. 解决TypeError: __init__() got an unexpected keyword argument ‘encoding’错误的示例: ```python import json with open('data.json', 'r', encoding='utf-8') as file: # 错误的调用,传递了不支持的参数'encoding' data = json.load(file) ``` 在上面的示例中,我们在使用json模块读取json文件时传递了一个不支持的参数'encoding',导致了TypeError: __init__() got an unexpected keyword argument ‘encoding’错误。要解决这个错误,我们需要检查代码并删除不支持的参数'encoding'。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iteapoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值