mirror of
https://github.com/retailcrm/NameCaseLib.git
synced 2024-12-05 03:16:06 +03:00
[0.4.1] /RU11072715/ распознавание имени, фамилии
This commit is contained in:
parent
67d0c29a6d
commit
5a9da04c24
@ -27,7 +27,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
* Версия языкового файла
|
||||
* @var string
|
||||
*/
|
||||
protected $languageBuild = '11072021';
|
||||
protected $languageBuild = '11072715';
|
||||
/**
|
||||
* Количество падежей в языке
|
||||
* @var int
|
||||
@ -53,6 +53,46 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
* @var array
|
||||
*/
|
||||
private $ih = array('их', 'ых', 'ко');
|
||||
/**
|
||||
* Список окончаний характерных для фамилий
|
||||
* По шаблону {letter}* где * любой символ кроме тех, что в {exclude}
|
||||
* @var array of {letter}=>{exclude}
|
||||
*/
|
||||
private $splitSecondExclude = array(
|
||||
'а' => 'взйкмнпрстфя',
|
||||
'б' => 'а',
|
||||
'в' => 'аь',
|
||||
'г' => 'а',
|
||||
'д' => 'ар',
|
||||
'е' => 'бвгдйлмнря',
|
||||
'ё' => 'бвгдйлмнря',
|
||||
'ж' => '',
|
||||
'з' => 'а',
|
||||
'и' => 'гдйклмнопрсфя',
|
||||
'й' => 'ля',
|
||||
'к' => 'аст',
|
||||
'л' => 'аилоья',
|
||||
'м' => 'аип',
|
||||
'н' => 'ат',
|
||||
'о' => 'вдлнпртя',
|
||||
'п' => 'п',
|
||||
'р' => 'адикпть',
|
||||
'с' => 'атуя',
|
||||
'т' => 'аор',
|
||||
'у' => 'дмр',
|
||||
'ф' => 'аь',
|
||||
'х' => 'а',
|
||||
'ц' => 'а',
|
||||
'ч' => '',
|
||||
'ш' => 'а',
|
||||
'щ' => '',
|
||||
'ъ' => '',
|
||||
'ы' => 'дн',
|
||||
'ь' => 'я',
|
||||
'э' => '',
|
||||
'ю' => '',
|
||||
'я' => 'нс'
|
||||
);
|
||||
|
||||
/**
|
||||
* Мужские имена, оканчивающиеся на любой ь и -й,
|
||||
@ -240,7 +280,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
$this->Rule(604);
|
||||
return true;
|
||||
}
|
||||
elseif ($this->in($this->Last(1), 'цсрш'))
|
||||
elseif ($this->in($this->Last(1), 'цсршм'))
|
||||
{
|
||||
$this->wordForms($this->workingWord, array('а', 'у', 'а', 'ом', 'е'));
|
||||
$this->Rule(602);
|
||||
@ -643,6 +683,17 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
$second += 0.3;
|
||||
}
|
||||
|
||||
/**
|
||||
* Используем массив характерных окончаний
|
||||
*/
|
||||
if(isset($this->splitSecondExclude[$this->Last(2, 1)]))
|
||||
{
|
||||
if(!$this->in($this->Last(1), $this->splitSecondExclude[$this->Last(2, 1)]))
|
||||
{
|
||||
$second += 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Не бывает имет с такими предпоследними буквами
|
||||
*/
|
||||
@ -692,8 +743,10 @@ class NCLNameCaseRu extends NCLNameCaseCore
|
||||
}
|
||||
}
|
||||
|
||||
//Похоже на имя
|
||||
if ($this->in($this->Last(3), array('тин', 'тын')))
|
||||
/**
|
||||
* Слова, которые заканчиваются на тин
|
||||
*/
|
||||
if($this->Last(3) == 'тин' and $this->Last(4, 1) == 'нст')
|
||||
{
|
||||
$first += 0.5;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user