Морфологическая схожесть слов (php)
Code (php)
-
-
<?php
-
-
//——————————————————————————
-
-
function dmword($string, $is_cyrillic = true)
-
{
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
$output = ”;
-
$i = 0;
-
-
$previous = -1;
-
-
while ($i < $length)
-
{
-
$current = $last = &$codes[$string[$i]];
-
-
for ($j = $k = 1; $k < 7; $k++)
-
{
-
break;
-
-
$current = &$current[$string[$i + $k]];
-
-
{
-
$last = &$current;
-
$j = $k + 1;
-
}
-
}
-
-
if ($i == 0)
-
$code = $last[0][0];
-
else
-
-
if (($code != -1) && ($code != $previous))
-
$output .= $code;
-
-
$previous = $code;
-
-
$i += $j;
-
-
}
-
-
}
-
-
//——————————————————————————
-
-
function dmstring($string)
-
{
-
$is_cyrillic = false;
-
{
-
$string = translit($string);
-
$is_cyrillic = true;
-
}
-
-
$string = preg_replace(array(‘/[^\w\s]|\d/iu’, ‘/\b[^\s]{1,3}\b/iu’, ‘/\s{2,}/iu’, ‘/^\s+|\s+$/iu’),
-
-
return null;
-
-
foreach($matches as $key => $match)
-
$matches[$key] = dmword($match, $is_cyrillic);
-
return $matches;
-
}
-
-
//——————————————————————————
-
-
function translit($string)
-
{
-
‘Р’, ‘р’, ‘С’, ‘с’, ‘Т’, ‘т’, ‘У’, ‘у’, ‘Ф’, ‘ф’, ‘Х’, ‘х’, ‘Ј’, ‘И’, ‘Ц’, ‘ц’, ‘Ч’, ‘ч’,
-
‘Ш’, ‘ш’, ‘Щ’, ‘щ’, ‘Ъ’, ‘ъ’, ‘Ы’, ‘ы’, ‘Ь’, ‘ь’, ‘Э’, ‘э’, ‘Ю’, ‘ю’, ‘Я’, ‘я’, ‘а’, ‘№’,
-
‘б’, ‘ё’, ‘в’, ‘ђ’, ‘г’, ‘ѓ’, ‘д’, ‘є’, ‘е’, ‘ѕ’, ‘ж’, ‘і’, ‘з’, ‘ї’, ‘и’, ‘ј’, ‘й’, ‘љ’,
-
‘к’, ‘њ’, ‘л’, ‘ћ’, ‘м’, ‘ќ’, ‘н’, ‘§’, ‘о’, ‘ў’, ‘п’, ‘џ’
-
);
-
-
‘A’, ‘a’, ‘B’, ‘b’, ‘V’, ‘v’, ‘G’, ‘g’, ‘D’, ‘d’, ‘E’, ‘e’, ‘E’, ‘e’, ‘Zh’, ‘zh’, ‘Z’, ‘z’,
-
‘I’, ‘i’, ‘J’, ‘j’, ‘K’, ‘k’, ‘L’, ‘l’, ‘M’, ‘m’, ‘N’, ‘n’, ‘O’, ‘o’, ‘P’, ‘p’, ‘R’, ‘r’,
-
‘S’, ’s’, ‘T’, ‘t’, ‘U’, ‘u’, ‘F’, ‘f’, ‘H’, ‘h’, ‘C’, ‘c’, ‘Ch’, ‘ch’, ‘Sh’, ’sh’, ‘Sch’, ’sch’,
-
‘\’‘, ‘\’‘, ‘Y’, ‘y’, ‘\’‘, ‘\’‘, ‘E’, ‘e’, ‘Ju’, ‘ju’, ‘Ja’, ‘ja’
-
);
-
-
return $string;
-
}
-
-
//——————————————————————————
-
-
echo ‘
-
‘;
?>
