[0.4.1] /RU11072716/ распознавание имени, фамилии

This commit is contained in:
Andriy Chaika 2011-07-27 15:53:00 +03:00
parent 3a2d34feae
commit dd3b304fa6
2 changed files with 20 additions and 7 deletions

View File

@ -28,18 +28,17 @@ require_once NCL_DIR . '/NCLNameCaseWord.php';
*/ */
class NCLNameCaseCore extends NCL class NCLNameCaseCore extends NCL
{ {
/** /**
* Версия библиотеки * Версия библиотеки
* @var string * @var string
*/ */
protected $version = '0.4.1'; protected $version = '0.4.1';
/** /**
* Версия языкового файла * Версия языкового файла
* @var string * @var string
*/ */
protected $languageBuild = '0'; protected $languageBuild = '0';
/** /**
* Готовность системы: * Готовность системы:
* - Все слова идентифицированы (известо к какой части ФИО относится слово) * - Все слова идентифицированы (известо к какой части ФИО относится слово)
@ -144,6 +143,14 @@ class NCLNameCaseCore extends NCL
$this->workindLastCache = array(); $this->workindLastCache = array();
} }
/**
* Если не нужно склонять слово, делает результат таким же как и именительный падеж
*/
protected function makeResultTheSame()
{
$this->lastResult = array_fill(0, $this->CaseCount, $this->workingWord);
}
/** /**
* Если <var>$stopAfter</var> = 0, тогда вырезает $length последних букв с текущего слова (<var>$this->workingWord</var>) * Если <var>$stopAfter</var> = 0, тогда вырезает $length последних букв с текущего слова (<var>$this->workingWord</var>)
* Если нет, тогда вырезает <var>$stopAfter</var> букв начиная от <var>$length</var> с конца * Если нет, тогда вырезает <var>$stopAfter</var> букв начиная от <var>$length</var> с конца
@ -989,7 +996,7 @@ class NCLNameCaseCore extends NCL
{ {
$this->setGender($gender); $this->setGender($gender);
} }
return $this->getFormatted($caseNum, $format); return $this->getFormatted($caseNum, $format);
} }
@ -1106,7 +1113,7 @@ class NCLNameCaseCore extends NCL
{ {
} }
/** /**
* Возвращает версию библиотеки * Возвращает версию библиотеки
* @return string версия библиотеки * @return string версия библиотеки
@ -1115,7 +1122,7 @@ class NCLNameCaseCore extends NCL
{ {
return $this->version; return $this->version;
} }
/** /**
* Возвращает версию использованого языкового файла * Возвращает версию использованого языкового файла
* @return string версия языкового файла * @return string версия языкового файла

View File

@ -220,12 +220,18 @@ class NCLNameCaseRu extends NCLNameCaseCore
$this->Rule(403); $this->Rule(403);
return true; return true;
} }
else elseif(!$this->in($this->Last(2, 1), $this->vowels))
{ {
$this->wordForms($this->workingWord, array('ого', 'ому', 'ого', 'им', 'ом'), 2); $this->wordForms($this->workingWord, array('ого', 'ому', 'ого', 'им', 'ом'), 2);
$this->Rule(404); $this->Rule(404);
return true; return true;
} }
else
{
$this->makeResultTheSame();
$this->Rule(405);
return true;
}
} }
return false; return false;
} }
@ -341,7 +347,7 @@ class NCLNameCaseRu extends NCLNameCaseCore
if ($this->in($this->Last(3), $this->ovo) or $this->in($this->Last(2), $this->ih)) if ($this->in($this->Last(3), $this->ovo) or $this->in($this->Last(2), $this->ih))
{ {
$this->Rule(8); $this->Rule(8);
$this->lastResult = array_fill(0, $this->CaseCount, $this->workingWord); $this->makeResultTheSame();
return true; return true;
} }
return false; return false;