Apertium has moved from SourceForge to GitHub.
If you have any questions, please come and talk to us on #apertium on irc.freenode.net or contact the GitHub migration team.

Anaphora Resolution Module

From Apertium
(Difference between revisions)
Jump to: navigation, search
(Anaphora Resolution Module)
(What is Anaphora Resolution?)
(6 intermediate revisions by one user not shown)
Line 1: Line 1:
 
== Anaphora Resolution Module ==
 
   
 
Here you will find the documentation for the Anaphora Resolution module created during the Google Summer of Code 2019. ([http://wiki.apertium.org/wiki/User:Khannatanmai Proposal])
 
Here you will find the documentation for the Anaphora Resolution module created during the Google Summer of Code 2019. ([http://wiki.apertium.org/wiki/User:Khannatanmai Proposal])
   
Repo: https://github.com/khannatanmai/apertium-anaphora
+
Repo: https://github.com/apertium/apertium-anaphora
  +
  +
== What is Anaphora Resolution? ==
  +
  +
Anaphora Resolution is the problem of resolving references to earlier items in discourse.
  +
  +
:'''Anaphor:''' A linguistic unit that refers to an earlier linguistic unit in discourse.
  +
  +
:'''Antecedent:''' The linguistic unit that the anaphor refers to.
  +
  +
The most common form of this is Pronominal Anaphora, where the anaphor is a pronoun and the antecedent is a noun.
  +
  +
For example,
  +
  +
'''Jessica''' is in the sixth grade and this is '''her''' father.
  +
  +
Here, "her" is the anaphor, and its antecedent is "Jessica".
  +
  +
== Anaphora Resolution in Machine Translation ==
  +
Anaphora Resolution is required in Machine Translation to produce correct and fluent translations. Since different languages encode information differently, resolving the antecedent of the anaphors in text becomes essential in several language pairs.
  +
  +
For example,
  +
* '''Spanish -> English'''
  +
:''La chica comió su manzana''
  +
:Translation: ''The girl ate his/her/its apple''
  +
:Resolved Anaphora: ''The girl ate '''her''' apple''
  +
  +
* '''Add more examples'''
  +
  +
== Anaphora Resolution in Apertium ==
  +
Anaphora Resolution happens in two stages in the [[pipeline]]: In the '''Anaphora Resolution module''' and the in the '''Transfer''' stage.
  +
  +
We find the antecedent and attach it to the anaphor in the Anaphora Resolution module and select the correct pronoun in the Transfer stage.
  +
  +
=== Anaphora Resolution Module ===
  +
In the Apertium [[pipeline]], Anaphora Resolution happens after the Lexical Selection module, right before Transfer.
  +
  +
The output from the Lexical Selection module is analysed, and for each anaphor, the context is processed and the perceived antecedent is attached to the Lexical Unit of the anaphor. It is then sent to Transfer.
  +
  +
If the input sentence is '''Els grups del Parlament han mostrat aquest dimarts el seu suport al batle d'Alaró'''
  +
  +
The input to the Anaphora Resolution Module is:
  +
<pre>
  +
^El<det><def><m><pl>/The<det><def><m><pl>$ ^grup<n><m><pl>/group<n><pl>$ ^de<pr>/of<pr>/from<pr>$
  +
^el<det><def><m><sg>/the<det><def><m><sg>$ ^Parlament<n><m><sg>/Parliament<n><sg>$
  +
^haver<vbhaver><pri><p3><pl>/have<vbhaver><pri><p3><pl>$
  +
^mostrar<vblex><pp><m><sg>/show<vblex><pp><m><sg>/display<vblex><pp><m><sg>$
  +
^aquest<det><dem><m><sg>/this<det><dem><m><sg>$ ^dimarts<n><m><sp>/Tuesday<n><ND>$
  +
^el seu<det><pos><m><sg>/his<det><pos><m><sg>$ ^suport<n><m><sg>/support<n><sg>$
  +
^a<pr>/at<pr>/in<pr>/to<pr>$ ^el<det><def><m><sg>/the<det><def><m><sg>$
  +
^*batle/*batle$ ^de<pr>/of<pr>/from<pr>$ ^*Alaró/*Alaró$^.<sent>/.<sent>$
  +
</pre>
  +
  +
The output is as follows:
  +
<pre>
  +
^El<det><def><m><pl>/The<det><def><m><pl>/$ ^grup<n><m><pl>/group<n><pl>/$ ^de<pr>/of<pr>/from<pr>/$
  +
^el<det><def><m><sg>/the<det><def><m><sg>/$ ^Parlament<n><m><sg>/Parliament<n><sg>/$
  +
^haver<vbhaver><pri><p3><pl>/have<vbhaver><pri><p3><pl>/$
  +
^mostrar<vblex><pp><m><sg>/show<vblex><pp><m><sg>/display<vblex><pp><m><sg>/$
  +
^aquest<det><dem><m><sg>/this<det><dem><m><sg>/$ ^dimarts<n><m><sp>/Tuesday<n><ND>/$
  +
^el seu<det><pos><m><sg>/his<det><pos><m><sg>/group<n><pl>$ ^suport<n><m><sg>/support<n><sg>/$
  +
^a<pr>/at<pr>/in<pr>/to<pr>/$ ^el<det><def><m><sg>/the<det><def><m><sg>/$
  +
^*batle/*batle/$ ^de<pr>/of<pr>/from<pr>/$ ^*Alaró/*Alaró/$^.<sent>/.<sent>/$
  +
</pre>
  +
  +
So we can see that the anaphor '''el seu''' (a possessive determiner)
  +
<pre>
  +
^el seu<det><pos><m><sg>/his<det><pos><m><sg>$
  +
</pre>
  +
gets modified to
  +
<pre>
  +
^el seu<det><pos><m><sg>/his<det><pos><m><sg>/group<n><pl>$
  +
</pre>
  +
as we attach its antecedent '''group''' to it.
  +
  +
This is then passed on to Transfer.
  +
  +
=== Transfer ===
  +
  +
Since originally Apertium didn't deal with Anaphora Resolution, it used to put a default translation - "his" in the above example.
  +
  +
Now, the Anaphora Resolution Module attaches its antecedent in the LU, '''which we can use to change it to the correct anaphor''' using a macro in the transfer rules of the language pair. (t1x)
  +
  +
These rules represent logic similar to:
  +
* if antecedent is plural, change '''his''' to '''their'''.
  +
* if antecedent is female, change '''his''' to '''her'''.
  +
  +
== How does it work? ==

Revision as of 21:47, 11 August 2019

Here you will find the documentation for the Anaphora Resolution module created during the Google Summer of Code 2019. (Proposal)

Repo: https://github.com/apertium/apertium-anaphora

Contents

What is Anaphora Resolution?

Anaphora Resolution is the problem of resolving references to earlier items in discourse.

Anaphor: A linguistic unit that refers to an earlier linguistic unit in discourse.
Antecedent: The linguistic unit that the anaphor refers to.

The most common form of this is Pronominal Anaphora, where the anaphor is a pronoun and the antecedent is a noun.

For example,

Jessica is in the sixth grade and this is her father.

Here, "her" is the anaphor, and its antecedent is "Jessica".

Anaphora Resolution in Machine Translation

Anaphora Resolution is required in Machine Translation to produce correct and fluent translations. Since different languages encode information differently, resolving the antecedent of the anaphors in text becomes essential in several language pairs.

For example,

  • Spanish -> English
La chica comió su manzana
Translation: The girl ate his/her/its apple
Resolved Anaphora: The girl ate her apple
  • Add more examples

Anaphora Resolution in Apertium

Anaphora Resolution happens in two stages in the pipeline: In the Anaphora Resolution module and the in the Transfer stage.

We find the antecedent and attach it to the anaphor in the Anaphora Resolution module and select the correct pronoun in the Transfer stage.

Anaphora Resolution Module

In the Apertium pipeline, Anaphora Resolution happens after the Lexical Selection module, right before Transfer.

The output from the Lexical Selection module is analysed, and for each anaphor, the context is processed and the perceived antecedent is attached to the Lexical Unit of the anaphor. It is then sent to Transfer.

If the input sentence is Els grups del Parlament han mostrat aquest dimarts el seu suport al batle d'Alaró

The input to the Anaphora Resolution Module is:

^El<det><def><m><pl>/The<det><def><m><pl>$ ^grup<n><m><pl>/group<n><pl>$ ^de<pr>/of<pr>/from<pr>$ 
^el<det><def><m><sg>/the<det><def><m><sg>$ ^Parlament<n><m><sg>/Parliament<n><sg>$ 
^haver<vbhaver><pri><p3><pl>/have<vbhaver><pri><p3><pl>$ 
^mostrar<vblex><pp><m><sg>/show<vblex><pp><m><sg>/display<vblex><pp><m><sg>$ 
^aquest<det><dem><m><sg>/this<det><dem><m><sg>$ ^dimarts<n><m><sp>/Tuesday<n><ND>$ 
^el seu<det><pos><m><sg>/his<det><pos><m><sg>$ ^suport<n><m><sg>/support<n><sg>$ 
^a<pr>/at<pr>/in<pr>/to<pr>$ ^el<det><def><m><sg>/the<det><def><m><sg>$ 
^*batle/*batle$ ^de<pr>/of<pr>/from<pr>$ ^*Alaró/*Alaró$^.<sent>/.<sent>$

The output is as follows:

^El<det><def><m><pl>/The<det><def><m><pl>/$ ^grup<n><m><pl>/group<n><pl>/$ ^de<pr>/of<pr>/from<pr>/$ 
^el<det><def><m><sg>/the<det><def><m><sg>/$ ^Parlament<n><m><sg>/Parliament<n><sg>/$ 
^haver<vbhaver><pri><p3><pl>/have<vbhaver><pri><p3><pl>/$ 
^mostrar<vblex><pp><m><sg>/show<vblex><pp><m><sg>/display<vblex><pp><m><sg>/$ 
^aquest<det><dem><m><sg>/this<det><dem><m><sg>/$ ^dimarts<n><m><sp>/Tuesday<n><ND>/$ 
^el seu<det><pos><m><sg>/his<det><pos><m><sg>/group<n><pl>$ ^suport<n><m><sg>/support<n><sg>/$ 
^a<pr>/at<pr>/in<pr>/to<pr>/$ ^el<det><def><m><sg>/the<det><def><m><sg>/$ 
^*batle/*batle/$ ^de<pr>/of<pr>/from<pr>/$ ^*Alaró/*Alaró/$^.<sent>/.<sent>/$

So we can see that the anaphor el seu (a possessive determiner)

^el seu<det><pos><m><sg>/his<det><pos><m><sg>$

gets modified to

^el seu<det><pos><m><sg>/his<det><pos><m><sg>/group<n><pl>$

as we attach its antecedent group to it.

This is then passed on to Transfer.

Transfer

Since originally Apertium didn't deal with Anaphora Resolution, it used to put a default translation - "his" in the above example.

Now, the Anaphora Resolution Module attaches its antecedent in the LU, which we can use to change it to the correct anaphor using a macro in the transfer rules of the language pair. (t1x)

These rules represent logic similar to:

  • if antecedent is plural, change his to their.
  • if antecedent is female, change his to her.

How does it work?

Personal tools