PL /Perl
を使用できます ( CREATE FUNCTION
langof(text) LANGUAGE
plperlu
AS ...
)with Lingua ::Identification
CPANモジュール。
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$;
私のために働く:
[email protected]=# 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ですが、無料ではありません。無料のものはPERL514.DLL
があることを確認してください 所定の位置にあります。
Perlをインストールした後、postgresデータベースにログインして実行してみてください
CREATE LANGUAGE plperlu;
言語識別ライブラリ
品質が懸念される場合は、いくつかのオプションがあります。Lingua::Identifyを改善するか(オープンソースです)、別のライブラリを試すことができます。 これ を見つけました 、これは商用ですが、有望に見えます。