Token Classification
Transformers
Safetensors
Ancient Greek (to 1453)
char_bert_joint
ancient-greek
classical-philology
character-level
masked-diffusion
dependency-parsing
pos-tagging
lemmatization
custom_code
Instructions to use Ericu950/Stoicheia-tagger-parser with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Ericu950/Stoicheia-tagger-parser with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="Ericu950/Stoicheia-tagger-parser", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Ericu950/Stoicheia-tagger-parser", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
| """HF-Hub-compatible config for Stoicheia-tagger-parser (JointModel: tagger + biaffine parser). | |
| Self-contained (no import from configuration_char_bert.py): this ships as its own model repo, | |
| so it duplicates the small set of CharBertEncoder architecture fields it needs rather than | |
| depending on a sibling package being present. | |
| """ | |
| from transformers import PretrainedConfig | |
| class CharBertJointConfig(PretrainedConfig): | |
| model_type = "char_bert_joint" | |
| def __init__( | |
| self, | |
| # --- CharBertEncoder backbone architecture (fine-tuned from a Stoicheia checkpoint) --- | |
| n_alpha: int = 24, | |
| mask_id: int = 24, | |
| blank_id: int = 25, | |
| pad_id: int = 26, | |
| n_char_ids: int = 27, | |
| n_boundary: int = 4, | |
| n_dia: int = 49, | |
| n_punct: int = 7, | |
| d_model: int = 1024, | |
| n_heads: int = 16, | |
| depth: int = 32, | |
| char_window: int = 256, | |
| attn_impl: str = "sdpa", | |
| qk_norm: bool = True, | |
| # --- fine-tune-only encoder addition: additive capitalization channel --- | |
| use_cap: bool = True, | |
| # --- tagger head config (tagger.model.TaggerConfig + tagger.edits.LabelVocab sizes) --- | |
| pool: str = "mean", # "mean" | "last" word-pooling of per-character hidden states | |
| head_dropout: float = 0.33, | |
| scalar_mix: bool = True, # ELMo-style learned softmax mix over all (depth+1) layer outputs | |
| xpos_len: int = 9, # number of factored XPOS position-heads | |
| n_xpos_classes: tuple = (14, 4, 4, 8, 8, 5, 5, 6, 3), # per-position class counts (read from ckpt) | |
| n_script: int = 18485, # size of the lemma edit-script vocabulary (head_script) | |
| n_upos: int = 13, # size of the UPOS vocabulary (head_upos) | |
| use_flat: bool = True, # whether the flat full-XPOS-tag head (head_flat) is present | |
| n_flat_tags: int = 1249, # size of the attested-full-XPOS-tag vocabulary (head_flat) | |
| # --- parser (biaffine) config (parser.biaffine.ParserConfig, read from ckpt) --- | |
| d_arc: int = 500, | |
| d_rel: int = 150, | |
| n_labels: int = 24, # size of the dependency-relation (deprel) vocabulary | |
| parse_dropout: float = 0.33, | |
| # --- packing hints for the processor (not part of the architecture) --- | |
| max_chars: int = 2048, | |
| max_words: int = 384, | |
| **kwargs, | |
| ): | |
| self.n_alpha = n_alpha | |
| self.mask_id = mask_id | |
| self.blank_id = blank_id | |
| self.pad_id = pad_id | |
| self.n_char_ids = n_char_ids | |
| self.n_boundary = n_boundary | |
| self.n_dia = n_dia | |
| self.n_punct = n_punct | |
| self.d_model = d_model | |
| self.n_heads = n_heads | |
| self.depth = depth | |
| self.char_window = char_window | |
| self.attn_impl = attn_impl | |
| self.qk_norm = qk_norm | |
| self.use_cap = use_cap | |
| self.pool = pool | |
| self.head_dropout = head_dropout | |
| self.scalar_mix = scalar_mix | |
| self.xpos_len = xpos_len | |
| self.n_xpos_classes = list(n_xpos_classes) | |
| self.n_script = n_script | |
| self.n_upos = n_upos | |
| self.use_flat = use_flat | |
| self.n_flat_tags = n_flat_tags | |
| self.d_arc = d_arc | |
| self.d_rel = d_rel | |
| self.n_labels = n_labels | |
| self.parse_dropout = parse_dropout | |
| self.max_chars = max_chars | |
| self.max_words = max_words | |
| super().__init__(**kwargs) | |