Download Machine Translation

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

History of English wikipedia , lookup

American English wikipedia , lookup

English language in Europe wikipedia , lookup

English grammar wikipedia , lookup

Ugandan English wikipedia , lookup

Transcript
Machine Translation - Extra Notes
Chris Mellish
1
Introduction to Machine Translation
In these days of global communication and markets, there is a huge demand for translation internationally (for instance, within the EC there are many documents that are legally
required to be available in all the languages of the Community). For the huge amount of
technical translation needed, Machine Translation is probably the only hope (There is rather
less demand for literary translation, which MT is rather bad at).
1.1
Varieties of MT
Machine Translation involves (semi-)automatically translating sentences from a source natural
language to a target language. Different systems, however, vary in the extent to which human
beings may play a role in this process, with the main possibilities being:
(FA)MT - (fully automatic) Machine Translation.
HAMT - Human Aided MT. Humans can aid in translation, for instance, by editing the
source text to make it simpler or more regular, or by editing the target text to remove
translation errors.
MAHT - Machine Aided Human Translation. Machines can aid human translators by giving
them easy access to useful dictionaries, similar examples that have been translated
before, etc.
Obviously FAMT is the most ambitious of these. In practice, almost all machine translation
has to be post-edited by humans (as, in fact, is almost all human translation), and so the
difference between FAMT and HAMT is rather blurred. Similarly the distinction between
HAMT and MAHT can be a rather subtle one, depending on who is seen to be “in control”
of the translation process.
1.2
Why MT is Hard
MT is hard because structures in one human language often do not correspond in a simple way
to structures in another. This is especially the case when the languages come from different
families (e.g. English and Chinese vs English and French). Here are some things that can
happen:
Information differences. One language may force more information to be expressed than
another. For instance, to translate “the cat” into Spanish one would have to use “el
gato” or “la gata”, according to the gender of the cat.
1
Ordering differences. One language may express things in a different order. For instance,
“the lady likes the cheese” would be translated into French as “le fromage plait à la
dame” (literally, “the cheese pleases to the lady”).
Packaging differences. One language may distribute information in a sentence in a different
way than another. For instance, ”he swam across the river” would translate into the
French “il a traversé la rivière à la nage” (literally, “he crossed the river by swimming”).
(these examples all from Barnett et al, 1994).
In general, arbitrary world knowledge can be needed to produce a correct translation. For
instance, the English pronoun “it” translates into different pronouns in French or German
according to whether the noun it is associated with is masculine or feminine. To translate “it”
correctly every time, you would have to know what it refers to, which cannot be determined
just from the sentence. Consider, for instance:
A hollow vertical cylinder, of radius 2a and height 3a, rests on a horizontal table, and a uniform rod is placed within it with its lower end resting on the
circumference of the base...
Similarly, imagine translating “The baby is in the pen” into a language where the different
possible meanings of pen (play pen vs writing pen) have different words. What knowledge of
the world would you have to have in order to get this right?
1.3
Brief History
Serious research on MT began in the 1950’s, and much of this early work paved the way for
important later developments in AI and Computational Linguistics. But optimism was unrealistically high, and with time the complexity of the linguistic problems became apparent.
In 1966 the US sponsors of MT research (a committee called ALPAC) published an influential report which concluded that MT was slower, less accurate and twice as expensive as
human translation. Since that time, of course, the cost and speed of computers have changed
dramatically, changing the equation.
The ALPAC report had the consequence of bringing to the end much serious MT research, especially in the US. However, the need for MT was greater in some countries (for
instance, Canada), and so work continued to some extent. In the 1970’s famous systems
like TAUM-METEO and SYSTRAN (described below) were developed. In the late 1980’s
and 1990’s, further MT products have come onto the market, though mostly using rather
simple techniques. In the early 1980’s the EC, which had been making important use of
SYSTRAN, initiated its own large MT research programme, EUROTRA. This has, however,
not yielded the practical systems that were hoped for, and, although providing a stimulus
for good theoretical work in Computational Linguistics, has largely disappeared from view.
Current interest in MT remains undiminished, however, with a considerable interest shown
by Japanese companies and with a large spoken-language translation project, VERBMOBIL,
currently underway in Germany.
1.4
State of the Art
• There is only one example of a FAMT system that has been operational - a system called
TAUM-METEO, which translated English weather reports into French in Canada).
2
This system explicitly rejected about 20% of inputs which it deemed to be outside its
competence, but was left unattended to deal with all other inputs.
• The MT systems in most wide-scale use (“production MT systems” such as SYSTRAN
and WEIDNER) are often word replacement systems with huge dictionaries of phrases
and idioms. They often incorporate monolithic, incomprehensible programs for dealing
with special cases, which have cost many years to develop and which are very expensive
to maintain. But they are extensively used (e.g. by the EC and companies like GM and
Xerox) and are effective (with human post-editing).
• So far, linguistically-based MT systems (for instance, the EC’s large EUROTRA project)
have only produced interesting research prototypes. It is unclear whether they will ever
compete with systems like SYSTRAN.
• Humans can get very proficient at postediting MT, as long as only about 20% of the
words need to be changed. So MT can save time and money without being very good.
1.5
Translation Methods
Figure 1 is a traditional way of showing the major approaches to MT. The “pyramid” shows
Interlingua
Analysis
Generation
Transfer
Source Text
Direct Translation
Target Text
Figure 1: Translation Methods
different ways of transforming a source text (on the left) to a target text (on the right). The
height of the approach indicates the depth of analysis needed for the source text (and the
complexity of the generation task for the target text). Thus direct translation involves
mapping from source to target at the level of individual words, which requires relatively
little analysis. Transfer involves finding some more abstract level of structure at which
the correspondance between the languages can be stated (perhaps syntactic structure). The
interlingua approach requires such a deep level of analysis that the representation produced
is language-independent, and so no mapping is required to go from it to the input of the
generation process for the target language.
Basically, direct translation was the basis of the very early MT systems, whereas (with
systems like EUROTRA and the METAL system of the University of Texas, which is now a
3
commercial product) transfer-based systems were generally agreed to be the way forward in
the 1980’s and early 1990’s. Interlingua-based approaches were tried and rejected in the early
days, but are now experiencing a revival, given the increasing sophistication of AI knowledge
representation and inference techniques.
1.5.1
Direct Translation
The idea of direct translation is to translate from source to target without any intermediate
representation. At the extreme end, this would be “word to word” translation in the way that
one might do with a dictionary. More complex versions involve a stage of morphological
analysis for the input, which takes place before the bilingual dictionary look-up, and a stage
of local reordering afterwards. Morphological analysis is useful because one wants to be able
to recognise many forms of a word that may only appear in root form in the dictionary (e.g.
“write”, “writes”, “writing”, “writer”). Local reordering is supposed to take some account
of the grammar of the target language in putting the target words in the right order. The
following examples of Russian-English direct translation illustrate the problems with such an
approach:
My trebuem mira
Direct trans: We require world
Correct trans: We want peace
Nam nuz̆no mnogo uglja, z̆eleza, elektroenergii
Direct trans: To us much coal is necessary, gland, electric power
Correct trans: We need a lot of coal, iron and electricity
(problems with word order and translating ambiguous words are apparent).
1.5.2
Translation via Structural Transfer
There are many possibilities for the level at which one can perform “transfer” between the
source language analysis and the target language translation. Here we concentrate on transfer
at the level of syntactic structure, because this seems to be the basis of most existing transfer
systems and because it is relatively straightforward to describe.
The idea of structural transfer is that the source sentence is analysed to give a tree
representing its phrase structure. There are then transfer rules specifying how to translate
this tree into a phrase structure tree for the target language. In general, one rule will specify
how the top level of structure is translated and then the whole set of rules will be applied
again to determine how the subtrees are dealt with. Once the target tree has been derived,
it is a simple task to actually generate the target sentence from it.
Figure 2 shows an example transfer rule, designed to handle cases like the “the lady likes
the cheese” sentence above. The rule says how to translate a simple English sentence with
main verb “likes” (the English structure is to the left of the ===> and the French structure is
to the right). In this sentence, NP1 would be the structure of “the lady” and NP2 the structure
of “the cheese”. NP1’ and NP2’ in the French structure are supposed to be the translations
of these two subtrees, and how these are translated would have to be determined by other
transfer rules.
Structural transfer obviously does not solve those translation problems that require semantic knowledge (for instance, the translation of English pronouns into French, or the translation
4
S
S
===>
VP
NP1
V
VP
NP2’
NP2
PP
V
likes
plait
P
NP1’
a
Figure 2: Transfer: likes → plait
of a word that has several senses but only one syntactic category). However it does allow the
translation to capture important systematic differences in how sentences are built in the two
languages and to deal with words that may belong to more than one syntactic category.
1.5.3
Translation via an Interlingua
An interlingua is a language-independent representation that is used as an intermediary between sentences of two languages. In practice, this can only be achieved by it being a representation of the meaning of the sentences. This representation needs to contain as much
information as is needed by any of the target languages that will be generated into. So, for
instance, if Spanish is among the target languages then the gender of any cat will have to be
represented. To a large extent, different languages reflect different cultures in the way they
carve up the world. For instance, the nearest equivalent to the English word “vegetable” in
Japanese is “yasai”, but this word includes things like mint, which would not be considered
vegetables, and it also does not cover carrots, which would. A cooking interlingua would
have to represent both of these concepts, as well as the relation between them. This is why
constructing an interlingua is very challenging, especially if the cultures are very different or
the domain is unrestricted.
1.6
Further Reading
• Russell and Norvig, first part of section 23.1.
• Hutchins, W. J. and Somers, H. L., An Introduction to Machine Translation, Academic
Press, 1992.
• Barnett, J., Mani, I. and Rich, E., “Reversible Machine Translation: What to do when
the Languages Don’t Match Up”, in Strzalkowski, T., (Ed.), Reversibe Grammar in
Natural Language Processing, Kluwer, 1994.
5
2
Software for Translation by Structural Transfer
The program file translate.pl provides some basic support for writing MT systems using
structural transfer. To use it, you need to run Prolog, consult the translate.pl file and also
consult a file of your own which define the grammars and lexicons of your two languages, as
well as the appropriate structural transfer rules. You can then use the predicate translate
to translate between source and target sentences, as in the following example:
| ?- translate([he,eats,it],X).
**Parsed OK
**Transferred OK
**Generated OK
X = [he,aets,hit] ?
This example shows the English sentence “he eats it” being translated into the supposedly
equivalent Scots sentence “he aets hit”.
The top level of the Prolog code in the translate.pl file is a slightly more complex
version of the following:
translate(In,Out) :parse(...,In,Tree1),
transfer(Tree1,Tree2),
parse(...,Out,Tree2).
The system analyses (parses) the source language sentence In to produce a parse tree Tree1
(using predicate parse). It then uses structural transfer rules to translate this into a parse
tree Tree2 for the target language. Finally it then uses the parse predicate “backwards” to
get the target sentence Out that corresponds to Tree2. Using the target language grammar
in the generation, rather than just producing the words at the leaves of the tree, ensures that
the result is indeed a legal target language sentence and that any agreements (for instance,
subjects with verbs) are correct.
2.1
What you have to Specify
To get translation going, you need to specify the following things, which are covered in the
next few subsections:
• Grammar rules defining both the source and the target languages. In addition, you
need to say what the “distinguished symbol” is for each language.
• The lexicon for each language and how words in the source language translate into words
of the target. This amounts to a kind of “bilingual lexicon” of the kind that is familiar
from standard foreign language dictionaries.
• The structural transfer rules which say how phrases larger than single words are translated.
6
2.1.1
Grammar Rules
You need to specify a grammar for both the source language and the target language (i.e. two
separate grammars are needed). For clarity, you need to distinguish between the categories
used in the two languages. For instance, French NPs and English NPs are different in structure
and hence these categories need different names. You could use names like french np and
english np. The grammar rules take the usual form of DCG rules, except that the --->
arrow has THREE hyphens in it. This is so that the rules can be treated specially by this
software, rather than being interpreted in the normal way for DCG rules. Here is a simple
rule for Scots NPs:
scot_np ---> scot_det, scot_n.
Note that your grammars do not have to specify lexical entries if they are implied by the
bilingual lexicon (see below). In this respect, they are different from standard DCG grammars.
For each of the two languages, you need to specify the “distinguished symbol” which
is the category representing the class of phrases that you wish to translate. Usually this
will be the equivalent of “sentence” in each language. You do this using the predicates
distinguished source and distinguished target. For instance,
distinguished_source(english_s).
distinguished_target(french_s).
for translating from English to French.
2.1.2
Parse Trees
The system translates your grammar rules into an internal form that allows a phrase structure
tree to be built automatically when a sentence is recognised (normally with DCGs you would
have to arrange this yourself by giving extra arguments to the predicates). Since in order to
write structural transfer rules you have to know how these trees are represented, this section
summarises the principles:
• An individual word is represented by a list containing just that word, for instance
[john].
• If a phrase is recognised by a rule of the form LHS ---> RHS then the parse tree will
be of the form [LHS | RHTrees], where RHTrees is the list of Prolog representations
of trees corresponding to the recognised phrases in RHS.
• If a sequence of words W is recognised as being of a particular category C by virtue
of an entry in the bilingual lexicon (see below), the tree will take the form [C | W1],
where W1 is a list consisting of the words enclosed themselves in lists. For instance,
[np(sing), [fish], [and], [chips]].
As an example, the Prolog representation of the phrase structure tree shown in Figure 3
(laid out to show its structure) is as follows:
[s,
[s(pres),
[np(sing),[he]],
7
s
s(pres)
np(sing)
he
vp(pres,sing)
v(pres,sing)
eats
fish
np(sing)
and
chips
Figure 3: Phrase structure tree
[vp(pres,sing),
[v(pres,sing),[eats]],
[np(sing),[fish],[and],[chips]]
]
]
]
2.1.3
The Bilingual Lexicon
The bilingual lexicon consists of a set of facts for the predicate lex, of the form:
lex(SourceWords,SourceCat,TargetWords,TargetCat).
where SourceWords is a list of Prolog atoms (normally it will only contain one) representing a
source language word or fixed phrase, SourceCat is the category (according to your grammar)
that the word or phrase has, and TargetWords and TargetCat specify one possible translation
into the target language in the same way. If the same source language word has several possible
categories or translations, then you will need to provide multiple lex entries for it.
Here is an example small bilingual lexicon for English-Scots:
lex([fish,and,chips],np(sing),[a,fush,supper],scot_np).
lex([the],det,[the],scot_det).
lex([dog],n(sing),[dug],scot_n).
2.1.4
Structural Transfer Rules
Structural transfer rules take the form of two Prolog terms separated by the operator ===>.
The left hand side is a Prolog list structure that is matched against the parse tree (using
standard Prolog unification) – you use variables in this for indicating the parts of the tree that
you don’t care about (for the current rule). The right hand side is a Prolog term describing
8
the corresponding parse tree for the target language, with one exception. A Prolog term
preceded by the operator $$ will be replaced by the result of applying the rule set recursively
to that term. This is the way the one ensures that subtrees of the pattern matched by the
rule are themselves translated correctly. Thus, for instance, the transfer rule:
[s, X, Y] ===> [french_s, $$X, $$Y].
indicates that an English phrase of category s with two subphrases X and Y (it might have
been better to use the Prolog variables NP and VP) is to be translated into a French phrase of
category french s, also with two subphrases. The first subtree of the French parse tree is to
be filled with the translation $$X of the tree X, and the second is to be filled by the translation
$$Y of the tree Y. A rule like the following:
[np, X, Y] ===> [french_np, $$Y, $$X].
might be used to translate English NPs into French ones, bearing in mind that French adjectives appear after the noun and so some reordering of the material is necessary.
Note that the order in which you write the structural transfer rules matters – given a
particular phrase to translate, the system will use the first rule whose left hand side matches
the parse tree. This allows you to give rules for matching special cases (e.g. the use of the
English verb “likes”) as well as having general rules (e.g. for all other English verbs) that will
cover the general case.
2.2
Example
Figure 4 shows an example of a specification for English-French translation. This can translate
a few sentences such as the following:
English
The lady
The lady
The lady
The lady
likes the cheese
saw the cheese
likes the saw
saw the saw
French
Le fromage plait a la dame
La dame voyait le fromage
La scie plait a la dame
La dame voyait la scie
There are a number of points that can be made about this example:
• The basic English and French grammars are almost the same, apart from the names of
the categories (and of course the lexical entries). The only substantial difference is the
introduction of a “gender” feature in the French to ensure that determiners agree with
nouns.
• Similarly the transfer rules state that almost always the French structure is a mirror of
the English. The only difference is in the first transfer rule, which overrides the default
when the English verb is “likes”.
• Note that a single structural transfer rule handles both types of eng vps.
• The English determiner “the” can translate into either a masculine or a feminine determiner in French. This is non-deterministic, and the system will try both. Only the
one that corresponds to the gender of the French noun will result in a target language
parse tree that is accepted by the target language grammar.
9
distinguished_source(eng_s).
distinguished_target(fre_s).
eng_s ---> eng_np, eng_vp.
eng_vp ---> eng_v, eng_np.
env_vp ---> eng_v, eng_pp.
eng_np ---> eng_det, eng_noun.
eng_pp ---> eng_p, eng_np.
fre_s ---> fre_np, fre_vp.
fre_vp ---> fre_v, fre_np.
fre_vp ---> fre_v, fre_pp.
fre_np ---> fre_det(G), fre_noun(G).
fre_pp ---> fre_p, fre_np.
lex([the],eng_det,[le],fre_det(masc)).
lex([the],eng_det,[la],fre_det(fem)).
lex([lady],eng_noun,[dame],fre_noun(fem)).
lex([cheese],eng_noun,[fromage],fre_noun(masc)).
lex([saw],eng_v,[voyait],fre_v).
lex([saw],eng_noun,[scie],fre_noun(fem)).
lex([likes],eng_v,[plait],fre_v). % will not be used directly
lex([to],eng_p,[a],fre_p).
% ditto
[eng_s, NP1, [eng_vp, [eng_v, [likes]], NP2]]
===>
[fre_s, $$NP2, [fre_vp, [fre_v, [plait]], [fre_pp, [fre_p, [a]], $$NP1]]].
[eng_s, NP,
[eng_vp, V,
[eng_np, D,
[eng_pp, P,
VP]
Any]
N]
NP]
===>
===>
===>
===>
[fre_s, $$NP,
[fre_vp, $$V,
[fre_np, $$D,
[fre_pp, $$P,
$$VP].
$$Any].
$$N].
$$NP].
Figure 4: Example Specification for English-French translation
10
• The English word “saw” is ambiguous between a noun and a verb. However, in this
grammar, when a complete sentence including it is parsed, only one of the categories is
actually possible. So the incorrect translation into French is avoided.
2.3
Grammar Development and Debugging
You are advised to keep all of your grammars and rules in a single file that you can reconsult
if you make changes. Before you reload your file, call the predicate clear to remove
any trace of the existing rules.
As a general principle, you are advised to start with simple grammars and rules, and to
test small examples first, before you go on to more complex grammars and examples.
2.3.1
Localising Problems
If a sentence fails to translate properly, the first question to ask is which part of the system
has failed. The messages:
**Parsed OK
**Transferred OK
**Generated OK
indicate how far the system is able to get with a given sentence. If some of these are repeated,
this is because of backtracking. For instance, if a given source language sentence had two
possible syntactic analyses according to the source language grammar, each of which successfully transferred but only the second of which could generate a legal target language sentence,
then the sequence of messages up to the first solution would be:
**Parsed OK
**Transferred OK
**Parsed OK
**Transferred OK
**Generated OK
Multiple solutions can in general be produced in the parsing of the source sentence and in
the transfer component (via multiple lex entries, not via multiple rules, since only the first
rule is ever chosen).
2.3.2
Problems in Parsing or Generation
If an example fails to parse or generate, you can try to narrow down the search by using the
predicate parse(Category,Phrase,Tree) with progressively smaller parts of the example,
until you find the one that fails. For parsing, you make Category be the desired category of
the phrase (e.g. eng s, eng np) and Phrase be the list of words, leaving the tree Tree for the
system to instantiate. For generation, you instantiate the category and the tree, leaving the
sentence to be instantiated.
The following predicates are helpful for debugging the grammars for the two languages:
dt(Tree) - can be used to display a tree in a format that is easier to read than a nested
Prolog list. Try it on a simple example first.
11
showrules - displays all the current grammar rules and lexical entries, for both languages.
Only any use if you have a very small system.
showrules(Category) - shows only those rules (and lexical entries) which have a category
matching Category on the “left hand side”.
If all else fails and you cannot easily locate a problem with parsing or generation, then
you can call the Prolog spy facility with the predicate for the distinguished symbol in your
source or target language, e.g.
?- spy eng_s.
and step through the tracing as the system attempts to parse or generate from this. The
grammar rules and lexical entries are, in fact, translated into standard Prolog programs in a
similar way to ordinary DCGs (though the translation also includes mechanisms for building
or examining the parse tree), and so you can see what is going on at that level.
Please note that the parsing system will get into difficulties if you have a grammar rule
that (directly or indirectly) requires an instance of a category to appear at the far left of
another phrase of the same category, for instance as in:
np(C) ---> det, n(C).
det ---> np(gen).
Here an np(gen) could occur at the far left of another np(gen). You simply have to avoid
writing grammars of this kind.
2.3.3
Problems in Transfer
Again, if you have a problem with transfer then it is a good idea to try to localise it by giving
increasingly simple examples. For calling the transfer component on its own, you can use the
predicate transfer(SourceTree,TargetTree), where you provide SourceTree as the input
and leave TargetTree to be instantiated.
The following predicates may be helpful for debugging your transfer rules:
transfer db on - switches on extra debugging output during transfer.
transfer db off - switches off this extra output.
showtrans - displays all your current transfer rules (both lex and ===>).
When the extra debugging output is switched on, the system produces messages such as the
following:
>Trying to match [eng_s,[eng_np,[eng_det,[the]],[eng_noun,[lady]]],[eng_vp,...
(Evaluating [fre_s,$$[eng_np,[eng_det,[the]],[eng_noun,[saw]]],[fre_vp,...
>Trying to match [eng_np,[eng_det,[the]],[eng_noun,[saw]]]
(Evaluating [fre_np,$$[eng_det,[the]],$$[eng_noun,[saw]]])
>Trying lexicon for [the] as eng_det
<Transferred to [le] as fre_det(masc)
>Trying lexicon for [saw] as eng_noun
<Transferred to [scie] as fre_noun(fem)
>Trying to match [eng_np,[eng_det,[the]],[eng_noun,[lady]]]
(Evaluating [fre_np,$$[eng_det,[the]],$$[eng_noun,[lady]]])
12
>Trying lexicon
<Transferred to
>Trying lexicon
<Transferred to
for [the] as eng_det
[le] as fre_det(masc)
for [lady] as eng_noun
[dame] as fre_noun(fem)
Basically, the messages step you through the transfer process - the attempt to match a parse
tree with a rule, the right hand side of the rule which must then be evaluated and the successful
transfer of items at the lexical level. Since the trees may be quite complex, it is best to use
this facility with a wide window and/or a small example.
2.4
Acknowledgements
The structural transfer system is, in fact, a fairly minor modification of code for parsing and
semantic interpretation written by Graeme Ritchie and Lex Holt.
3
Towards English-Scots Machine Translation
As the final part of looking at Machine Translation we will look at more examples of structural
transfer, as applied to the translation of English to Scots. The treatment here will be rather
sketchy, and the different examples may not always be handled consistently. The idea is to
give a flavour of the sorts of things one needs to worry about in creating an MT system.
Although English and Scots are two quite similar languages, nevertheless there are some
non-trivial problems in translating between them.
3.1
Disclaimers
• It is not clear that there is a single language called “Scots”, any more than there
is a single language called “English”. With all languages, there are great regional
variations, and Scots is no exception. Here I have picked some phenomena that seem
to be interestingly different in Scots and English, but the set of phenomena that I will
describe does not necessarily come all from one single dialect.
• There is some debate about how one should write Scots (which is primarily a spoken
language). Some people prefer to use English-like spelling where possible, whereas
others like to spell things differently to emphasise the different pronunciation. I will
tend towards the latter, but probably not consistently.
• I don’t actually know a lot about the Scots language, and certainly can’t pronounce
things in it properly.
English and Scots have been chosen here mainly as two languages that we all know or have
easy access to.
3.2
Basic English grammar fragment
distinguished_source(eng_s).
eng_s ---> eng_np(X), eng_vp(X).
eng_vp(X) ---> eng_v(X), eng_np(_).
13
env_vp(X) ---> eng_v(X), eng_pp.
eng_np(X) ---> eng_det(X), eng_noun(X).
eng_pp ---> eng_p, eng_np(_).
This is conventional. Note the use of variables to capture the agreement of subjects in number
with their verbs (and nouns with their determiners).
3.3
Corresponding Scots grammar fragment
distinguished_target(sco_s).
sco_s ---> sco_np(_), sco_vp.
sco_vp ---> sco_v, sco_np(_).
env_vp ---> sco_v, sco_pp.
sco_np(X) ---> sco_det(X), sco_noun(X).
sco_pp ---> sco_p, sco_np(_).
This is very similar, but note that, although Scots nouns must agree with their determiners,
subjects do not have to agree with verbs:
the lambs is oot the field (= The lambs are out of the field)
3.4
Simple transfer rules
[eng_s, NP,
[eng_vp, V,
[eng_np(X),
[eng_pp, P,
VP] ===> [sco_s, $$NP, $$VP].
Any] ===> [sco_vp, $$V, $$Any].
D, N]
===> [sco_np(X), $$D, $$N].
NP] ===> [sco_pp, $$P, $$NP].
lex([the],eng_det(_),[the],sco_det(_)).
lex([field],eng_n(sing),[field],sco_n(sing)).
lex([lambs],eng_n(plur),[lambs],sco_n(plur)).
lex([out,of],eng_p,[oot],sco_p).
lex([is],eng_v(sing),[is],sco_v).
lex([are],eng_v(sing),[is],sco_v).
Note that an English NP translates into a Scots NP with the same number. The English “is”
and “are” translate into the same Scots word.
3.5
Translation cannot be direct
The above suggests that one might be able to translate from English into Scots quite directly.
Here is one case where you can’t determine the Scots translation of a word simply from the
English. The English simple past tense verb translates differently into Scots depending on
where it occurs:
English
The girl came from Edinburgh
If the girl came, she would...
Scots
The lassie cam frae Edinburgh
Gin the lassie wid come, she wid ...
14
In this case, it is the context of the “if” that determines the unusual translation in the second
example; but the “if” could be any number of words to the left of the problematic verb.
Also there must be examples of words in English which are ambiguous between verb and
noun and where the two different senses translate to different Scots words.
3.6
Revised English analysis
We can treat the simple past form of an English verb as being ambiguous between being
simply past and indicating a hypothetical situation (often called “subjunctive”, here subj).
These two different senses translate into different Scots words:
lex([ate],eng_v(past,_),[ett],sco_v(past)).
lex([ate],eng_v(subj,_),[wuid,aet],sco_v(would)).
lex([would,eat],v(would,_),[wuid,aet],scot_v(would)).
The English and Scots grammars now have an extra argument for verbs indicating their type,
one of past, subj or would (note that the latter corresponds to a two-word phrase). We will
also add pres (present) to the list.
We require that the English grammar appropriately disambiguate the past tense verb
occurring in a context and hence force the correct translation.
3.7
Revised English sentences and VPs
The following revised English rules specify that a sentence can be either present or past
tense. One particular form of the present tense sentence is a sentence, consisting of “if”, a
subjunctive sentence and then a “would”sentence (as in “if he arrived I would know”).
eng_s ---> eng_s(pres).
eng_s ---> eng_s(past).
eng_s(Vform) ---> eng_np(X), eng_vp(Vform,X).
eng_s(pres) ---> [if], eng_s(subj), eng_s(would).
eng_vp(Vform,X) ---> eng_v(Vform,X), eng_np(_).
These grammar rules would then serve to disambiguate those problematic forms.
The transfer rules would again need to take English sentences to similarly-shaped Scots
ones, with the following addition:
[eng_s(pres),[if],X,Y] ===> [sco_s(pres),[gin],$$X,$$Y].
Notice that it is not necessary to say anything at this level about the translation of the
problem verb – that will be achieved via the disambiguation of the English grammar and the
appropriate lex entry.
3.8
Word order differences
Here are some other interesting differences between the languages:
15
English
The clothes need to be boiled
I remember who my brother was
Scots
The claes needs bylt
I mind who wiz ma brither
The first of these could probably be handled by VP rules like:
eng_vp(Vform,X) ---> eng_v(Vform,X), [to,be], eng_v(pastp,_).
sco_vp(Vform) ---> sco_v(Vform), sco_v(pastp,_).
where pastp indicates the past participle form of a verb, together with a transfer rule:
[eng_vp(F,_),V1,[to,be],V2] ===> [sco_vp(F),$$V1,$$V2].
The second introduces an interesting change of word order, where the English verb “was”
could have to “move” an arbitrary distance in order to come before the NP in the Scots.
Here is a rather rough-and-ready way of dealing with this phenomenon, though it is not very
general. First, we introduce simple “indirect questions” into the grammars:
eng_vp(Vform,X) ---> eng_think_v(Vform,X), eng_indir_q.
eng_indir_q ---> eng_qpron, eng_np(X), eng_be_v(pres,X).
scot_vp(Vform) ---> sco_think_v(Vform), sco_indir_q.
scot_indir_q ---> sco_qpron, sco_be_v(pres), sco_np.
lex([remembers],eng_think_v(pres,sing),[minds],sco_think_v(pres)).
lex([is],eng_be_v(pres,sing),[is],sco_be_v(pres)).
lex([what],eng_qpron,[whit],sco_qpron).
Then a transfer rule notes the change in order that must be introduced:
[indir_q,X,Y,Z] ===> [scot_indir_q,$$X,$$Z,$$Y].
3.9
Other Phenomena
Some other issues that arise in translating English to Scots are:
Word sense ambiguity. For instance, the English “wall” could translate into “waw” or
“dyke”, depending on whether it is a wall of a house or not.
Relative clauses. For instance, the English “the spikes that you stick in the ground are
sharp” would translate into the equivalent of “the spikes that you stick them in the
ground are sharp.”
Prepositions. For instance, the English “by” translates into “frae” in passive constructions
(“I’m going to be killed by my mother”) but into words like “at”, “aside” or “anent”
when it specifies a location (“she lives by the river”).
3.10
Further Reading
• Jim Miller, “The Grammar of Scottish English”, in J. Milroy and L. Milroy (Eds), Real
English: The Grammar of English Dialects in the British Isles, Longman, 1993.
• http://info.mcc.ac.uk/UMIST CAL/Scots/hame.htm
• http://www.cyberiacafe.net/burns/
16