web-dev-qa-db-fra.com

Erreur de valeur: nlp.add_pipe (langugedetector (), nom = 'Language_Detector', Last = True)

J'ai trouvé ce code ci-dessous de Kaggel, chaque fois que j'exécute le code obtient ValueError. Ceci est à cause de la nouvelle version de Spacy. S'il vous plaît Aide Merci d'avance

import scispacy
import spacy
import en_core_sci_lg
from spacy_langdetect import LanguageDetector

nlp = en_core_sci_lg.load(disable=["tagger", "ner"])
nlp.max_length = 2000000
nlp.add_pipe(LanguageDetector(), name='language_detector', last=True)

ValueError: [E966] nlp.add_pipe Prend maintenant le nom de la chaîne de l'usine de composant enregistré, pas un composant appelable. Chaîne attendue, mais got <spacy_langdetect.spacy_langdetect.Langugedetector objet à 0x00000216BB4C8D30> (Nom: 'Language_Detector').

  • Si vous avez créé votre composant avec nlp.create_pipe('name'): supprimer nlp.create_pipe et appelez nlp.add_pipe('name')à.

  • Si vous avez passé dans un composant comme TextCategorizer(): appelez nlp.add_pipe Avec le nom de la chaîne, par exemple. nlp.add_pipe('textcat').

  • Si vous utilisez un composant personnalisé: ajoutez le décorateur @Language.component (Pour les composants de la fonction) ou @Language.factory (Pour les composants/usines de classe) sur votre composant personnalisé et attribuez-lui un nom, par exemple @Language.component('your_name'). Vous pouvez ensuite exécuter nlp.add_pipe('your_name') pour l'ajouter au pipeline.

J'ai installé:

scispacy.version: '0.4.0'

eN_CORE_SCI_LG.VERSION: '0.4.0'

python_version: 3.8.5

spacy.Version: '3.0.3'

3
Shiva Sharma

Vous pouvez également utiliser un @Language.factory décorateur pour obtenir le même résultat avec moins de code:

import scispacy
import spacy
import en_core_sci_lg
from spacy_langdetect import LanguageDetector
from spacy.language import Language

@Language.factory('language_detector')
def language_detector(nlp, name):
    return LanguageDetector()

nlp = en_core_sci_lg.load(disable=["tagger", "ner"])
nlp.max_length = 2000000
nlp.add_pipe('language_detector', last=True)
4
Nicolas Mauti