Możesz użyć PL/Perl
(CREATE FUNCTION
langof(text) LANGUAGE
plperlu
AS ...
) z Lingua::Identify
Moduł CPAN.
Skrypt Perla:
#!/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";
Oraz funkcja:
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$;
Działa dla mnie:
[email protected]=# select langof('Pójdź, kiń-że tę chmurność w głąb flaszy');
langof
--------
pl
(1 row)
Time: 1.801 ms
PL/Perl w systemie Windows
Biblioteka języka PL/Perl (plperl.dll) jest preinstalowana w najnowszym instalatorze postgres dla systemu Windows.
Ale aby używać PL/Perla, potrzebujesz samego interpretera Perla. W szczególności Perl 5.14 (w momencie pisania tego tekstu). Najpopularniejszym instalatorem jest ActiveState, ale nie jest darmowy. Bezpłatny pochodzi z StrawberryPerl
. Upewnij się, że masz PERL514.DLL
na miejscu.
Po zainstalowaniu Perla zaloguj się do bazy danych postgres i spróbuj uruchomić
CREATE LANGUAGE plperlu;
Biblioteka identyfikacji języka
Jeśli zależy Ci na jakości, masz kilka opcji:Możesz ulepszyć Lingua::Zidentyfikuj się (jest to open source) lub możesz wypróbować inną bibliotekę. Znalazłem ten , który jest komercyjny, ale wygląda obiecująco.