从 nlp 对象制作列表不起作用,而 spacy 讲座采用该方法

making a list from nlp object is not working while the spacy lecture goes with that approach

我正在尝试跟进 spacy.io 的讲座。

但是,我运行遇到了一个st运行ge问题。

首先分享link官方spacy网页的代码

https://course.spacy.io/en/chapter3

在他们提供的示例代码中,

import spacy
from spacy.matcher import PhraseMatcher
from spacy.tokens import Span

nlp = spacy.load("en_core_web_sm")
animals = ["Golden Retriever", "cat", "turtle", "Rattus norvegicus"]
animal_patterns = list(nlp.pipe(animals))
print("animal_patterns:", animal_patterns)
matcher = PhraseMatcher(nlp.vocab)
matcher.add("ANIMAL", None, *animal_patterns)

当我在我的 jupyter 上 运行 时,

错误信息如下。

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 5 nlp = spacy.load("en_core_web_sm") 6 animals = ["Golden Retriever", "cat", "turtle", "Rattus norvegicus"] ----> 7 animal_patterns = list(nlp.pipe(animals))

TypeError: 'list' object is not callable

对我来说好像 由于 nlp 不是可迭代对象,因此无法从中创建列表。

我该如何解决这个问题?以及为什么他们将其作为示例显示,即使它根本不是工作代码? 这段代码是基于 python 2.x 吗?

谢谢

您的 list 构造函数似乎不见了。
这可能是因为像 list = something
这样的操作 无论如何,这应该可以解决它。

import spacy
from spacy.matcher import PhraseMatcher
from spacy.tokens import Span

nlp = spacy.load("en_core_web_sm")
animals = ["Golden Retriever", "cat", "turtle", "Rattus norvegicus"]
list = [].__class__
animal_patterns = list(nlp.pipe(animals))
print("animal_patterns:", animal_patterns)
matcher = PhraseMatcher(nlp.vocab)
matcher.add("ANIMAL", None, *animal_patterns)