L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

custom-models-and-extensions

custom-models-and-extensions

Build TextBlob-compatible custom models, Blobber shared factories, extensions, and classifier format handoffs.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: custom-models-and-extensions description: "Build TextBlob-compatible custom models, Blobber shared factories, extensions, and classifier format handoffs." disable-model-invocation: true metadata: disco-role: operating license: MIT

Custom Models and Extensions

Use this sub-skill when a task needs a custom or third-party TextBlob model object: tokenizer, POS tagger, noun phrase extractor, sentiment analyzer, parser, classifier adapter, language package, or extension package.

Route first

Stay here for:

  • Implementing objects that satisfy textblob.base interfaces.
  • Passing custom model instances to TextBlob(...) or Blobber(...).
  • Reusing a custom tokenizer/analyzer/tagger across many blobs with Blobber.
  • Packaging model or language extensions with TextBlob naming conventions.
  • Understanding the classifier/data-format registration hook before routing to classifier details.

Route away when the user wants:

  • Built-in tokenization, tags, noun phrases, sentiment, parsing, or ordinary TextBlob workflows: ../core-nlp-workflows/SKILL.md.
  • Classifier training, evaluation, updating, feature extractors, CSV/JSON/TSV/custom training formats: ../classifiers-and-data-formats/SKILL.md.
  • Word, WordList, spelling, morphology, stemming, lemmatization, or WordNet: ../word-and-lexical-tools/SKILL.md.

Operating workflow

  1. Pick the insertion point. TextBlob and Blobber accept tokenizer, pos_tagger, np_extractor, analyzer, parser, and classifier. Constructor signatures are compatible with TextBlob(text, tokenizer=None, pos_tagger=None, np_extractor=None, analyzer=None, parser=None, classifier=None, clean_html=False) and Blobber(tokenizer=None, pos_tagger=None, np_extractor=None, analyzer=None, parser=None, classifier=None).
  2. Implement the correct interface. Use references/custom-models.md for the exact base methods: BaseTokenizer.tokenize/itokenize, BaseTagger.tag, BaseNPExtractor.extract, BaseSentimentAnalyzer.analyze/train, and BaseParser.parse.
  3. Validate with TextBlob before broader use. Wrong model types raise ValueError; NLTK tokenizer instances are accepted for tokenizer; classifier is not base-class validated but must provide the methods the workflow calls.
  4. Use Blobber for shared models. Prefer Blobber(tokenizer=..., analyzer=..., pos_tagger=...) when many texts should use the same trained or configured model instances. Each blob made by the factory receives the same model objects.
  5. Package reusable extensions deliberately. Use references/extensions.md for package/import naming (textblob-name -> textblob_name, language packages textblob-xx).
  6. Run the bundled smoke check. python scripts/custom_model_smoke.py --json verifies tiny custom models, TextBlob/Blobber acceptance, shared model identity, and invalid tagger rejection without writing files or downloading corpora.

Fast troubleshooting in the workflow

  • ValueError: pos_tagger must be an instance of BaseTagger means TextBlob requires inheritance, not only a tag method. Recover by subclassing BaseTagger; see the minimal adapter in references/troubleshooting.md.
  • If a custom tokenizer works with .tokens but punctuation appears unexpectedly in .words, remember that punctuation filtering is special to TextBlob's default word tokenizer. Custom tokenizers own their output.
  • If a custom analyzer seems ignored by .polarity or .subjectivity, check .sentiment; TextBlob's convenience .polarity and .subjectivity use the built-in pattern analyzer.
  • If TextBlob(...).tags fails before your tagger runs, the default sentence segmentation path may need NLTK sentence data. For a no-corpus custom tagger smoke, exercise Sentence(...).tags or run the root setup check.
  • If an extension cannot be imported, verify the hyphen/underscore naming rule: install/distribution name uses textblob-name, Python import uses textblob_name.

Bundled references and script

Skills enregistrées