PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Spracherkennung mit Daten in PostgreSQL

Sie können PL/Perl verwenden (CREATE FUNCTION langof(text) LANGUAGE plperlu AS ... ) mit Lingua::Identify CPAN-Modul.

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

Und die Funktion:

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

Funktioniert bei mir:

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

Time: 1.801 ms

PL/Perl unter Windows

Die PL/Perl-Sprachbibliothek (plperl.dll) ist im neuesten Windows-Installationsprogramm von Postgres vorinstalliert.

Aber um PL/Perl zu verwenden, benötigen Sie den Perl-Interpreter selbst. Insbesondere Perl 5.14 (zum Zeitpunkt des Schreibens dieses Artikels). Das gebräuchlichste Installationsprogramm ist ActiveState, aber es ist nicht kostenlos. Der kostenlose kommt von StrawberryPerl . Stellen Sie sicher, dass Sie PERL514.DLL haben vorhanden.

Melden Sie sich nach der Installation von Perl bei Ihrer Postgres-Datenbank an und versuchen Sie es auszuführen

CREATE LANGUAGE plperlu;

Spracherkennungsbibliothek

Wenn Qualität Ihr Anliegen ist, haben Sie einige Optionen:Sie können Lingua::Identify selbst verbessern (es ist Open Source) oder Sie könnten eine andere Bibliothek ausprobieren. Ich habe diesen gefunden , das kommerziell ist, aber vielversprechend aussieht.