tiagorodriguessimoes / LinguaNatural-Soundex-mp1

Mini Projecto 1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LinguaNatural-Soundex-mp1

Página da Cadeira

LÍNGUA NATURAL 2016/2017 Mini-Projecto No 1 — MP1

Data limite entrega: até às 12:00 (meio dia) do dia 17/Out

###OBJECTIVOS Aprender a trabalhar com transdutores, usando-os para resolver um problema concreto na área de PLN.

###ENUNCIADO Os algoritmos ditos fonéticos têm como objectivo associar uma única representação (chave) a palavras que soam de modo semelhante. O Soundex (Odell e Russel, 1922) e o Mataphone (Lawrence Philips, 1990) são exemplos deste tipo de algoritmos.

Defina UM transdutor, usando outros transdutores mais pequenos, que implemente o seguinte algoritmo fonético:

###1. passo S → Z se entre vogais (ex: asa → aza) X → Z se precedido de "E" (que está no início de palavra) e seguido de uma vogal (ex: exame → ezame) X → S se precedido de "E" (que está no início de palavra) e seguido de uma consoante (ex: extra → estra)

###2. passo CH → X (ex: acho → axo) LH → 2 (ex: galho → ga2o) NH → 3 (ex: ganho → ga3o) RR → 4 (ex: carro → ca4o) SS → S (ex: massa → masa)

###3. passo R → 4 se no início da palavra (ex: rato → 4ato) H → ∅ (ex: hoje→oje) Q → K (ex: quanto → kuanto) Z → S se no fim da palavra (ex: paz → pas) C → S se seguido de "E" ou "I" (ex: celofane → selofane) K caso contrário (ex: calar → kalar) G → J se seguido de "E" ou "I" (ex: gelo → jelo) K caso contrário (ex: galo → kalo) X → KS se no fim da palavra (ex: xerox → xeroks)

###4. passo: Elimina todas as vogais que não se encontram no início da palavra (ex: aleluia→ all).

Deverá ter em conta que:

  • O transdutor que implementa o algoritmo fonético deverá processar uma palavra de cada vez e não uma sequência de palavras;
  • O transdutor final deve ser construído usando pelo menos um transdutor por cada passo do algoritmo (4 passos);
  • Dentro de cada passo é irrelevante a ordem pela qual as regras são aplicadas;
  • Não serão considerados diacríticos (" ́", "`", "~", "^", cedilha);
  • A entrada e a saída só devem conter minúsculas;
  • O ficheiro "syms.txt" contém os símbolos a manipular pelos transdutores e não pode ser alterado.

###Software

  • Graphviz
  • OpenFST da Google

About

Mini Projecto 1


Languages

Language:Shell 61.1%Language:Python 38.9%