|
Server : Apache System : Linux vps.urbanovitalino.adv.br 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 User : urbanovitalinoad ( 1001) PHP Version : 7.3.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/urbanovitalinoad/public_html/next/libraries/vendor/wamania/php-stemmer/src/ |
Upload File : |
<?php
namespace Wamania\Snowball;
use voku\helper\UTF8;
use Wamania\Snowball\Stemmer\Catalan;
use Wamania\Snowball\Stemmer\Danish;
use Wamania\Snowball\Stemmer\Dutch;
use Wamania\Snowball\Stemmer\English;
use Wamania\Snowball\Stemmer\Finnish;
use Wamania\Snowball\Stemmer\French;
use Wamania\Snowball\Stemmer\German;
use Wamania\Snowball\Stemmer\Italian;
use Wamania\Snowball\Stemmer\Norwegian;
use Wamania\Snowball\Stemmer\Portuguese;
use Wamania\Snowball\Stemmer\Romanian;
use Wamania\Snowball\Stemmer\Russian;
use Wamania\Snowball\Stemmer\Spanish;
use Wamania\Snowball\Stemmer\Stemmer;
use Wamania\Snowball\Stemmer\Swedish;
class StemmerFactory
{
const LANGS = [
Catalan::class => ['ca', 'cat', 'catalan'],
Danish::class => ['da', 'dan', 'danish'],
Dutch::class => ['nl', 'dut', 'nld', 'dutch'],
English::class => ['en', 'eng', 'english'],
Finnish::class => ['fi', 'fin', 'finnish'],
French::class => ['fr', 'fre', 'fra', 'french'],
German::class => ['de', 'deu', 'ger', 'german'],
Italian::class => ['it', 'ita', 'italian'],
Norwegian::class => ['no', 'nor', 'norwegian'],
Portuguese::class => ['pt', 'por', 'portuguese'],
Romanian::class => ['ro', 'rum', 'ron', 'romanian'],
Russian::class => ['ru', 'rus', 'russian'],
Spanish::class => ['es', 'spa', 'spanish'],
Swedish::class => ['sv', 'swe', 'swedish']
];
/**
* @throws NotFoundException
*/
public static function create(string $code): Stemmer
{
$code = UTF8::strtolower($code);
foreach (self::LANGS as $classname => $isoCodes) {
if (in_array($code, $isoCodes)) {
return new $classname;
}
}
throw new NotFoundException(sprintf('Stemmer not found for %s', $code));
}
}