A Testbed Generator for the Evaluation of Grammar Checkers
Greg Lessard, French Studies
Michael Levison, Computing and Information Science
Queens University
ACLA/CAAL 2001
Introduction
The ideal: glass box grammar checkers
The reality: black box systems
So, the need for evaluation...
Focus of evaluation
- software (speed, efficiency, compatibility)
- content (linguistic accuracy, false corrections)
Methods of evaluation
- intuition
- corpus materials
- testbed
Pros and cons of each method
Intuition
- highly focused and personalized
- fast
but
- subjective
- few variables controlled systematically
- typically unexhaustive
- difficult to replicate
Corpus materials
- authentic
- replicable
but
- poor control of variables
- relatively unsystematic
Static testbed
- good control of variables
- replicable
but
- difficult to construct
- relatively static
Improvement: a generative testbed
VINCI
Metalanguages + interpreter + editor (ivi)
Semantics: attribute classes and values
partial ordering of values
compound attributes
Syntax: context-free phrase structure rules
attributes attached to nodes
guarded syntax rules
transformations (parallel trees)
preselected lexical items (blackboard)
Lexicon: lexical items (semantics, morphology)
lexical relations (synonymy, etc.)
weighting by frequency
phonological interpretation
word formation rules
current French lexicon ~3000 lexemes
Morphology: context free inflection rules
context sensitive rules (ex. elision)
orthographic and phonological rules
Controls: procedures for sequences of utterances
tests for adaptive generation
Method:
generate test sequences by rule
run grammar checkers
record and compare results
Systems evaluated:
Grammatik (included in WordPerfect 8)
Correcteur 101 (version 4 Pro)
Tests performed:
1) gender assignment
2) suffixation
3) composition
4) apposition of nouns as colour terms
5) pronoun combinations
6) agreement under coordination
7) agreement under embedding
8) PP attachment
Gender assignment
Method: generate phrases where word = masc, sing and ends in -e, and indefinite article is sing and fém.
VINCI rule:
ROOT = DET[indéf, fém, sing] N[masc, sing]/"*e" %
Product: 63 distinct forms. In some cases, a feminine gender is possible, either for humans or by homonymy.
Results: Both systems correctly identified most errors: une bagage, une beurre, une compte, une conte, une contraste...
Anomalies:
Grammatik
une Belge ok
une anniversaire refusé
une arrière refusé
une artiste ok
une athlète ok
une automne refusé
une double ok
une geste ok (fréq)
une journaliste ok
une juge refusé
une litre ok (fréq)
une malaise ok (fréq)
une membre refusé
une philosophe ok
une poste ok
une russe ok
une secrétaire ok
Correcteur 101
une Belge ok
une anniversaire ok (pron)
une arrière ok
une artiste ok
une athlète ok
une automne refusé
une double ok (pron)
une geste refusé
une journaliste ok
une juge ok
une litre ok (fréq)
une malaise ok (fréq)
une membre refusé
une philosophe ok
une poste ok
une russe ok (pron)
une secrétaire ok
Suffixation
Method: generate possible words from transitive -er verb base + -able.
VINCI rule: ?|V|vtd|?|$12|?|?| _makes_ [#7.1+"able"]
Product: 153 words. Ex. abandonnable, acceptable, accompagnable, accusable, admirable, adorable, affirmable, aidable, aimable, ajoutable, etc.
Results:
Grammatik refuses all non-lexicalized forms, but accepts admirable, aimable, etc.
Correcteur 101 accepts almost all forms, except the following (note corrections provided)
ôtable - > table
aidable - > aimable
attachable - > attaquable
chassable - > cassable
créable (correction manuelle)
fixable - > fiable
jurable - > jugeable
osable - > dosable
posable - > potable
pratiquable - > praticable
ratable - > datable
tirable - > étirable
Composition
Method: generate possible words from verb couper + all possible nouns for physical objects.
VINCI rule:
"couper"|V|?|?| _and_ ?|N|physobj|?|?|
_makes_ [#7.1 + "e " + #1.2]
Product: 347 words. Ex. coupe abricot, coupe achat, coupe addition, coupe affiche, coupe agneau, coupe aiguille, coupe aile, coupe aliment, coupe allumette, coupe annonce, etc.
Results:
Grammatik
- refuses essentially all forms, but suggests coupe-légumes for coupe-légume.
Correcteur 101
- accepts essentially all forms, but complains about a missing hyphen in the case of coupe-bien, coupe-meuble, coupe-nouvelle. Recognizes coupe-légumes.
Apposition of nouns as colour terms
Method: generate sequences of feminine plural definite articles plus feminine plural nouns followed by masculine singular nouns of fruit as colour indicators.
VINCI rule:
ROOT = DET[indéf, fém, plur]
N[fém, plur, visible]
N[masc, sing, fruit] %
Product: 35 phrases, including: des autoroutes abricot,
des belles soeurs pamplemousse, des bibliothèques raisin, des blouses raisin, des bouteilles raisin, des côtes pamplemousse, des cafétérias kiwi, etc.
Results:
Grammatik
des criminelles abricot (second word seen as adj)
des religieuses kiwi
des savantes abricot
des professeures kiwi (professeure not accepted)
Correcteur 101
des religieuses kiwi (second word seen as adj)
des savantes abricot
des belles soeurs pamplemousse (hyphen error)
Pronoun combinations
Method: generate sequences of subject clitic + direct object clitic pronouns followed by appropriate verb.
VINCI rule:
ROOT = choose P1, P2 : Personne,
N1, N2 : Nombre;
PONCT[maj]
PRON[pronper, P1, N1, suj, clit]
PRON[pronper, P2, N2, objd, clit]
V[vtd, humain.suj, influencer, humain.objd, P1, N1, indic, prés]
PONCT[pt]
%
Product: 50 sentences, for example:
Elle l'admire. Elles m'inspirent.
Elles nous emmènent. Il t'attaque.
Il te cache. Ils les sauvent.
Je me rembourse. Je nous connais.
Nous me soutenons. Nous t'encourageons.
Tu m'organises. Tu vous oublies.
Vous l'aidez. Vous te conseillez.
Vous vous embrassez.
Results:
Grammatik
- refuses tu vous, accepts all other combinations
Correcteur 101
- accepts all combinations, including
vous te ..., nous me ...
Agreement under coordination
Method: generate sequences of NPs conjoined by et and varying in number and gender, and end each sequence with a feminine past participle to check long distance agreement.
VINCI rule:
ROOT =
PONCT[maj]
DET[déf, fém, sing] N[fém, sing, humain]
CONJ[et]
DET[déf, masc, sing] N[masc, sing, humain]
CONJ[et]
SNR[fém, sing, humain]
V[vcop, indic, prés, plur, p3]
V[vi, auxe, humain.suj, pp, fém, plur]
PONCT[pt]
%
SNR = inherit G1 : Genre, N1 : Nombre, C1 : Casnom;
(
DET[déf, G1, N1] N[G1, N1, C1]
|
DET[déf, G1, N1] N[G1, N1, C1]
CONJ[et]
SNR[G1, N1, C1]
)
%
Products: 50 sentences with varying numbers of conjoined NPs. In all cases, NP1 is fem, NP2 is masc, and all succeeding NPs are fem.
L'hôtesse et le Belge et la visiteuse sont revenues. (3 NP)
L'esclave et le témoin et la Chinoise et la visiteuse et la Mexicaine sont descendues. (5 NPs)
La coiffeuse et le fou et l'Italienne et la folle et la Française et la commerçante et la garde et la gardienne sont descendues. (8 NPs)
Results:
Grammatik identifies no agreement errors
Correcteur 101 identifies all agreement errors
Agreement under embedding
Method: in progressively embedded clauses, check for agreement in number between subject and verb.
VINCI rule:
ROOT = choose G1, G2 : Genre, N1, N2 : Nombre;
PONCT[maj]
SN[G1, N1, humain]
PRON[pronrel, suj]
V[N1, humain.suj, percevoir, humain.objd, indic, prés, p3]
SN[G2, N2, humain]
PREL[G2, N2, humain.suj, percevoir, humain.objd]
V[vi, humain.suj, N1, prés, indic, p3]
PONCT[pt]
%
SN = inherit G1 : Genre, N1 : Nombre, C1 : Casnom;
DET[déf, G1, N1] N[G1, N1, C1]
%
PREL = inherit G2 : Genre, N2 : Nombre,
Cs : Casnom.suj, Cn : Casnom/suj,
Co : Casnom.objd, Cv : Casverbe;
(
PRON[pronrel, suj]
V[N2, Cs, Co, Cv, indic, prés, p3]
SN[G2, N2, Cn]
|
PRON[pronrel, suj]
V[N2, Cs, Co, Cv, indic, prés, p3]
SN[G2, N2, Cn]
PREL[G2, N2, Cs, Co, Cv]
)
%
Product: 50 sentences, with different levels of embedding and different combinations of number.
Les visiteuses qui observent la maman qui perçoit la Chinoise respirent. (2 embedded clauses, sing & plur)
Les marins qui aperçoivent les vieillardes qui fixent les chanteuses tremblent. (2 embedded clauses, all plur)
Le curé qui voit les filles qui fixent les mères qui observent les amantes pleure. (3 embedded clauses, sing & plur)
Les amies qui considèrent la chanteuse qui revoit la compagne qui écoute la partenaire qui fixe l'étudiante hésitent. (4 embedded clauses, sing and plur)
Le chasseur qui aperçoit les petits enfants qui écoutent les narrateurs qui sentent les chirurgiens qui observent les employés qui regardent les prisonniers qui entendent les Français entre. (6 embedded clauses, sing & plur)
Results:
Grammatik accepts all sentences.
Correcteur 101 accepts all sentences.
What about syntactic weight? Parameter setting?
PP attachment
Method: generate sentences with a temporal PP attached in various positions (x SN x V x SP x).
VINCI rule:
ROOT = choose G1, G2 : Genre, N1, N2 : Nombre;
(
PONCT[maj]
SP[après, G1, N1, activité]
SN[G1, N1, humain]
V[indic, imparf, N1, p3]/"aller"
SP[à, G2, N2, lieu]
PONCT[pt]
|
PONCT[maj]
SN[G1, N1, humain]
V[indic, imparf, N1, p3]/"aller"
SP[à, G2, N2, lieu]
SP[après, G1, N1, activité]
PONCT[pt]
|
PONCT[maj]
SN[G1, N1, humain]
SP[après, G1, N1, activité]
V[indic, imparf, N1, p3]/"aller"
SP[à, G2, N2, lieu]
PONCT[pt]
|
PONCT[maj]
SN[G1, N1, humain]
V[indic, imparf, N1, p3]/"aller"
SP[après, G1, N1, activité]
SP[à, G2, N2, lieu]
PONCT[pt]
)
%
SP = inherit Ge : Genre, No : Nombre, Cn : Casnom,
Pr : Prép;
PREP[Pr] SN[Ge, No, Cn]
%
SN = inherit Ge : Genre, No : Nombre, Cn : Casnom;
DET[déf, Ge, No] N[Ge, No, Cn]
%
Product: sentences with variously placed temporal PPs. Some examples:
Après les caresses les marchandes allaient au supermarché.
La vendeuse après la soirée allait à la cafétéria.
Les chefs allaient après les bals aux cellules.
Les millionnaires allaient aux stations service après les bagarres.
Results:
Grammatik accepts all sentences
Correcteur 101 accepts all sentences except one, which it cannot analyze:
Les malheureux après les drames allaient à la frontière.
Conclusions
- a generative testbed appears to offer a useful complement to other methods of evaluating grammar checking software
- replication of tests for various pieces of software and for different versions of the same software is a useful goal
- since a generative environment like VINCI knows what it is producing, it is possible to flag sentences as correct or erroneous beforehand