Processamento de Linguagem Natural
J.Joao e quem mais queira colaborar
Boa gente,
Por favor corrigem/melhorem/comentem as versões aqui apresentadas
e mandem-me de mail as novidade
Um abraco
J.Joao
Alguns exercicios das aulas de 1998-99 e testes de anos anteriores
pln98-99
pln98.tgz
Classificações e Testes
Classificações do teste de Mar 99
Alguma documentação sobre ferramentas
Perl
Perl man page
funções
operadores
expressões regulares
ipc
Perl doc
Far More Than Everything You've Ever Wanted to Know About...
What Makes Perl's Regular Expressions Dynamite
A text on Regular expressions in Perl
Inspiração linguística do Perl
Lista de Modulos perl
Modulos perl
incluindo uma pequena descrição
Prolog
Manuais do sicstus prolog 2.1.9
DCG e sua implementação no SICSTUS
Manuais do sicstus Library
Filtros e inf. retriv
agrep - approximated grep
glimpse e
glimpse home page e
An article describing
the ideas behind the design of glimpse.
glimpse index
glimpse server
Exercícios das aulas
- Calculador de ocorrências de palavras num texto
com ordenação alfabética ou por número de ocorrências, ignorando
as palavras começadas por dígitos
em Perl
- Encontrar a lista dos nomes próprios
.. que aparecem num texto. Exemplo: Jose Joao A. G. Dias de Almeida
- Tradutor palavra a palavra
- escrito em Perl com dicionário externo
- idem mas tendo o cuidado de manter a "capitalização" das palavras
- escrito em Prolog evitando backtracking para zonas de erro
quando há outras hipóteses
- Tradutor palavra* palavra*
- Versão em prolog sem difference-list
- Versão em prolog usando difference-list
- Versão em Prolog evitando backtracking para zonas de erro
quando há outras hipóteses
-
Versão em Perl com dicionário externo .
Neste exemplo aparecem contempladas apenas regras com sequências de palavras
limitadas (3)
- Gramática para portugues
- Gramática para portugues com concordâncias género e número
- Gramática para portugues com determinação de árvore sintáctica
- Gramáticas emparelhadas (port. ing.) com determinação de árvore
sintáctica comum para traducao
- Versao Prolog - 27-Out-96 Nesta versão aparece incluído
um mini interpretador que traduz listas até aparecer "end.".
- Construir uma script perl para passar a traduzir "texto normal"
em vez de listas prolog
solucao perl usando IPC::Open3
- melhorar o nível léxico do exemplo anterior
- Gramática para portugues com determinação semântica intermédia em
árvores de quantificadores
Projectos pequenos
Módulo tradutor
desenhar um módulo perl que permita construir
tradutores com:
dicionário externo
definição de prefixo de marcação de palavras desconhecidas
possibilidade de "log" das palavras desconhecidas em ficheiro
possibilidade de definição de funções de pre e pos processamento das frases
possibilidade de definição de padrões de partes de texto a não mexer
Solução:
módulo trad.pm
manual
Exemplo de utlização( ingles -> portugues):
tradutor
dicionário
função de post processamento
Conversão duma estrutura perl em html
dada um apontador para uma estrutura complexa perl , construir uma pagina
html correspondente;
Esquema de traducao a usar:
[ a, b, c ] =>
{ a=>b, c=>d } => - a
- b
- c
- d
Solução:
módulo visual.pm
exemplo de utilização e respectivo
resultado
sugestão: reescreva a função html de modo a gerar tabelas
Recursos para construção de dicionários
foldoc.txt.gz
man pages do unix
dicionario de calao
lista de matemáticos
extrair uma lista (nome -> url) a partir de
Lista de nomes
Módulo jspell - analisador morfológico:
(necessita do programa jspell e do respectivo dicionário)
módulo jspell.pm
exemplo de utilização
Agradece-se a colaboração
de:
Filipe Joao Soares da Silva
Carlos Manuel Argainha Oliveira
Jose Joao Dias Almeida jj@di.uminho.pt
Wed Mar 10 16:34:01 WET 1999