#!/usr/bin/perl use strict; use utf8; use blib; use Data::Dumper; use Lingua::PT::PLNbase; use XML::TMX::Metrics; XML::TMX::Metrics::init('en','pt', {cat=>{trans => {gato=>1}}, is =>{trans => {"está" =>1 }}, the =>{trans => {o => .25, a=> .26, os=> .25, as => .25 }}}, {gato=>{trans => {cat=>1}}, "está" =>{trans => {is =>1 }}, a =>{trans => {the => .75, to => .25 }}, o =>{trans => {the => .75, }}, }); print Dumper ending_m("The cat is sleeping cat.","O gato está dormir gato ."); print Dumper ending_m("The cat is sleeping cat.","O gato está dormir gato ?"); print Dumper ending_m("The cat is sleeping cat","O gato está dormir gato "); print Dumper ending_m("The cat is sleeping","O gato está dormir"); print Dumper ending_m("The cat is sleeping cat.","O gato está dormir gato "); sub ending_m{ my($f1,$f2)=@_; $f1 = [tokenize $f1] unless ref $f1; $f2 = [tokenize $f2] unless ref $f2; if ($f1->[-1] eq $f2->[-1]) {return {e=>1, }; } elsif($f1->[-1] =~ /[.?!]/ or $f2->[-1] =~ /[.?!]/) {return {e=>0, }; } else {return {e=> ptd_m([$f1->[-2],$f1->[-1]], [$f2->[-2],$f2->[-1]] ), };} ## else {return {e=>0.5, };} } __END__ sub ending_f{ my($f1,$f2)=@_; return [$f1,$f1]; } ## 1:2 2:2 ## abreviatura ## era umavex. e tb acho que; ## era umavex. e tb