sql >> Databáze >  >> RDS >> PostgreSQL

Detekce jazyka s daty v PostgreSQL

Můžete použít PL/Perl (CREATE FUNCTION langof(text) LANGUAGE plperlu AS ... ) s Lingua::Identify modul CPAN.

Perl skript:

#!/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";

A funkce:

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

Funguje pro mě:

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

Time: 1.801 ms

PL/Perl v systému Windows

Jazyková knihovna PL/Perl (plperl.dll) je předinstalována v nejnovějším instalačním programu postgres pro Windows.

Ale abyste mohli používat PL/Perl, potřebujete samotný interpret Perlu. Konkrétně Perl 5.14 (v době psaní tohoto článku). Nejběžnějším instalačním programem je ActiveState, ale není zdarma. Jeden zdarma pochází z StrawberryPerl . Ujistěte se, že máte PERL514.DLL na místě.

Po instalaci Perlu se přihlaste do své postgres databáze a zkuste spustit

CREATE LANGUAGE plperlu;

Knihovna identifikace jazyka

Pokud vám jde o kvalitu, máte několik možností:Můžete vylepšit Lingua::Identify sami (je to open source) nebo můžete zkusit jinou knihovnu. Našel jsem toto , který je komerční, ale vypadá slibně.



  1. Nemáte zámek databáze! v androidu

  2. Kdy názvy sloupců nebo tabulek Postgres potřebují uvozovky a kdy ne?

  3. php – Povolení uživatelům přidávat oblíbené příspěvky

  4. Jak zašifruji hesla pomocí PostgreSQL?