PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Deteksi bahasa dengan data di PostgreSQL

Anda dapat menggunakan PL/Perl (CREATE FUNCTION langof(text) LANGUAGE plperlu AS ... ) dengan Lingua::Identify Modul CPAN.

Skrip 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";

Dan fungsinya:

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$;

Bekerja untuk saya:

[email protected]=# select langof('Pójdź, kiń-że tę chmurność w głąb flaszy');
 langof
--------
 pl
(1 row)

Time: 1.801 ms

PL/Perl di Windows

Pustaka bahasa PL/Perl (plperl.dll) sudah diinstal sebelumnya di penginstal Windows terbaru dari postgres.

Tetapi untuk menggunakan PL/Perl, Anda memerlukan juru bahasa Perl itu sendiri. Secara khusus, Perl 5.14 (pada saat penulisan ini). Pemasang yang paling umum adalah ActiveState, tetapi tidak gratis. Yang gratis berasal dari StrawberryPerl . Pastikan Anda memiliki PERL514.DLL di tempat.

Setelah menginstal Perl, login ke database postgres Anda dan coba jalankan

CREATE LANGUAGE plperlu;

Perpustakaan identifikasi bahasa

Jika kualitas menjadi perhatian Anda, Anda memiliki beberapa opsi:Anda dapat meningkatkan Lingua::Identifikasi diri Anda (ini open source) atau Anda dapat mencoba perpustakaan lain. Saya menemukan yang ini , yang komersial tapi terlihat menjanjikan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses Kesalahan Server OpenERP ditolak

  2. Apa definisi indeks sekunder di postgresql?

  3. Bagaimana POSITION() Bekerja di PostgreSQL

  4. jsonb LIKE query pada objek bersarang dalam array

  5. Tanggal dalam format mmm yyyy di postgresql