PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Откриване на език с данни в PostgreSQL

Можете да използвате PL/Perl (CREATE FUNCTION langof(text) LANGUAGE plperlu AS ... ) с Lingua::Identify CPAN модул.

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

И функцията:

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

Работи за мен:

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

Time: 1.801 ms

PL/Perl под Windows

Езиковата библиотека PL/Perl (plperl.dll) се доставя предварително инсталирана в най-новата инсталационна програма на Windows на postgres.

Но за да използвате PL/Perl, имате нужда от самия интерпретатор на Perl. По-конкретно, Perl 5.14 (по време на това писане). Най-често срещаният инсталатор е ActiveState, но не е безплатен. Безплатен идва от StrawberryPerl . Уверете се, че имате PERL514.DLL на място.

След като инсталирате Perl, влезте във вашата база данни на postgres и опитайте да стартирате

CREATE LANGUAGE plperlu;

Библиотека за идентификация на език

Ако качеството ви притеснява, имате някои опции:Можете да подобрите Lingua::Identify сами (това е с отворен код) или можете да опитате друга библиотека. Намерих това , което е комерсиално, но изглежда обещаващо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC драйверът на PostgreSQL не работи за Heroku DB Connection

  2. INITCAP() – Преобразуване в начални главни букви в PostgreSQL

  3. Получаване на списък с таблици, от които зависи даден изглед/таблица в PostgreSQL

  4. Вземете минималната ненулева стойност в множество колони

  5. Проверете дали таблицата на sqlachemy е празна