U kunt PL/Perl
gebruiken (CREATE FUNCTION
langof(text) LANGUAGE
plperlu
AS ...
) met Lingua::Identify
CPAN-module.
Perl-script:
#!/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";
En de functie:
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$;
Werkt voor mij:
[email protected]=# select langof('Pójdź, kiń-że tę chmurność w głąb flaszy');
langof
--------
pl
(1 row)
Time: 1.801 ms
PL/Perl op Windows
PL/Perl-taalbibliotheek (plperl.dll) wordt vooraf geïnstalleerd in het nieuwste Windows-installatieprogramma van postgres.
Maar om PL/Perl te gebruiken, heb je de Perl-interpreter zelf nodig. In het bijzonder Perl 5.14 (op het moment van schrijven). Het meest voorkomende installatieprogramma is ActiveState, maar het is niet gratis. Gratis komt van StrawberryPerl
. Zorg ervoor dat u PERL514.DLL
. heeft op zijn plaats.
Nadat u Perl hebt geïnstalleerd, logt u in op uw postgres-database en probeert u
CREATE LANGUAGE plperlu;
Taalidentificatiebibliotheek
Als kwaliteit uw zorg is, heeft u enkele opties:U kunt Lingua::Identify uzelf verbeteren (het is open source) of u kunt een andere bibliotheek proberen. Ik vond deze , wat commercieel is maar er veelbelovend uitziet.