Difference between revisions of "Task ideas for Google Code-in/Intersection of ATT format transducers"

From Apertium
Jump to navigation Jump to search
Line 7: Line 7:
   
 
==Example==
 
==Example==
  +
  +
===Input===
   
 
{|class=wikitable
 
{|class=wikitable
Line 43: Line 45:
 
11 7 ε <n>
 
11 7 ε <n>
 
7
 
7
  +
 
</pre>
 
</pre>
  +
|}
  +
  +
===Output===
  +
  +
{|class=wikitable
  +
! Trimmed monolingual transducer
  +
|-
  +
<pre>
  +
0 1 b b
  +
1 2 e e
  +
1 3 a a
  +
2 4 d d
  +
3 4 t t
  +
4 5 s <n>
  +
4 6 ε <n>
  +
5 7 ε <pl>
  +
6 7 ε <sg>
  +
7
  +
</pre>
  +
|-
 
|}
 
|}
   

Revision as of 18:50, 13 November 2013

Objective

The objective of these tasks is to write code to intersect two finite-state transducers. One transducer is a morphological dictionary, the other transducer is a bilingual dictionary which is converted into prefixes.

The intersection of the morphological dictionary with the prefixes of the bilingual dictionary will give us the set of strings in the morphological dictionary which have translations in the bilingual dictionary.

Example

Input

Monolingual transducer Bilingual transducer
0	1	b	b	
1	2	e	e	
1	3	a	a	
1	4	u	u	
2	5	e	e	
2	6	d	d	
3	6	t	t	
4	6	g	g	
5	6	r	r	
6	7	ε	<n>	
6	8	s	<n>	
7	9	ε	<sg>	
8	9	ε	<pl>	
9
0	1	b	o	
0	2	b	s	
1	3	e	h	
2	4	a	a	
3	5	d	e	
4	6	t	g	
5	7	<n>	<n>	
6	8	<n>	u	
8	9	ε	z	
9	10	ε	a	
10	11	ε	r	
11	7	ε	<n>	
7

Output

0	1	b	b
1	2	e	e
1	3	a	a
2	4	d	d
3	4	t	t
4	5	s	<n>
4	6	ε	<n>
5	7	ε	<pl>
6	7	ε	<sg>
7
Trimmed monolingual transducer

Tasks

Implementation in python

Implementation in C++

Front-end program

Further reading