Nlp Spacy returns";属性错误:';spacy.tokens.doc.doc';对象没有属性';跨度'&引用;在简单的.span赋值中。为什么?

Nlp Spacy returns";属性错误:';spacy.tokens.doc.doc';对象没有属性';跨度'&引用;在简单的.span赋值中。为什么?,nlp,spacy,spacy-3,Nlp,Spacy,Spacy 3,我只是想把文档的子部分标记为 这看起来很简单,但Spacy返回以下错误(并将其归因于第二行,即赋值): 我根本看不出发生了什么事。这是太空虫吗?span属性是否已被删除,即使它仍在文档中?如果不是,我错过了什么 警察局:我用Colab来做这个。和spacy.info显示: spaCy version 2.2.4 Location /usr/local/lib/python3.7/dist-packages/spacy Pla

我只是想把文档的子部分标记为

这看起来很简单,但Spacy返回以下错误(并将其归因于第二行,即赋值):

我根本看不出发生了什么事。这是太空虫吗?
span
属性是否已被删除,即使它仍在文档中?如果不是,我错过了什么

警察局:我用Colab来做这个。和
spacy.info
显示:

spaCy version    2.2.4                         
Location         /usr/local/lib/python3.7/dist-packages/spacy
Platform         Linux-4.19.112+-x86_64-with-Ubuntu-18.04-bionic
Python version   3.7.10                        
Models           en    
此代码:

nlp = English()
text = "The car with the white wheels was being confiscated by the police when the owner returns from robbing a bank"
doc = nlp(text)
doc.spans['remove_parts'] = [doc[2:6], doc[9:12]]
doc.spans['remove_parts']

从spaCy v3.0开始,应能正常工作。如果没有-您能否验证您实际上是从colab中的正确虚拟环境(而不是使用spaCy v2的不同环境)运行代码?我们以前看到过这样的问题:Colab仍然会访问系统上较旧的spaCy安装,而不是从正确的venv获取代码。要再次检查,您可以尝试直接在Python控制台中运行代码,而不是通过Colab。

哦,不,不,不,对不起。。。此文档以前已创建。我只是跳过了这部分,因为我认为它。请注意,该错误涉及“spacy.tokens.doc.doc”对象,这表明它确实是一个doc对象。关于安装,Colab已经包括Spacy,不需要安装它,它已经为我提供了一切,包括displace、textancy和其他库。它是否为2.x并不重要,因为
span
属性已经包含在内。除非我仍然缺少一些东西,否则我将添加导入和文档创建,以防万一。谢谢我看到科拉布用的是弗斯。2.2.4. 我现在不能在这里安装PyCharm。。。我希望我能很快做到。但是它也应该在vers 2中工作…
doc.span
肯定只在spaCy 3.0之后才可用,因此与Colab的版本冲突将是罪魁祸首。(您可能会混淆
doc.ents
,它已经存在很长时间了)啊。。。对这绝对有道理。Spacy的文档用v3.0标记了新特性,而
跨越了
它并没有这样标记,但它一定是被遗忘了。然而如果您看到,
ents
实际上被标记为3.0功能。。。这让我不能完全自信,但你可能是指
sents
?如果你确定“span”是3.0版的唯一功能,你能将它添加到你的答案中(或者你同意我添加它)而不是关于“Doc”问题的段落吗(这可能会使人们偏离真正的问题——很抱歉没有在一开始就明确指出这一点)这样我就可以把它标记为真正的答案?
spaCy version    2.2.4                         
Location         /usr/local/lib/python3.7/dist-packages/spacy
Platform         Linux-4.19.112+-x86_64-with-Ubuntu-18.04-bionic
Python version   3.7.10                        
Models           en    
nlp = English()
text = "The car with the white wheels was being confiscated by the police when the owner returns from robbing a bank"
doc = nlp(text)
doc.spans['remove_parts'] = [doc[2:6], doc[9:12]]
doc.spans['remove_parts']