Puoi usare PL/Perl
(CREATE FUNCTION
langof(text) LANGUAGE
plperlu
AS ...
) con Lingua::Identify
Modulo CPAN.
Script Perl:
#!/usr/bin/perl
use Lingua::Identify qw(langof);
undef $/;
my $textstring = <>; ## warning - slurps whole file to memory
my $a = langof( $textstring ); # gives the most probable language
print "$a\n";
E la funzione:
create or replace function langof( text ) returns varchar(2)
immutable returns null on null input
language plperlu as $perlcode$
use Lingua::Identify qw(langof);
return langof( shift );
$perlcode$;
Funziona per me:
[email protected]=# select langof('Pójdź, kiń-że tę chmurność w głąb flaszy');
langof
--------
pl
(1 row)
Time: 1.801 ms
PL/Perl su Windows
La libreria del linguaggio PL/Perl (plperl.dll) è preinstallata nell'ultimo programma di installazione di Windows di Postgres.
Ma per usare PL/Perl, hai bisogno dell'interprete Perl stesso. In particolare, Perl 5.14 (al momento della stesura di questo documento). Il programma di installazione più comune è ActiveState, ma non è gratuito. Uno gratuito viene da StrawberryPerl
. Assicurati di avere PERL514.DLL
a posto.
Dopo aver installato Perl, accedi al tuo database postgres e prova a eseguire
CREATE LANGUAGE plperlu;
Libreria di identificazione della lingua
Se la qualità è il tuo problema, hai alcune opzioni:puoi migliorare Lingua::Identificati (è open source) o potresti provare un'altra libreria. Ho trovato questo , che è commerciale ma sembra promettente.