PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Rilevamento della lingua con i dati in PostgreSQL

Puoi usare PL/Perl (CREATE FUNCTION langof(text) LANGUAGE plperlu AS ... ) con Lingua::Identify Modulo CPAN.

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

E la funzione:

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

Funziona per me:

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

Time: 1.801 ms

PL/Perl su Windows

La libreria del linguaggio PL/Perl (plperl.dll) è preinstallata nell'ultimo programma di installazione di Windows di Postgres.

Ma per usare PL/Perl, hai bisogno dell'interprete Perl stesso. In particolare, Perl 5.14 (al momento della stesura di questo documento). Il programma di installazione più comune è ActiveState, ma non è gratuito. Uno gratuito viene da StrawberryPerl . Assicurati di avere PERL514.DLL a posto.

Dopo aver installato Perl, accedi al tuo database postgres e prova a eseguire

CREATE LANGUAGE plperlu;

Libreria di identificazione della lingua

Se la qualità è il tuo problema, hai alcune opzioni:puoi migliorare Lingua::Identificati (è open source) o potresti provare un'altra libreria. Ho trovato questo , che è commerciale ma sembra promettente.