**Gramatika kontrolilo** estas programo, aŭ parto de programo, kiu provas kontroli skribitan tekston laŭ gramatika ĝusteco. Gramatikaj kontroliloj plejofte estas faritaj kiel kapabloj de pli grandaj programoj, kiel ekzemple dokumentoredaktilo, sed estas ankaŭ disponeblaj kiel apartaj programoj kiuj povas esti aktivigataj ene de programoj kiuj laboras per redaktebla teksto.

La realigo de gramatikokontrolisto uzas komputilan lingvistikon.

Historio
--------

La plej fruaj gramatikaj kontroliloj estis baze programoj kiuj kontrolis interpunkcion kaj stilajn malbonaĵon, sed ne serĉis realajn gramatikajn erarojn. La unua sistemo estis nomita la *Writer's Workbench* - *Stablo de verkisto*, kaj estis aro de skribaj iloj inkluzivitaj en Unikso-sistemoj en la 1970-aj jaroj. La tuta pakaĵo *Writer Workbench* enhavis plurajn apartajn ilojn por kontroli diversajn skribajn problemojn. La ilo *diction* kontrolis por multvortaj, banalaj, ŝablonaj aŭ misuzitaj frazoj en teksto. La ilo produktis liston de suspektindaj frazoj, kaj disponigis sugestojn por plibonigado de la skribo. La ilo *style* analizis la skribostilon de donita teksto. Ĝi faris kelkajn testojn de legebleco de la teksto kaj redonis iliajn rezultojn, kaj ĝi donis iujn statistikajn informojn pri la frazoj de la teksto.

*Aspen Software* el Albuquerque publikigis la plej fruan version de stila kontrolilo por personaj komputiloj, *Grammatik*, en 1981. *Grammatik* estis unue havebla por Radio Shack - TRS-80, kaj baldaŭ havis versiojn por CP/M kaj IBM PC. *Reference Software* el San Francisco akiris *Grammatik* en 1985. Evoluo de *Grammatik* daŭris, kaj ĝi iĝis fakta gramatika kontrolisto kiu povis detekti skribajn erarojn krom simpla stila kontrolado.

Aliaj fruaj stilaj kontroladaj programoj estis *Punctuation & Style*, *Correct Grammar* kaj *RightWriter*. Ĉiuj plej fruaj programoj komenciĝis kiel simplaj stilaj kontroliloj, ĉiuj poste aldonis diversajn nivelojn de lingvoprilaboro, kaj ekenhavis iun nivelon de vera gramatika kontrola kapablo.

Realigo
-------

La plej fruaj skribostiloprogramoj kontrolis multvortajn, banalajn, ŝablonajn, aŭ misuzitajn frazojn en teksto. Ĉi tiu procezo estis bazita sur simpla ŝablona koincido. La kerno de la programo estis listo de multaj centoj aŭ miloj de frazoj kiuj estas konsiderataj kiel malbone skribitaj de multaj fakuloj. La listo de suspektindaj frazoj havis alternativan vortigon por ĉiu frazo. La kontrolada programo simple fendis la tekston en frazoj, kontrolis por iuj koincidoj en la frazovortaro, kaj markis suspektindajn frazojn kaj montris alternativojn. Ĉi tiuj programoj ankaŭ povis elfari kelkajn simplajn kontrolojn. Ekzemple, ili tipe markis duobligitajn vortojn, duobligitan interpunkcion, kelkajn majuskligajn erarojn, kaj aliajn simplajn mekanikajn erarojn.

Vera gramatikokontrolado estas pli malsimpla. Dum ĉiu komputila programlingvo havas tre specifajn sintakson kaj gramatikon, ĉu tio estas ne tiel por naturaj lingvoj? Kvankam eblas skribi iom plenan formalan gramatikon por natura lingvo, ekzistas kutime tiel multaj esceptoj en reala uzokutimo ke formala gramatiko estas de minimuma helpo en skribado de gramatika kontrolilo. Unu el la plej gravaj partoj de natura lingva gramatika kontrolado estas vortaro de ĉiuj vortoj de la lingvo, kune kun la vortklaso de ĉiu vorto. La fakto ke naturaj vortoj povas preni multajn malsamajn vortklasojn tre pligrandigas la komplikecon de gramatika kontrolilo. Gramatika kontrolilo prenas ĉiun frazon en teksto, kontrolas ĉiun vorton en la vortaro, kaj tiam provas analizi kaj disfendi la frazon en formo kiu kongruas kun gramatiko. Uzante diversajn regulojn, la programo tiam povas detekti diversajn erarojn, kiel ekzemple malkongruo en tempo, pluraleco, vortordo.

Estas ankaŭ eble detekti kelkajn stilajn problemojn ĉe la teksto. Ekzemple, peza uzo de pasiva voĉo ne estas konsiderata kiel bona skriba stilo. Post kiam frazo estas analizita, eblas detekti pasivan voĉon, kaj reverki la frazon en bonorda formo.

La programaj elementoj necesaj por gramatika kontrolado estas proksime rilataj al kelkaj el la evoluaj aferoj kiuj devas esti traktataj per voĉorekona programaro. En voĉa rekono, analizo kaj disfendo povas helpi antaŭdiri kiu vorto estas pli verŝajne ĝusta surbaze de vortklaso kaj pozicio en la frazo. En gramatika kontrolado, la analizado estas uzata por detekti vortojn kiuj ne sekvas veran gramatikon.

Vidu ankaŭ
----------

* Literumilo
* Liga gramatiko
* Esperantilo tekstoredaktilo kun gramatika kontrolilo
* Lingvoilo Plurlingva gramatika kontrolilo (ankaŭ en Esperanto)

Eksteraj ligiloj
----------------

* M. Stutz: *Living language* - *Vivanta lingvo*.[*rompita ligilo*]
* A. Walker: *The Linux Cookbook* - *La Linuksa Kuirlibro*