PL/Perl ( ) をLingua::Identify CPAN モジュールで使用できます。CREATE FUNCTION
langof(text) LANGUAGE
plperlu
AS ...
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";
そして機能:
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$;
私のために働く:
filip@filip=# select langof('Pójdź, kiń-że tę chmurność w głąb flaszy');
langof
--------
pl
(1 row)
Time: 1.801 ms
Windows 上の PL/Perl
PL/Perl 言語ライブラリ (plperl.dll) は、postgres の最新の Windows インストーラーにプリインストールされています。
ただし、PL/Perl を使用するには、Perl インタープリター自体が必要です。具体的には、Perl 5.14 (この記事の執筆時点)。最も一般的なインストーラーは ActiveState ですが、無料ではありません。無料のものはStrawberryPerlから来ています。整っていることを確認してくださいPERL514.DLL
。
Perl をインストールしたら、postgres データベースにログインして実行してみます。
CREATE LANGUAGE plperlu;
言語識別ライブラリ
品質が気になる場合は、いくつかのオプションがあります: Lingua::Identify yourself (オープンソース) を改善するか、別のライブラリを試すことができます。これは商用ですが、有望に見えます。