prog90
Новичок
Вот исходная строка
Ключевые слова (в профессиональных кругах копирайтеров – ключевики, ключи) используются для оптимизации контента сайта под определённые поисковые запросы.
Вот результат работы phpmorphy (текст программы ниже):
Вот текст программы (взята отсюда http://htmlweb.ru/php/example/sklonjator.php):
Вот список файлов в папке dicts (словари) (в phpmorphy):
Содержимое папки C:\WebServers\phpmorphy\dicts
11.08.2012 11:27 <DIR> .
11.08.2012 11:27 <DIR> ..
21.11.2009 18:20 9 881 226 common_aut.ru_ru.bin
21.11.2009 18:20 86 409 gramtab.ru_ru.bin
21.11.2009 18:20 114 875 gramtab_txt.ru_ru.bin
21.11.2009 18:20 1 551 300 morph_data.ru_ru.bin
21.11.2009 18:20 751 820 morph_data_ancodes_cache.ru_ru.bin
21.11.2009 18:20 12 155 morph_data_ancodes_map.ru_ru.bin
21.11.2009 18:20 731 morph_data_header_cache.ru_ru.bin
21.11.2009 18:20 26 options.ru_ru.ini
21.11.2009 18:20 2 176 151 predict_aut.ru_ru.bin
04.04.2007 01:30 73 __put_dicts_here__
10 файлов 14 574 766 байт
2 папок 84 283 244 544 байт свободно
Ключевые слова (в профессиональных кругах копирайтеров – ключевики, ключи) используются для оптимизации контента сайта под определённые поисковые запросы.
Вот результат работы phpmorphy (текст программы ниже):
Результат phpmorphy:
getBaseForm:
Получить начальную форму (Получить нормализованные слова)
array(
'слова' => '',
'сайта' => '',
'профессиональных' => '',
'поисковые' => '',
'под' => '',
'оптимизации' => '',
'определ' => '',
'нные' => '',
'кругах' => '',
'копирайтеров' => '',
'контента' => '',
'ключи' => '',
'ключевики' => '',
'используются' => '',
'запросы' => '',
'для' => '',
'в' => '',
'Ключевые' => '',
)
getPseudoRoot:
получить корень слова
array(
'слова' => '',
'сайта' => '',
'профессиональных' => '',
'поисковые' => '',
'под' => '',
'оптимизации' => '',
'определ' => '',
'нные' => '',
'кругах' => '',
'копирайтеров' => '',
'контента' => '',
'ключи' => '',
'ключевики' => '',
'используются' => '',
'запросы' => '',
'для' => '',
'в' => '',
'Ключевые' => '',
)
getAllForms:
Получить все словоформы
array(
'слова' => '',
'сайта' => '',
'профессиональных' => '',
'поисковые' => '',
'под' => '',
'оптимизации' => '',
'определ' => '',
'нные' => '',
'кругах' => '',
'копирайтеров' => '',
'контента' => '',
'ключи' => '',
'ключевики' => '',
'используются' => '',
'запросы' => '',
'для' => '',
'в' => '',
'Ключевые' => '',
)
Вот текст программы (взята отсюда http://htmlweb.ru/php/example/sklonjator.php):
PHP:
<?php
$str = "Ключевые слова (в профессиональных кругах копирайтеров – ключевики, ключи) используются для оптимизации контента сайта под определённые поисковые запросы.";
$words = $str;
$path='C:/WebServers/';
$words=preg_split('/[^a-zA-Zа-яА-Я0-9]+/', $words, -1, PREG_SPLIT_NO_EMPTY);
echo "Результат phpmorphy:";
// подключаем библиотеку phpmorphy
$morphy=$path.'phpmorphy/';
require_once($morphy.'src/common.php');
$opts = array(
// PHPMORPHY_STORAGE_FILE - использовать файл
// PHPMORPHY_STORAGE_SHM - загружать словать в общую память(нужно расширение shmop)
// PHPMORPHY_STORAGE_MEM - загружать словать в общую память при каждой инициализации phpmorphy
'storage' => PHPMORPHY_STORAGE_FILE,
'predict_by_suffix' => true,
'predict_by_db' => true,
'graminfo_as_text' => true,
);
$morphy = new phpMorphy($morphy.'dicts', 'ru_RU', $opts);
foreach($words as $i=>$word)
$words[$i]=iconv('windows-1251', $morphy->getEncoding(), strtoupper($word)); // в utf-8
$awords=$morphy->getBaseForm($words);
echo "<br> <br>\ngetBaseForm:<br>Получить начальную форму (Получить нормализованные слова)<br>".arr2str($awords);
$awords=$morphy->getPseudoRoot($words);
echo "<br> <br>\ngetPseudoRoot:<br>получить корень слова<br>".arr2str($awords);
// Получить все словоформы
$awords = $morphy->getAllForms($words);
echo "<br> <br>\ngetAllForms:<br>Получить все словоформы<br>".arr2str($awords);
// функция вывода массива с преобразованием из utf-8 в windows-1251
function arr2str($arr,$level=0){
$str = "array(<br>\n";
foreach ($arr as $key => $val) {
if (is_array($val)) {
$str.=str_repeat(" ",$level)."'".iconv( 'utf-8', 'windows-1251',$key)."' => " .
arr2str($val,$level+1) . ",<br>\n";
}else {
$str.=str_repeat(" ",$level)."'".iconv( 'utf-8', 'windows-1251',$key)."' => '<b>" .
str_replace("'", "\'", iconv( 'utf-8', 'windows-1251',$val)) . "</b>',<br>\n";
}
}
return $str . str_repeat(" ",$level).")";
}
Содержимое папки C:\WebServers\phpmorphy\dicts
11.08.2012 11:27 <DIR> .
11.08.2012 11:27 <DIR> ..
21.11.2009 18:20 9 881 226 common_aut.ru_ru.bin
21.11.2009 18:20 86 409 gramtab.ru_ru.bin
21.11.2009 18:20 114 875 gramtab_txt.ru_ru.bin
21.11.2009 18:20 1 551 300 morph_data.ru_ru.bin
21.11.2009 18:20 751 820 morph_data_ancodes_cache.ru_ru.bin
21.11.2009 18:20 12 155 morph_data_ancodes_map.ru_ru.bin
21.11.2009 18:20 731 morph_data_header_cache.ru_ru.bin
21.11.2009 18:20 26 options.ru_ru.ini
21.11.2009 18:20 2 176 151 predict_aut.ru_ru.bin
04.04.2007 01:30 73 __put_dicts_here__
10 файлов 14 574 766 байт
2 папок 84 283 244 544 байт свободно