Home › Fóruns › Fórum Processamento de Linguagem Natural com spaCy e Python › Erro no add_pipe na criação de classificador
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 1 ano, 3 meses atrás por
Fábio Spak.
- AutorPosts
- 3 de dezembro de 2021 às 08:52 #32505
Jerri
ParticipanteBom dia pessoal. No módulo “Classificação de sentimentos”, tópico “Criação do classificador”, o interpretador do Colab acusa a seguinte situação no trecho de código abaixo, que está logo no início do vídeo:
modelo = spacy.blank(‘pt’)
categorias = modelo.create_pipe(‘textcat’)
categorias.add_label(‘ALEGRIA’)
categorias.add_label(‘MEDO’)
modelo.add_pipe(categorias )O erro é:
—————————————————————————
ValueError Traceback (most recent call last)
<ipython-input-39-7a57ad7a40a1> in <module>()
5 categorias.add_label(‘ALEGRIA’)
6 categorias.add_label(‘MEDO’)
—-> 7 modelo.add_pipe(categorias )
8
9 historico = []/usr/local/lib/python3.7/dist-packages/spacy/language.py in add_pipe(self, factory_name, name, before, after, first, last, source, config, raw_config, validate)
767 bad_val = repr(factory_name)
768 err = Errors.E966.format(component=bad_val, name=name)
–> 769 raise ValueError(err)
770 name = name if name is not None else factory_name
771 if name in self.component_names:ValueError: [E966]
nlp.add_pipe
now takes the string name of the registered component factory, not a callable component. Expected string, but got <spacy.pipeline.textcat.TextCategorizer object at 0x7fd43a1349f0> (name: ‘None’).– If you created your component with
nlp.create_pipe('name')
: remove nlp.create_pipe and callnlp.add_pipe('name')
instead.– If you passed in a component like
TextCategorizer()
: callnlp.add_pipe
with the string name instead, e.g.nlp.add_pipe('textcat')
.– If you’re using a custom component: Add the decorator
@Language.component
(for function components) or@Language.factory
(for class components / factories) to your custom component and assign it a name, e.g.@Language.component('your_name')
. You can then runnlp.add_pipe('your_name')
to add it to the pipeline.Alguém passou por isso?
Obrigado.
5 de dezembro de 2021 às 20:31 #32515Fábio Spak
MestreOlá Jerri, testei o código da vídeo aula e executou normalmente. Tente executar novamente verificando se alguma linha ficou sem executar, por favor.
Fabio
14 de dezembro de 2021 às 22:07 #32730Jerri
ParticipanteOlá Fábio.
Obrigado pelo retorno.
O problema é a versão do spacy. Quando, no colab, executo o comando !pip install spacy upgrade, é feita a atualização para a última versão, no caso, 3.2.0, enquanto que no curso está sendo utilizada a versão 2.2.3.
O colab já tem nativo nele a versão 2.2.4, que funcionou o código da aula.
No caso, então, não é necessário realizar instalação do spacy nem atualizá-la, senão, os fontes podem não funcionar.
Saudações a todos.
14 de dezembro de 2021 às 23:50 #32731Fábio Spak
MestreOlá Jerri, sim, pois se você fizer o upgrade ele vai puxar a última versão do Spacy, a qual, algumas função do código da aula não compatíveis. Todavia, você pode executar o comando abaixo, que é compatível com o código da vídeo aula:
!pip install spacy==2.2.3
Fabio
- AutorPosts
- Você deve fazer login para responder a este tópico.