Token Classification
Transformers
ONNX
Safetensors
English
Japanese
Chinese
bert
anime
filename-parsing
Eval Results (legacy)
Instructions to use ModerRAS/AniFileBERT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ModerRAS/AniFileBERT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="ModerRAS/AniFileBERT")# Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("ModerRAS/AniFileBERT") model = AutoModelForTokenClassification.from_pretrained("ModerRAS/AniFileBERT") - Notebooks
- Google Colab
- Kaggle
File size: 7,311 Bytes
d87ba32 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | # schema_v2_synthetic_augment
Independent schema v2 synthetic augmentation generator for numeric-title and
path-context samples. It does not rewrite DMHY source records or modify the
template application pipeline.
```powershell
cargo run --release --manifest-path tools\schema_v2_synthetic_augment\Cargo.toml --bin schema_v2_synthetic_augment -- `
--recipes reports\dmhy_template_recipes.full_top5000.seed.jsonl `
--label-schema-file label_schema.json `
--numeric-title-seeds data\synthetic_numeric_titles.txt `
--path-prefix-seeds data\synthetic_path_prefixes.txt `
--limit-templates 3000 `
--output data\schema_v2_synthetic_aug.jsonl `
--manifest-output data\schema_v2_synthetic_aug.manifest.json
```
The output is char-tokenized JSONL (`tokens == list(filename)`) with schema v2
labels and `tokenizer_variant: "char"`.
Validate a generated JSONL/manifest pair with the Rust validator:
```powershell
cargo run --release --manifest-path tools\schema_v2_synthetic_augment\Cargo.toml --bin validate_synthetic_aug_jsonl -- `
--input data\schema_v2_synthetic_aug.jsonl `
--manifest data\schema_v2_synthetic_aug.manifest.json
```
Smoke validation example:
```powershell
cargo run --release --manifest-path tools\schema_v2_synthetic_augment\Cargo.toml --bin validate_synthetic_aug_jsonl -- `
--input reports\schema_v2_synthetic_aug.smoke.jsonl `
--manifest reports\schema_v2_synthetic_aug.smoke.manifest.json
```
Path seeds are typed: plain or `series|...` entries generate `path_series`
rows; `movie|...` / `film|...` / `theatrical|...` entries generate
`path_movie` rows; `special|...` entries generate `path_special` rows; and
`confuser|...` entries generate `path_confuser` rows. The manifest reports each
count separately so training mixtures can control these distributions and avoid
mixing TV-series and movie/special path priors.
## Plan refinements before scaling
### Separate TV-series and movie/special path generation
Do not treat TV anime and theatrical/movie releases as interchangeable when
wrapping filenames in synthetic paths. A TV-style filename wrapped in a movie
folder, or a movie/special-style filename wrapped in `Season 01` / `S01` / `第2季`
folders, creates noisy path labels and can teach the parser the wrong prior.
Before expanding beyond the small validation set, split path generation by media
kind:
- `series` / TV rows:
- may use season directories such as `Season 01`, `Season 1`, `S01`, `01`,
`第1季`, `第2季`;
- may emit `PATH_SEASON` only for those directory-level season components;
- should be paired with ordinary episodic base filenames.
- `movie` / theatrical rows:
- should use movie-appropriate directories such as `Movie`, `Movies`,
`Gekijouban`, `劇場版`, `Films`, `BDMovie`, or a direct title folder;
- must not synthesize TV season directories unless the seed explicitly models
a collection folder where the season-like component is a `TAG`, not
`PATH_SEASON`;
- should be paired with movie/special base filenames, not ordinary TV episode
templates.
- `special` rows:
- should cover `SPs`, `Specials`, `Extras`, `OVA`, `OAD`, `NCOP`, `NCED`,
`PV`, `CM`, `Trailer`, `Menu`;
- numbered specials keep their number inside `SPECIAL`, not `EPISODE`.
- `confuser` rows:
- keep hard negatives such as `Gekijouban`, `Movie`, `2004`, and `TV` as
`TAG` when they are non-season directories;
- four-digit year directories remain `TAG`, never `PATH_SEASON`.
- noisy library/cache/download prefixes:
- include a small controlled set of random-looking or operational directories
such as `_tmp`, `.staging`, `rclone_cache`, `@@watching`, `0xA1B2`,
`[NAS-01]`, `queue_42`, and `!done`;
- these segments should remain `O` unless they are an explicit movie/special/
confuser tag segment;
- the goal is to teach slash/path robustness without making the model overfit
to clean media-library roots only.
Implemented generator/manifest requirements for this split:
- base filename media classifier: `series_episode`, `movie`, `special`,
`unknown`;
- path seed kinds: `series|...`, `movie|...`, `special|...`, `confuser|...`;
- cross-kind combinations are rejected by default:
- `movie` base + `series` path = drop;
- `series_episode` base + `movie` path = drop;
- `confuser` rows remain explicit hard negatives and may wrap any base kind;
- manifest stats include `path_movie_rows`, `path_confuser_rows`,
`dropped_media_kind_mismatch`, and per-kind seed counts.
### Improve numeric-title seed quality
The numeric title list should not look like a small set of mechanical templates
with only the number swapped. Keep the bucket coverage from the original plan,
but make the names feel closer to anime, light-novel, and web-novel titles. The
seeds still do not need to be real works; they need structural diversity and a
clear label intent: every number inside the title remains part of `TITLE_*`.
Seed curation guidelines:
- Mix short canonical numeric titles with long light-novel / web-novel style
titles.
- Include Japanese romanization, English, and CJK-flavored forms where useful,
but keep each seed internally style-consistent. Avoid unnatural mixed-language
constructions such as romanized Japanese titles with a stray Chinese `年` year
suffix, or English phrases glued to Japanese grammar.
- Vary separators and numeric forms: `7-nin`, `100-nin`, `3-gatsu`, `12-gatsu`,
`91 Days`, `No.6`, `Area 88`, `86`, `Level E`, `2.43`, `22/7`, `Dai 7`,
`1000-nen`, `2001-nen`, `第7`, `1000年`, `2001年`.
- Add long-title patterns, but keep the whole seed in one coherent naming style:
- romanized Japanese / light-novel style:
- `7-nin no Maou to Hazure Skill no Slow Life`
- `100-nin no Classmate ni Kokuhaku Sareta Ore`
- `3-gatsu no Guild de 12-kai Me no Tensei`
- `No.6 Chiku no Saigo no Mahoutsukai`
- `86-banme no Yuusha wa Season 2 wo Shinjinai`
- `2001-nen ni Netoge no Yome ga Isekai kara Kita`
- English-style titles:
- `91 Days After Becoming the Villainess Butler`
- `Area 88 and the Last Sky Witch`
- `The Level E Roommate Has 100 Secrets`
- `500 Days Until the Dungeon Closes`
- CJK-style titles:
- `第7王子与100人的魔法公会`
- `2001年的异世界网游新娘`
- `1000年后醒来的第86号勇者`
- Explicitly include misleading but title-owned season-like tokens, for example
`S01 no Rakuen 86`, `Season 03 Chronicle 91`, `Part 2 no No.6`, and
`Episode 0 no 1000-nen Maou`; these must remain `TITLE_*` when used as the
title seed.
- Avoid overusing obvious placeholders like `Chronicle`, `Report`, `Club`, and
`Patrol`; replace some with more natural genre terms such as `Maou`,
`Yuusha`, `Akuyaku Reijou`, `Guild`, `Dungeon`, `Mahoutsukai`, `Tensei`,
`Slow Life`, `Netoge`, `Haishin`, `Kouhai`, `Senpai`, `Kyoushitsu`, and
`Gakuen`.
Acceptance checks for seed quality:
- each required numeric bucket has multiple non-near-duplicate examples;
- long-title seeds do not collapse into the same phrase skeleton;
- title-owned numeric and season-like tokens are verified to stay contiguous
`TITLE_*` in generated rows;
- fixed cases such as `vcb_numeric_title_nced` improve without introducing new
false `EPISODE` / `SEASON` spans inside titles.
|