gector-bert-it / gector-guards.json
Imperatore's picture
gector-bert-it: first public release (Apache-2.0)
a26008b verified
Raw History Blame Contribute Delete
3.95 kB
{
"guards": [
{
"type": "velar_orthography",
"note": "built-in (always on): reject a spurious h-insertion on a non-velar stem"
},
{
"type": "elision_echo",
"note": "built-in (always on): collapse a redundant elision echo (un'ora ora -> un'ora)"
},
{
"type": "auxiliary_number",
"note": "built-in (always on): keep 'e`' before a singular participle ('E` andata' is 3sg and correct; 'sono' would flip it to 1sg)"
},
{
"type": "person_gender_flip",
"note": "suppress adjective gender flip when the subject is 1st/2nd person"
},
{
"type": "suppress_initial_append",
"note": "drop a spurious word prepended to the sentence via $APPEND on $START"
},
{
"type": "redirect_replace",
"from": "stò",
"to": "so",
"redirect": "sto",
"whenNextEndsWith": "ndo",
"note": "Sto` + gerund: accent-strip to Sto, never 'So (che)'"
},
{
"type": "redirect_replace",
"from": "è",
"to": "sono",
"redirect": "siamo",
"whenPrevIs": "noi",
"note": "Noi e` -> siamo (the model picks the right number, wrong person)"
},
{
"type": "suppress_append_words",
"words": "il|lo|la|i|gli|le|un|uno|una|di|a|da|in|su|che|più|molto|anche|ancora",
"note": "drop a stray appended article/preposition (the retired drop_word artifact)"
},
{
"type": "agreement_needs_anchor",
"suffixes": "o|a|i|e|he|hi",
"words": "il|lo|la|i|gli|le|un|uno|una|l|un'|del|dello|della|dei|degli|delle|dell|al|allo|alla|ai|agli|alle|all|dal|dallo|dalla|dai|dagli|dalle|dall|nel|nello|nella|nei|negli|nelle|nell|sul|sullo|sulla|sui|sugli|sulle|sull|questo|questa|questi|queste|quest|quel|quello|quella|quei|quegli|quelle|quell|mio|mia|miei|mie|tuo|tua|tuoi|tue|suo|sua|suoi|sue|nostro|nostra|nostri|nostre|vostro|vostra|vostri|vostre|molti|molte|pochi|poche|alcuni|alcune|tutti|tutte|ogni|due|tre|quattro|cinque|io|tu|lui|egli|ella|noi|voi|essi|esse",
"note": "pro-drop: an agreement-shaped edit needs a determiner or subject pronoun in view",
"pairs": "hanno>ha|ha>hanno|sono>è|è>sono|erano>era|era>erano|avevano>aveva|aveva>avevano|fanno>fa|fa>fanno|vanno>va|va>vanno|stanno>sta|sta>stanno|danno>dà|dà>danno|sanno>sa|sa>sanno|dicono>dice|dice>dicono|possono>può|può>possono|devono>deve|deve>devono|vogliono>vuole|vuole>vogliono|siano>sia|sia>siano|abbiano>abbia|abbia>abbiano|furono>fu|fu>furono|saranno>sarà|sarà>saranno|avranno>avrà|avrà>avranno"
},
{
"type": "keep_before_boundary",
"words": "vero|sono",
"note": "the tag question '…, vero?' is invariable; clause-final 'sono' ('Che ore sono?', 'Di che nazionalità sono?') is 1st person or plural, never è (2026-10-18)"
},
{
"type": "velar_plural_redirect",
"note": "gioco -> *gioci / simpatici -> *simpatice: when the bare suffix form is not a word and the h-form is, use the h-form"
},
{
"type": "accent_needs_known_word",
"note": "an accent added to a misspelling (setti -> *settì, lundi -> *lundì) is suppressed; e -> è passes"
},
{
"type": "no_edit_on_doubled_word",
"note": "la la porta -> *là la porta: a doubled word is deleted, never re-spelled"
},
{
"type": "keep_repeated_names",
"note": "a repeated capitalised word is a name, never a doubled word to delete"
},
{
"type": "verb_form_accent",
"note": "never add an accent to a token that is itself a present-tense verb form (estudio->estudió, abito->abitò are the biography-preterite lie)"
},
{
"type": "no_unknown_replacement",
"scope": "strict",
"note": "never propose a non-word (word knowledge; strict: a misspelling re-inflected into another non-word is held too; runs last)"
}
]
}