Difference between revisions of "Kickapoo and English"

From LING073
Jump to: navigation, search
(→‎Final Evaluation)
 
(59 intermediate revisions by 2 users not shown)
Line 1: Line 1:
−
== Resources for machine translation between [[kickapoo]] and [[English]] ==
+
== Resources for machine translation between [[Kickapoo]] and [[English]] ==
  
 +
== External Resources ==
 +
#Repository for KIC-ENG: https://github.swarthmore.edu/Ling073-sp26/ling073-kic-eng
 +
#Kickapoo Transducer: https://github.swarthmore.edu/Ling073-sp26/ling073-kic
 +
#English Transducer: https://github.swarthmore.edu/Ling073-sp26/apertium-eng
  
 +
== Developed Resources ==
 +
#Parallel Corpus: https://github.swarthmore.edu/Ling073-sp26/ling073-kic-eng-corpus
  
 +
== Additions ==
 +
For the polished RBMT assignment, we have made the below expansions:
 +
=== dix File Expansion ===
 +
*Added 130 word stems in monolingual and bilingual dictionary; Specified Aorist tenses (2nd and 3rd) as well as added additional words (such as extra {{tag|vaux}}).
  
 +
=== Additional Disambiguation ===
 +
*We've added two new rules to further distinguish ambiguity surrounding {{tag|prn}} vs {{tag|det}} that arises in manahi ('this') and iinini ('that'):
  
 +
  SELECT Prn
 +
  IF (-1 BOS) (0 Prn) (0 Det) (1 Vcnj) (2 EOS);
  
 +
  SELECT Prn
 +
  IF (-2 BOS) (-1 Verb) (0 Prn) (0 Det) (1 Noun) (2 EOS);
 +
 +
*For the word eecinoat that means both "be cheap" and "be easy", we've added a rule to distinguish their scenarios. Here's an example where it would be mapped to "cheap" before the word "coffee":
 +
 +
  <rule weight="1.2">
 +
      <match lemma="eecinoat" tags="v.*">
 +
        <select lemma="be cheap" tags="v.*"/>
 +
      </match>
 +
      <match lemma="kaahpiih" tags="n.*"/>
 +
  </rule>
 +
 +
=== Polished rtx File ===
 +
 +
==== Transfer Rule Pattern 1: Negative Particle + Finite Verb ====
 +
 +
The first rule is dealing with the negative particle in the morphological transducer. We tested it with
 +
<pre>
 +
Input:  aakwi noweewi
 +
Before: not he said
 +
After:  he did not say
 +
</pre>
 +
 +
This output is much closer to an acceptable English translation because English finite negation usually requires auxiliary <code>do</code> plus <code>not</code>, followed by the base form of the verb.
 +
 +
==== Transfer Rule Pattern 2: Locative Construction ====
 +
 +
We also attempted to handle locative constructions such as:
 +
 +
<pre>
 +
atoopooneki aiwi
 +
</pre>
 +
 +
meaning:
 +
 +
<pre>
 +
he was at the table
 +
</pre>
 +
 +
In this construction, the locative noun <code>atoopooneki</code> is first reduced into a DP with the tags <code>sg</code> and <code>loc</code>. The verb <code>aiwi</code> is reduced into a main-clause intransitive VP with past tense and subject agreement information. I then added a structural transfer rule that combines a locative DP and a main VP into a full English sentence.
 +
 +
== Initial Coverage Analysis ==
 +
# monolingual: coverage: 94 / 166 (~0.56626506024096385542)
 +
# bilingual: coverage: 144 / 575 (~0.25043478260869565217)
 +
 +
== KIC to ENG Evaluation ==
 +
{| class="wikitable"
 +
! # !! Original (Kickapoo) !! English Translation !! biltrans output !! ML output
 +
|-
 +
| 1 || Iini iina ekanaiichi iskweetheeha || ‘then the girl speak’ || ^Iini<cnj>/And<cnjcoo>$ ^iina<det>/that<det>$ ^kanaii<v><iv><aa><cnj><s_3sg>/speak<vblex><iv><aa><cnj><s_3sg>$ ^iskweetheeh<n><aa>/girl<n><aa>$^.<sent>/.<sent>$ || And #that #speak #girl
 +
|-
 +
| 2 || yaaha ineea iinini iskweetheehani iina epapakethomeha || ‘the motorcyclist said to the girl’ || ^yaaha<v>/exclaim<vblex>$ ^in<v><tv><aa><p3_p4>/say<vblex><tv><aa><p3_p4>$ ^iinini<det>/that<det>$ ^iskweetheeh<n><nn><pl>/girl<n><nn><pl>$ ^iina<det>/that<det>$ ^*epapakethomeha/*epapakethomeha$^.<sent>/.<sent>$ || #exclaim #say #that #girl #that #motor
 +
|-
 +
| 3 || Iini tenaami eniketaachi iiniki epapakethomehaki || 'and the motorcyclists laughed so hard’ || ^Iini<cnj>/And<cnjcoo>$ ^tenaami<adv>/greatly<adv>$ ^eniket<v><iv><aa><p3_p4>/laugh<vblex><iv><aa><p3_p4>$ ^iiniki<det>/those<det>$ ^*epapakethomehaki/*epapakethomehaki$^.<sent>/.<sent>$|| And greatly #laugh #those #motor
 +
|-
 +
| 4 || iini sehe enanatohkwihaachi || 'like that, they harassed him’ || ^iini<cnj>/and<cnjcoo>$ ^sehe<prn><dem>/there<dem>$ ^nanatohkwih<v><tv><aa><cnj><s_3sg>/bother<vblex><tv><aa><cnj><s_3sg>$^.<sent>/.<sent>$ || and #there #bother
 +
|-
 +
| 5 || Iini ehpitikeaachi iini witheniikaani || 'and they went into that restaurant’ || ^Iini<cnj>/And<cnjcoo>$ ^pitike<v><iv><aa><cnj><s_3pl>/enter<vblex><iv><aa><cnj><s_3pl>$ ^iini<cnj>/and<cnjcoo>$ ^witheniikaan<n><nn>/food-building<n>$^.<sent>/.<sent>$ || And #enter and #food-building
 +
|-
 +
| 6 || Iini maahaki niiswi epapakethomehaki kiiaweeaki papakethohahi || 'about those two motorcyclists that go around on motorcycles’ || ^Iini<cnj>/And<cnjcoo>$ ^maah<n><aa><pl>/over there<n><aa><pl>$ ^niiswi<num>/two<num>$ ^*epapakethomehaki/*epapakethomehaki$ ^kiiawee<v><iv><aor_1><aa><s_3pl>/go around<vblex><iv><aor_1><aa><s_3pl>$ ^papakethoh<n><aa><ovb><pl>/motorcycle<n><ovb><pl>$ ^.<sent>/.<sent>$
 +
|| And #over.there #two #motor #go.around #motorcycle
 +
|-
 +
| 7 || Kapotwe piyeenetamoki witheniikaani || 'At some at some point they came to a restaurant’ || ^Kapotwe<adv>/Undefined.time<adv>$ ^piyeenetam<v><iv><aa><s_3pl>/come<vblex><iv><aa><s_3pl>$ ^witheniikaan<n><nn>/food-building<n>$^.<sent>/.<sent>$ || #Undefined.time #come #food-building
 +
|-
 +
| 8 || yaaha iina iskuetheha || ‘exclaimed the girl’ || ^yaaha<v>/exclaim<vblex>$ ^iina<det>/that<det>$ ^iskuetheh<n><aa>/girl<n>$^.<sent>/.<sent>$ || #exclaim #that #girl
 +
|-
 +
| 9 || owaa, ineewa iinini epapakethomehani || '”oh wow” she said to the motorcyclist || ^owaa<interj>/wow<ij>$^,<cm>/,<cm>$ ^in<v><tv><aa><p3_p4>/say<vblex><tv><aa><p3_p4>$ ^iinini<det>/that<det>$ ^papakethomeh<n><nn><pl><cnj>/motor<n><pl><cnj>$^.<sent>/.<sent>$ || wow, #say #that #motor
 +
|-
 +
| 10 || iinoki ewepipahonekochi apiskamaweewa niiswi papakethohahi || ‘just now as he was leaving he ran over two motorcycles’ || ^wepi<vaux>/begin<vblex>$ ^pahonekochi<v><tv>/drive<vblex><tv>$^.<sent>/.<sent>$ || now #begin #drive #run.over #two #motorcycle
 +
|}
 +
 +
== Ambiguity Resolution ==
 +
Please see: [[Kickapoo and English/Ambiguity Resolution]]
 +
 +
 +
== Final Evaluation ==
 +
 +
=== Monolingual transducer ===
 +
 +
{| class="wikitable"
 +
! Measure
 +
! Result
 +
! Notes
 +
|-
 +
| Precision against updated eval.test/eval.gold
 +
| 31.90%
 +
| 52 true positives, 111 false positives
 +
|-
 +
| Recall against updated eval.test/eval.gold
 +
| 39.39%
 +
| 52 true positives, 80 false negatives
 +
|-
 +
| Evaluation totals
 +
| 107 forms
 +
| 52 tp, 111 fp, 0 tn, 80 fn
 +
|-
 +
| Coverage over large corpus
 +
| 233 / 530 = 43.96%
 +
| Based on <code>coverage-hfst</code> over <code>kic.corpus.large.txt</code>
 +
|-
 +
| Number of words/tokens in large corpus
 +
| 530
 +
| From coverage denominator
 +
|-
 +
| Remaining unknown forms
 +
| 297
 +
| Top unknown forms include <code>poohkamaaki</code>, <code>yooh</code>, <code>yaaha</code>, <code>see</code>, <code>niihpya</code>
 +
|-
 +
| Ambiguity over large corpus
 +
| 788 / 530 = 1.49
 +
| Average number of analyses per token
 +
|-
 +
| Number of stems in the transducer
 +
| 246
 +
|
 +
|}
 +
 +
=== Machine translation: Kickapoo-English ===
 +
 +
{| class="wikitable"
 +
! Measure
 +
! Result
 +
! Notes
 +
|-
 +
| WER over longer corpus
 +
| 90.57%
 +
| Edit distance: 269; reference length: 297 words
 +
|-
 +
| PER over longer corpus
 +
| 80.81%
 +
| 57 position-independent correct words out of 297 reference words
 +
|-
 +
| Number of words in reference longer corpus
 +
| 297
 +
| From <code>eng.longer.txt</code>
 +
|-
 +
| Number of words in system output
 +
| 228
 +
| From <code>kic-eng.results.txt</code>
 +
|-
 +
| Number of unknown words in system output
 +
| 64
 +
| 28.07% of the test output
 +
|-
 +
| Unknown-word free rides
 +
| 0
 +
| 0.00% of unknown words were free rides
 +
|-
 +
| Proportion of stems translated correctly in longer corpus
 +
| ?
 +
| How to calculate this? Oh we don't need to!
 +
|-
 +
| Trimmed coverage over longer corpus
 +
| 0.73
 +
| coverage: 140 / 192 (~0.72916666666666666667)
 +
|-
 +
| Trimmed coverage over large corpus
 +
| 0.44
 +
| coverage: 233 / 530 (~0.43962264150943396226)
 +
|-
 +
| Number of tokens in longer corpus
 +
| 181
 +
| From longer corpus using "wc -w" command
 +
|-
 +
| Number of tokens in large corpus
 +
| 530
 +
| From large corpus coverage evaluation
 +
|}
 +
 +
 +
Compared with the midterm evaluation, the final system has a much lower precision but a higher recall. At midterm, the system had high precision (92.31%) but low recall (29.45%), which means that the analyses it produced were usually correct, but it failed to analyze many forms in the gold standard.
 +
 +
In the final evaluation, recall increased to 39.39%, showing that the additional stems and expanded morphology helped the system recognize more correct forms. However, precision dropped to 31.90% because the system also produced many extra analyses that were not in the gold file. The final result has 52 true positives but 111 false positives, which suggests that the analyzer is now overgenerating.
 +
 +
This likely happened because we added many new stems and lexical categories, including some ambiguous entries where the same surface form can be analyzed as multiple parts of speech or as both animate and inanimate. We also used the same gold standard that we previously created. However, the gold standard should now be substantially different, especially since aorist forms have now been added to the transducer. Therefore, some analyses that are currently counted as false positives may actually reflect new analyses that were not represented in the original gold standard.
 +
 +
The WER is very high partly because the longer corpus is not made up of short isolated sentences, but instead comes from a complete tale about a motorcyclist. Translating this kind of narrative fluently would require many more structural transfer rules than our system currently has. Many Kickapoo sentences do not map directly onto English word order, and in several cases the English translation requires major reordering rather than word-by-word substitution. In addition, some English translations are idiomatic or context-dependent rather than literal. For example, a form based on the stem meaning “bother” may be translated as “harass” in the context of the story. Similarly, compounds or descriptive expressions may need to be translated into more natural English lexical items, such as “food-building” being translated as “restaurant.” Because our system mostly handles simpler lexical transfer and only a limited number of structural patterns, it often produces output that is partially analyzable but still far from the reference translation. As a result, the WER is high not only because of unknown words, but also because the reference translation reflects fluent English narrative structure and idiomatic meaning that our current transfer system does not yet fully capture.
  
 
[[Category:Sp26_TranslationPairs]]
 
[[Category:Sp26_TranslationPairs]]
 +
[[Category:Kickapoo]]
 +
[[Category:English]]

Latest revision as of 01:58, 17 May 2026

Resources for machine translation between Kickapoo and English

External Resources

  1. Repository for KIC-ENG: https://github.swarthmore.edu/Ling073-sp26/ling073-kic-eng
  2. Kickapoo Transducer: https://github.swarthmore.edu/Ling073-sp26/ling073-kic
  3. English Transducer: https://github.swarthmore.edu/Ling073-sp26/apertium-eng

Developed Resources

  1. Parallel Corpus: https://github.swarthmore.edu/Ling073-sp26/ling073-kic-eng-corpus

Additions

For the polished RBMT assignment, we have made the below expansions:

dix File Expansion

  • Added 130 word stems in monolingual and bilingual dictionary; Specified Aorist tenses (2nd and 3rd) as well as added additional words (such as extra <vaux>).

Additional Disambiguation

  • We've added two new rules to further distinguish ambiguity surrounding <prn> vs <det> that arises in manahi ('this') and iinini ('that'):
 SELECT Prn
 IF (-1 BOS) (0 Prn) (0 Det) (1 Vcnj) (2 EOS);
 SELECT Prn
 IF (-2 BOS) (-1 Verb) (0 Prn) (0 Det) (1 Noun) (2 EOS);
  • For the word eecinoat that means both "be cheap" and "be easy", we've added a rule to distinguish their scenarios. Here's an example where it would be mapped to "cheap" before the word "coffee":
 <rule weight="1.2">
     <match lemma="eecinoat" tags="v.*">
       <select lemma="be cheap" tags="v.*"/>
     </match>
     <match lemma="kaahpiih" tags="n.*"/>
 </rule>

Polished rtx File

Transfer Rule Pattern 1: Negative Particle + Finite Verb

The first rule is dealing with the negative particle in the morphological transducer. We tested it with

Input:  aakwi noweewi
Before: not he said
After:  he did not say

This output is much closer to an acceptable English translation because English finite negation usually requires auxiliary do plus not, followed by the base form of the verb.

Transfer Rule Pattern 2: Locative Construction

We also attempted to handle locative constructions such as:

atoopooneki aiwi

meaning:

he was at the table

In this construction, the locative noun atoopooneki is first reduced into a DP with the tags sg and loc. The verb aiwi is reduced into a main-clause intransitive VP with past tense and subject agreement information. I then added a structural transfer rule that combines a locative DP and a main VP into a full English sentence.

Initial Coverage Analysis

  1. monolingual: coverage: 94 / 166 (~0.56626506024096385542)
  2. bilingual: coverage: 144 / 575 (~0.25043478260869565217)

KIC to ENG Evaluation

# Original (Kickapoo) English Translation biltrans output ML output
1 Iini iina ekanaiichi iskweetheeha ‘then the girl speak’ ^Iini<cnj>/And<cnjcoo>$ ^iina<det>/that<det>$ ^kanaii<v><iv><aa><cnj><s_3sg>/speak<vblex><iv><aa><cnj><s_3sg>$ ^iskweetheeh<n><aa>/girl<n><aa>$^.<sent>/.<sent>$ And #that #speak #girl
2 yaaha ineea iinini iskweetheehani iina epapakethomeha ‘the motorcyclist said to the girl’ ^yaaha<v>/exclaim<vblex>$ ^in<v><tv><aa><p3_p4>/say<vblex><tv><aa><p3_p4>$ ^iinini<det>/that<det>$ ^iskweetheeh<n><nn><pl>/girl<n><nn><pl>$ ^iina<det>/that<det>$ ^*epapakethomeha/*epapakethomeha$^.<sent>/.<sent>$ #exclaim #say #that #girl #that #motor
3 Iini tenaami eniketaachi iiniki epapakethomehaki 'and the motorcyclists laughed so hard’ ^Iini<cnj>/And<cnjcoo>$ ^tenaami<adv>/greatly<adv>$ ^eniket<v><iv><aa><p3_p4>/laugh<vblex><iv><aa><p3_p4>$ ^iiniki<det>/those<det>$ ^*epapakethomehaki/*epapakethomehaki$^.<sent>/.<sent>$ And greatly #laugh #those #motor
4 iini sehe enanatohkwihaachi 'like that, they harassed him’ ^iini<cnj>/and<cnjcoo>$ ^sehe<prn><dem>/there<dem>$ ^nanatohkwih<v><tv><aa><cnj><s_3sg>/bother<vblex><tv><aa><cnj><s_3sg>$^.<sent>/.<sent>$ and #there #bother
5 Iini ehpitikeaachi iini witheniikaani 'and they went into that restaurant’ ^Iini<cnj>/And<cnjcoo>$ ^pitike<v><iv><aa><cnj><s_3pl>/enter<vblex><iv><aa><cnj><s_3pl>$ ^iini<cnj>/and<cnjcoo>$ ^witheniikaan<n><nn>/food-building<n>$^.<sent>/.<sent>$ And #enter and #food-building
6 Iini maahaki niiswi epapakethomehaki kiiaweeaki papakethohahi 'about those two motorcyclists that go around on motorcycles’ ^Iini<cnj>/And<cnjcoo>$ ^maah<n><aa><pl>/over there<n><aa><pl>$ ^niiswi<num>/two<num>$ ^*epapakethomehaki/*epapakethomehaki$ ^kiiawee<v><iv><aor_1><aa><s_3pl>/go around<vblex><iv><aor_1><aa><s_3pl>$ ^papakethoh<n><aa><ovb><pl>/motorcycle<n><ovb><pl>$ ^.<sent>/.<sent>$ And #over.there #two #motor #go.around #motorcycle
7 Kapotwe piyeenetamoki witheniikaani 'At some at some point they came to a restaurant’ ^Kapotwe<adv>/Undefined.time<adv>$ ^piyeenetam<v><iv><aa><s_3pl>/come<vblex><iv><aa><s_3pl>$ ^witheniikaan<n><nn>/food-building<n>$^.<sent>/.<sent>$ #Undefined.time #come #food-building
8 yaaha iina iskuetheha ‘exclaimed the girl’ ^yaaha<v>/exclaim<vblex>$ ^iina<det>/that<det>$ ^iskuetheh<n><aa>/girl<n>$^.<sent>/.<sent>$ #exclaim #that #girl
9 owaa, ineewa iinini epapakethomehani '”oh wow” she said to the motorcyclist ^owaa<interj>/wow<ij>$^,<cm>/,<cm>$ ^in<v><tv><aa><p3_p4>/say<vblex><tv><aa><p3_p4>$ ^iinini<det>/that<det>$ ^papakethomeh<n><nn><pl><cnj>/motor<n><pl><cnj>$^.<sent>/.<sent>$ wow, #say #that #motor
10 iinoki ewepipahonekochi apiskamaweewa niiswi papakethohahi ‘just now as he was leaving he ran over two motorcycles’ ^wepi<vaux>/begin<vblex>$ ^pahonekochi<v><tv>/drive<vblex><tv>$^.<sent>/.<sent>$ now #begin #drive #run.over #two #motorcycle

Ambiguity Resolution

Please see: Kickapoo and English/Ambiguity Resolution


Final Evaluation

Monolingual transducer

Measure Result Notes
Precision against updated eval.test/eval.gold 31.90% 52 true positives, 111 false positives
Recall against updated eval.test/eval.gold 39.39% 52 true positives, 80 false negatives
Evaluation totals 107 forms 52 tp, 111 fp, 0 tn, 80 fn
Coverage over large corpus 233 / 530 = 43.96% Based on coverage-hfst over kic.corpus.large.txt
Number of words/tokens in large corpus 530 From coverage denominator
Remaining unknown forms 297 Top unknown forms include poohkamaaki, yooh, yaaha, see, niihpya
Ambiguity over large corpus 788 / 530 = 1.49 Average number of analyses per token
Number of stems in the transducer 246

Machine translation: Kickapoo-English

Measure Result Notes
WER over longer corpus 90.57% Edit distance: 269; reference length: 297 words
PER over longer corpus 80.81% 57 position-independent correct words out of 297 reference words
Number of words in reference longer corpus 297 From eng.longer.txt
Number of words in system output 228 From kic-eng.results.txt
Number of unknown words in system output 64 28.07% of the test output
Unknown-word free rides 0 0.00% of unknown words were free rides
Proportion of stems translated correctly in longer corpus  ? How to calculate this? Oh we don't need to!
Trimmed coverage over longer corpus 0.73 coverage: 140 / 192 (~0.72916666666666666667)
Trimmed coverage over large corpus 0.44 coverage: 233 / 530 (~0.43962264150943396226)
Number of tokens in longer corpus 181 From longer corpus using "wc -w" command
Number of tokens in large corpus 530 From large corpus coverage evaluation


Compared with the midterm evaluation, the final system has a much lower precision but a higher recall. At midterm, the system had high precision (92.31%) but low recall (29.45%), which means that the analyses it produced were usually correct, but it failed to analyze many forms in the gold standard.

In the final evaluation, recall increased to 39.39%, showing that the additional stems and expanded morphology helped the system recognize more correct forms. However, precision dropped to 31.90% because the system also produced many extra analyses that were not in the gold file. The final result has 52 true positives but 111 false positives, which suggests that the analyzer is now overgenerating.

This likely happened because we added many new stems and lexical categories, including some ambiguous entries where the same surface form can be analyzed as multiple parts of speech or as both animate and inanimate. We also used the same gold standard that we previously created. However, the gold standard should now be substantially different, especially since aorist forms have now been added to the transducer. Therefore, some analyses that are currently counted as false positives may actually reflect new analyses that were not represented in the original gold standard.

The WER is very high partly because the longer corpus is not made up of short isolated sentences, but instead comes from a complete tale about a motorcyclist. Translating this kind of narrative fluently would require many more structural transfer rules than our system currently has. Many Kickapoo sentences do not map directly onto English word order, and in several cases the English translation requires major reordering rather than word-by-word substitution. In addition, some English translations are idiomatic or context-dependent rather than literal. For example, a form based on the stem meaning “bother” may be translated as “harass” in the context of the story. Similarly, compounds or descriptive expressions may need to be translated into more natural English lexical items, such as “food-building” being translated as “restaurant.” Because our system mostly handles simpler lexical transfer and only a limited number of structural patterns, it often produces output that is partially analyzable but still far from the reference translation. As a result, the WER is high not only because of unknown words, but also because the reference translation reflects fluent English narrative structure and idiomatic meaning that our current transfer system does not yet fully capture.