帝国论坛帝国网站管理系统交流区模板/标签/插件共享交流借花献佛,6.0关键字自动提取插件提供下载 【本版专题贴子】  
 1/5     1 2 3 4 5 ›› ›|
主题:借花献佛,6.0关键字自动提取插件提供下载 [加入收藏夹]   

phome4429
用户头衔:进士

精华贴   :2
发贴数   :554
经验值   :3711
注册时间:2008-11-28
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
借花献佛,6.0关键字自动提取插件提供下载
测试环境是6.0测试版本

1.对所有模型,只要数据表有newstext或者smalltext的字段,都进行关键字分析
2.去掉无效的“,”

使用:
1.上传/e/extend/ 后台发布修改自动获取标题关键字:
2.替换/e/admin/ecmsinfo.php(或者自己对照着修改)

前台投稿,修改自动获取标题关键字
3.替换/e/DoInfo/ecms.php,或者自己对照修改。

再详细的不说了,不会的覆盖就好,不要问我

说明:本人不愿盗取别人劳动成功,该插件非[水平凡]自己写的,我只是把代码拷贝了下让他能在6.0下使用。代码没做

任何修改。感谢提供该插件的朋友,我一直在用!!!!


原帖5.1:http://bbs.phome.net/ShowThread/?threadid=25182&forumid=13

http://bbs.phome.net/ShowThread/?threadid=59412&forumid=31

感谢2位

修改地方说明:

如果你想在添加信息时自动获取关键字
打开/e/DoInfo/ecms.php文件
找到
        $navtheid=(int)$_POST['filepass'];
        AddNews($_POST,$logininid,$loginin);
替换成
        //修改开始
        /**********************************************************************************************************
        //织梦分词算法 www.dedecms.com
        //带词性标志的算法,使用方法:
        //普通分词 tryNumName,识别数量词及人名,$tryDiff 岐义处理
        //$strok = $sp->SplitRMM(string $str,bool $tryNumName,bool $tryDiff)
        //在DedeCms内使用的词典是从热门词中选出来的词典,不适用于通用的分词算法
        //本算法经过简化处理,取消了部份消岐规则
        ********************************/
        require_once(dirname(__FILE__)."./../extend/Keyword/pub_splitword_www.php");
        //获得HTML里的文本
        function SpHtml2Text($str){
          $str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
          $alltext = "";
          $start = 1;
          for($i=0;$i<strlen($str);$i++){
                if($start==0 && $str[$i]==">") $start = 1;
                else if($start==1){
                  if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
                  else if(ord($str[$i])>31) $alltext .= $str[$i];
                }
          }
          $alltext = str_replace(" "," ",$alltext);
          $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
          $alltext = preg_replace("/[ ]+/s"," ",$alltext);
          return $alltext;
        }
        //获取关键词
        function GetKeywords($title,$body){
                $keywords = "";
                $sp = new SplitWord();
                $titleindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM($title))));
                $allindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM(spHtml2Text($body)),200)));
                if(is_array($allindexs) && is_array($titleindexs)){
                        $i=0;$m=0;
                        foreach($titleindexs as $k){       
                                if(strlen($keywords)>=50) break;
                                else{
                                        if($i){        $keywords .= ",".$k;}
                                        else{$keywords .=$k;$i++;}
                                       
                                }
                        }
                        foreach($allindexs as  $k){
                                if(strlen($keywords)>=50) break;
                                else if(!in_array($k,$titleindexs))
                                {
                                        if($m){$keywords .= ",".$k;}//帝国要用逗号
                                        else{$keywords .= $k;$m++;}//删除空白","对后面的都有好处。2008-7-3,测试还行。
                                       
                                }
                  }
                }
                $sp->Clear();
                unset($sp);
                $keywords = preg_replace("/#p#|#e#/","",$keywords);//dede的分页,要改。
                $keywords = addslashes($keywords);
                return $keywords;
         }
if($_POST['newstext']){
$key1=GetKeywords($_POST['keyboard'],$_POST['newstext']);
}
elseif($_POST['smalltext'])
{
$key1=GetKeywords($_POST['keyboard'],$_POST['smalltext']);
}//作部分修改,新闻则获取newstext字段,其他信息获取smalltext字段。2008-7-3,测试ok
$a2=array(keyboard=>"$key1");
$post=$a2+$_POST;//这个格式可以增加到投稿。2008-7-3
        $navtheid=(int)$_POST['filepass'];
AddNews($post,$logininid,$loginin);
//修改结束
//***************************************************************************************************
        //$navtheid=(int)$_POST['filepass'];
        //AddNews($_POST,$logininid,$loginin);

如果你还想同时在修改信息时也重新获取关键字,在同一个文件


找到
          $navtheid=(int)$_POST['id'];
        EditNews($_POST,$logininid,$loginin);
替换成
        //修改开始
        /**********************************************************************************************************
        //织梦分词算法 www.dedecms.com
        //带词性标志的算法,使用方法:
        //普通分词 tryNumName,识别数量词及人名,$tryDiff 岐义处理
        //$strok = $sp->SplitRMM(string $str,bool $tryNumName,bool $tryDiff)
        //在DedeCms内使用的词典是从热门词中选出来的词典,不适用于通用的分词算法
        //本算法经过简化处理,取消了部份消岐规则
        ********************************/
        require_once(dirname(__FILE__)."./../extend/Keyword/pub_splitword_www.php");
        //获得HTML里的文本
        function SpHtml2Text($str){
          $str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
          $alltext = "";
          $start = 1;
          for($i=0;$i<strlen($str);$i++){
                if($start==0 && $str[$i]==">") $start = 1;
                else if($start==1){
                  if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
                  else if(ord($str[$i])>31) $alltext .= $str[$i];
                }
          }
          $alltext = str_replace(" "," ",$alltext);
          $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
          $alltext = preg_replace("/[ ]+/s"," ",$alltext);
          return $alltext;
        }
        //获取关键词
        function GetKeywords($title,$body){
                $keywords = "";
                $sp = new SplitWord();
                $titleindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM($title))));
                $allindexs = explode(" ",trim($sp->GetIndexText($sp->SplitRMM(spHtml2Text($body)),200)));
                if(is_array($allindexs) && is_array($titleindexs)){
                        $i=0;$m=0;
                        foreach($titleindexs as $k){       
                                if(strlen($keywords)>=50) break;
                                else{
                                        if($i){        $keywords .= ",".$k;}
                                        else{$keywords .=$k;$i++;}
                                       
                                }
                        }
                        foreach($allindexs as  $k){
                                if(strlen($keywords)>=50) break;
                                else if(!in_array($k,$titleindexs))
                                {
                                        if($m){$keywords .= ",".$k;}//帝国要用逗号
                                        else{$keywords .= $k;$m++;}//删除空白","对后面的都有好处。2008-7-3,测试还行。
                                       
                                }
                  }
                }
                $sp->Clear();
                unset($sp);
                $keywords = preg_replace("/#p#|#e#/","",$keywords);//dede的分页,要改。
                $keywords = addslashes($keywords);
                return $keywords;
         }
if($_POST['newstext']){
$key1=GetKeywords($_POST['keyboard'],$_POST['newstext']);
}
elseif($_POST['smalltext'])
{
$key1=GetKeywords($_POST['keyboard'],$_POST['smalltext']);
}//作部分修改,新闻则获取newstext字段,其他信息获取smalltext字段。2008-7-3,测试ok
$a2=array(keyboard=>"$key1");
$post=$a2+$_POST;//这个格式可以增加到投稿。2008-7-3
        $navtheid=(int)$_POST['filepass'];
EditNews($post,$logininid,$loginin);
//修改结束
//***************************************************************************************************
        //$navtheid=(int)$_POST['filepass'];
        //EditNews($_POST,$logininid,$loginin);

首发地址:http://www.abc3210.cn/xz/ecms/2009-09-24/81.html

上传以下附件:
[下载 *.rar](文件大小:187.35 KB,下载次数:465)

[该贴被修改 3 次,最后修改时间 2009-10-11 11:17:52 ]


失败注定是真理
**************************
插件问题等请不要加我Q,论坛或我网站提问!
QQ:442981383
插件、风格、问题求助尽在随意
问答、小说、SWFupload、发号抽奖、采集自动审核发布
2009-09-24 16:26:56 已设置保密 顶部 回复 引用 报告 编辑 删除

hydeist
用户头衔:秀才

精华贴   :0
发贴数   :89
经验值   :354
注册时间:2006-01-01
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

非常好,谢谢你的插件。




2009-09-24 16:33:30 已设置保密 顶部 回复 引用 报告 编辑 删除

欧派科技
用户头衔:举人

精华贴   :0
发贴数   :292
经验值   :888
注册时间:2009-08-12
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

非常好,谢谢你的插件。



工作室承接帝国模板制作二次开发仿制QQ:377-56-76
2009-09-24 17:09:47 已设置保密 顶部 回复 引用 报告 编辑 删除

ltl007
用户头衔:举人

精华贴   :0
发贴数   :146
经验值   :696
注册时间:2009-05-13
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

非常好,谢谢




2009-09-24 21:59:24 已设置保密 顶部 回复 引用 报告 编辑 删除

gyxin123
用户头衔:进士

精华贴   :0
发贴数   :1032
经验值   :3901
注册时间:2008-02-25
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

原帖由 ltl007 于 2009-09-24 21:59:24 发表
非常好,谢谢




www.linyi21.com
2009-09-25 00:30:46 已设置保密 顶部 回复 引用 报告 编辑 删除

imagine
用户头衔:进士

精华贴   :1
发贴数   :1520
经验值   :3700
注册时间:2007-07-27
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]




高速低价靠谱美国空间 每月1元
2009-09-25 03:40:32 已设置保密 顶部 回复 引用 报告 编辑 删除

hangting8
用户头衔:进士

精华贴   :0
发贴数   :1146
经验值   :3330
注册时间:2009-03-18
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

支持




2009-09-25 07:34:34 已设置保密 顶部 回复 引用 报告 编辑 删除

lochina1
用户头衔:进士

精华贴   :0
发贴数   :1009
经验值   :2434
注册时间:2009-08-19
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

虽然是借花献佛  不过还是要感谢·~



出售:秒改密码,秒上密保QQ连号(2连号QQ---100连号)
QQ连号专卖店--联系QQ:190019886
http://blog.sina.com.cn/6shenai

2009-09-25 09:12:13 已设置保密 顶部 回复 引用 报告 编辑 删除

huangpan1
用户头衔:秀才

精华贴   :0
发贴数   :177
经验值   :418
注册时间:2009-09-22
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

谢谢谢谢



整形外科www.lrwoman.cn 整形美容http://beauty.online.sh.cn 青春痘www.shqcd.com 激光美容www.lrwoman.com
2009-09-25 10:53:12 已设置保密 顶部 回复 引用 报告 编辑 删除

不停游的鱼
用户头衔:进士

精华贴   :0
发贴数   :705
经验值   :2805
注册时间:2008-07-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

支持




2009-09-25 14:34:40 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/5     1 2 3 4 5 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1