Bạn có thể sử dụng PL / Perl
( CREATE FUNCTION
langof(text) LANGUAGE
plperlu
AS ...
) với Lingua ::Nhận dạng
Mô-đun CPAN.
Tập lệnh 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";
Và chức năng:
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$;
Làm việc cho tôi:
[email protected]=# select langof('Pójdź, kiń-że tę chmurność w głąb flaszy');
langof
--------
pl
(1 row)
Time: 1.801 ms
PL / Perl trên Windows
Ngôn ngữ PL / Perl libary (plperl.dll) được cài đặt sẵn trong trình cài đặt Windows mới nhất của postgres.
Nhưng để sử dụng PL / Perl, bạn cần chính trình thông dịch Perl. Cụ thể, Perl 5,14 (tại thời điểm viết bài này). Trình cài đặt phổ biến nhất là ActiveState, nhưng nó không miễn phí. Một phần mềm miễn phí đến từ StrawberryPerl
. Đảm bảo rằng bạn có PERL514.DLL
tại chỗ.
Sau khi cài đặt Perl, hãy đăng nhập vào cơ sở dữ liệu postgres của bạn và cố gắng chạy
CREATE LANGUAGE plperlu;
Thư viện nhận dạng ngôn ngữ
Nếu chất lượng là mối quan tâm của bạn, bạn có một số lựa chọn:Bạn có thể cải thiện Lingua ::Tự xác định (nó là mã nguồn mở) hoặc bạn có thể thử một thư viện khác. Tôi đã tìm thấy cái này , mang tính thương mại nhưng có vẻ hứa hẹn.