Самонаполняющиеся cms

pamyatka_zakazchiku.jpg

Не бывает халявных решений. Скачал настроил и деньги руби. Либо бабки плати, либо серое вещество наращивай...
 
Кстати немного в тему автору..никто не сталкивался с задачей по подключению сервиса или внешней программы (все равно на какой ос) по исправлению семантических и морфологических ошибок в русском языке. Чтобы перед тем как спарсил контент, прогнал через синонимайзер или еще что то, необходимо проверить на ошибки.

Я качественных решений не находил, так хотелось бы своё запилить, но на базе готового велосипеда.
 
Кстати немного в тему автору..никто не сталкивался с задачей по подключению сервиса или внешней программы (все равно на какой ос) по исправлению семантических и морфологических ошибок в русском языке. Чтобы перед тем как спарсил контент, прогнал через синонимайзер или еще что то, необходимо проверить на ошибки.

Я качественных решений не находил, так хотелось бы своё запилить, но на базе готового велосипеда.
Запятые, пробелы, чистка мусора, иероглифы еще что-то, делал регулярками, даже код сохранился. Код двухлетней давности, поэтому возможно не все работает как надо.

Код:
function clean_text($output){
$output = preg_replace("~[^-0-9a-zа-яё«»\&\;\/\<\>\.,\s\(\)\*:!\?]~iu", "", $output);
$output = preg_replace('~[0-9]{10,}~u', "", $output); // вырезаем длинные числа
$output = preg_replace('~[А-Яа-яё]{60,}~u', "", $output); // вырезаем длинные слова (30 кириллических символов подряд)
$output = preg_replace('~[a-zA-Z]{30,}~u', "", $output); // вырезаем длинные слова (30 лат. символов подряд)
$output = preg_replace("~([0-9]{1,2})[\s]+([a-zа-яё]{3,7})[\s]+([0-9]{4})(\.[\s])?([\s]+[&ndash;|\-]+[\s]*)?(([0-9]{1,2})[\s]*([a-zа-яё]{1,5})\.[\s]*([a-zа-яё]{5})?)?~iu", "", $output); // вырезаем даты   
$output = preg_replace('#\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))#iS', '', $output);
$output = preg_replace('(\d{1,2}\/\d{1,2}\/\d{4})', '', $output);
$output = preg_replace('/(http:\/\/)(\S+)/i', '', $output);
$output = preg_replace('/(https:\/\/)(\S+)/i', '', $output);
$output = str_ireplace('...', '.', $output);
$output = str_ireplace(' .', '.', $output);
$output = str_ireplace('..', '.', $output);
$output = str_ireplace(',.', '.', $output);
$output = str_ireplace(':.', '.', $output);
$output = preg_replace("~[0-9]{1,4}[\.:/][0-9]{1,4}[\.:/][0-9]{1,4}([\.:/][0-9]{1,4})?~u", "", $output); // вырезаем даты (и IP)
$output = preg_replace('~([0-9]{1,2}[\:/][0-9]{1,2})?~u','',$output);// вырезаем данные вида 04:00
$output = str_replace(array('т.е.','т.к.','т.д.','т.п.','и др.','и пр.'),array('то есть','так как','так далее','тому подобное','и другие','и прочие'),$output);//замена частых сокращений
$output = preg_replace("~\s([\.,\):!\?])~iu", "$1", $output); // "текст :" -> "текст:"
$output = preg_replace("~^(.*?[-:,\s]?[^\.!\?])[\s]? \*~iu", "$1. *", $output); // точка в конце предложения титла
$output = preg_replace("~^(.*?)[\(]+([^\)]+?)\. \*~iu", "$1($2). *", $output); // закрываем открытую скобку в титле
$output = preg_replace("~\* (.*?[-:,\s]?[^\.!\?][\s]?)$~iu", "* $1.", $output); // точка в конце предложения
$output = preg_replace("~\* (.*?)[\(]+([^\)]+?)\.$~iu", "* $1($2).", $output); // закрываем открытую скобку
$output = preg_replace("~([\.!\?])([A-ZА-Яa-zа-яё]){1}~u", "$1 $2", $output); // пробел после точки
$output = preg_replace("~[-:,!\?]?([\.!?])+[-:,!\?]?~iu", "$1", $output); // ?.!
$output = preg_replace("~[\s]?[-:][\s](.*?)([\s]?[-:]{1}[\s])~iu", " $1$2", $output); // " - текст - " -> "текст - "
$output = str_replace(',',', ',$output);
$output = str_replace('  ',' ',$output);
$output = str_replace(');',' ',$output);
$output = str_replace('.','. ',$output);
$output = str_replace('  ',' ',$output);

$output = preg_replace("/&#?[a-z0-9]{2,8};/i","",$output);
$output = str_replace(array("\r", "\n"), '', $output);
$testout = iconv_strlen($output, 'UTF-8');
if ($testout >= 400){} else {$output='';}
//дочищиваем мусор
$nezpyat=substr_count($output,',');
if ($nezpyat=='0' || $nezpyat=='') {} else {
    if ($testout/$nezpyat>=30){} else {$output='';}
}
unset($testout);
unset($nezpyat);
//мусор и ошибки в статьях , , ,
$pos3 = stripos($output, ', , ,');
if ($pos3 !== false) {
    $output='';
}else {}
//конец чистки
return $output;
}

А ошибки была идея проверять с помощью Яндекс спеллера, но я так и не стал делать. Для дорвеев вполне хватало функции выше.
 
Кстати немного в тему автору..никто не сталкивался с задачей по подключению сервиса или внешней программы (все равно на какой ос) по исправлению семантических и морфологических ошибок в русском языке. Чтобы перед тем как спарсил контент, прогнал через синонимайзер или еще что то, необходимо проверить на ошибки.

Я качественных решений не находил, так хотелось бы своё запилить, но на базе готового велосипеда.
Content Downloader кажется это умеет.
 
Content Downloader кажется это умеет.
Content Downloader это инструмент, не более.
Скрипт выше не плох, но искал что то на подобие того, что умеет программа "Орфо", в принципе было бы интересным зенкой запилить скрипт для работы с тем же Яндекс спеллером, спасибо за идею.
 
Назад
Сверху