User Tools

Site Tools


spln2016:diario5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
spln2016:diario5 [2016/03/19 15:22] – created ambsspln2016:diario5 [2016/03/19 15:25] ambs
Line 7: Line 7:
   * Exercícios com Análise Morfológica   * Exercícios com Análise Morfológica
  
-Link para submissão de TPCs: +=== Notas ===
-natura.di.uminho.pt/jjbin/spln-exe+
  
 +  * Link para submissão de TPCs: http://natura.di.uminho.pt/jjbin/spln-exe
 +
 +=== Deteção Tempos Compostos ===
  
 Revisões da ultima aula: Revisões da ultima aula:
-- Lingua::Jspell 
- - tempos compostos: 
- ex. tenho passado 
- --> 'tenho': rad = ter 
- --> 'passado': cat = v, tempo = participio passado 
  
 +  * Lingua::Jspell
 +    * tempos compostos: //ex: tenho passado//
 +      --> 'tenho': rad = ter
 +      --> 'passado': cat = v, tempo = participio passado
  
---------------------------------------------------------------------------------+=== Exercício: nlgrep ===
  
- exercício+Permitir usar expressões com informação morfológica
-    nlgrep (natural language grep): + 
-    [restrição 1][restrição 2] dar um padrão constituído por duas palavras+   nlgrep rad=ter CAT=v,T=ppa 
 + 
 + 
 +Implementação
  
       #!usr/bin/perl       #!usr/bin/perl
Line 33: Line 37:
       use Memoize;       use Memoize;
       use Data::Dumper;       use Data::Dumper;
 +      
       #cada padrão será um par chave:valor       #cada padrão será um par chave:valor
       my (@patterns);       my (@patterns);
       my $dic = Lingua::Jspell->new("pt");       my $dic = Lingua::Jspell->new("pt");
- +       
 +      
       if(!@ARGV){       if(!@ARGV){
         die "No arguments provided\n"; # sem o '\n' diz em que linha é que o die ocorre         die "No arguments provided\n"; # sem o '\n' diz em que linha é que o die ocorre
       }        } 
 +      
       @patterns = map{argparse($_)} @ARGV;       @patterns = map{argparse($_)} @ARGV;
 +      
       print Dumper(\@patterns); #para 'debug'       print Dumper(\@patterns); #para 'debug'
 +      
       @ARGV = ();       @ARGV = ();
 +      
       while (<>) {       while (<>) {
         # @l = $dic->fea($word,{...att. value pair restriction})         # @l = $dic->fea($word,{...att. value pair restriction})
 +      
         while (/\w+(-\w+)*|[.,;:!?]/g) {         while (/\w+(-\w+)*|[.,;:!?]/g) {
           my $w = $&;           my $w = $&;
Line 60: Line 64:
         }         }
       }       }
 +      
       sub argparse {       sub argparse {
         my ($a) = @_;         my ($a) = @_;
Line 67: Line 71:
       }       }
  
-      .............+Exemplo: 
       perl ex1.pl rad:ter cat:v,t:pp       perl ex1.pl rad:ter cat:v,t:pp
 +
 +Resultado
 +
       $VAR1 = [       $VAR1 = [
                 {                 {
spln2016/diario5.txt · Last modified: 2016/03/19 15:30 by ambs