User Tools

Site Tools


spln2016:diario5

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
spln2016:diario5 [2016/03/19 15:23] ambsspln2016:diario5 [2016/03/19 15:25] ambs
Line 22: Line 22:
 === Exercício: nlgrep === === 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 34: 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 61: Line 64:
         }         }
       }       }
 +      
       sub argparse {       sub argparse {
         my ($a) = @_;         my ($a) = @_;
Line 68: 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