Erro no add_pipe na criação de classificador

Home Fóruns Fórum Processamento de Linguagem Natural com spaCy e Python Erro no add_pipe na criação de classificador

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #32505
    Jerri
    Participante

    Bom 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 call nlp.add_pipe('name') instead.

    – If you passed in a component like TextCategorizer(): call nlp.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 run nlp.add_pipe('your_name') to add it to the pipeline.

    Alguém passou por isso?

    Obrigado.

    #32515
    Fábio Spak
    Moderador

    Olá 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

    #32730
    Jerri
    Participante

    Olá 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.

    #32731
    Fábio Spak
    Moderador

    Olá 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

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Você deve fazer login para responder a este tópico.