萧然 发表于 2012-5-4 16:31:14

使用discuz在线分词批量优化织梦DEDECMS文章关键词

使用discuz在线分词批量优化织梦 DedeCMS文章关键词:
DedeCMS网站自带的tag(keywords)提取功能,但分词总是不敷准确。当然,对付日更新十数篇且对seo准确执行的用户来说,手工输入能更好的节制。但对付主题对照宽泛、内容更新量年夜的用户来说,DedeCMS tag是不完美的。
  discuz在线分词是一个在线免费的提词接口。后有数十万中文论坛、supsite用户,对付语境、细胞词库的完善有更多的数据。这个模范是基于discuz在线分词批量更新已发内容的keywords(tag),如果数据量大于(或者于5万)的或者虚拟主机用户的话,最好情况搭建到本地。速度会快一点。
  使用措施,DedeCms安装目录,新建c.php,拷入以下内容,本身对应编码用notepad设置相应gbk或utf8。运行 yourwebsite/c.php?id=1

GetOne(” SELECT arc.title,tp.body FROM `@__archives` arc LEFT JOIN `@__addonarticle` tp ON arc.id=tp.aid where arc.id=’$a’ “);
if(is_array($row))
{
$title = $row['title'];
$body = $row['body'];
$keywords=zhgetkey($title.$body);
$dsql->ExecuteNoneQuery(” Update `@__archives` set keywords=’$keywords’ where id=’$a’ “);
echo $a.’:’.$keywords.’
’;
}
}

if ($a>80000){break;}
echo “”;
echo “setTimeout(\”location.replace(‘c.php?id=$a’)\”,0)”;
echo “”;
function zhgetkey($contents){
$rows = strip_tags($contents);
$arr = array(‘ ‘,’ ‘,”\s”, “\r\n”, “\n”, “\r”, “\t”, “>”, ““”, “””,”
”);
$qc_rows = str_replace($arr, ”, $rows);
if(strlen($qc_rows)>2400){
$qc_rows = substr($qc_rows, ’0′, ’2400′);
}
$data = @implode(”, file(“http://keyword.discuz.com/related_kw.html?title=$qc_rows;ics=gbk;ocs=gbk”));
preg_match_all(“/(.*)A\[(.*)\]\](.*)>/”,$data, $out, PREG_SET_ORDER);
$key=”";
for($i=0;$i $sublen) $string = join(”, array_slice($t_string, 0, $sublen)).”…”;
else $string = join(”, array_slice($t_string, 0, $sublen));
    return $string;
}
?>

OK了。学习下吧!
页: [1]
查看完整版本: 使用discuz在线分词批量优化织梦DEDECMS文章关键词