dedecms文档长尾关键词,根据频率先替换长尾关键词再替换主关键词

问题:在使用dedecms的文档关键词替换功能时,会造成交叉替换

如:

长尾关键词1:男人喝金丝皇菊有什么好处?

长尾关键词2:喝金丝皇菊有什么好处?

主关键词3:金丝皇菊

使用系统默认的功能时,在替换主关键词的时候,会将上面已经替换好的长尾关键词中的“金丝皇菊”也替换掉,从而破坏了原有的长尾关键词锚文本。

解决思路:

1.先将要替换的关键词替换成类似:

关键词1:‘#####0#####‘
关键词2:‘#####2#####‘
关键词3:‘#####3#####‘
再进行以上替换操作的时候,我们需要保存关键词所对应的锚文本,如:
‘#####0#####‘ --> 关键词1的锚文本
‘#####1#####‘ --> 关键词2的锚文本
‘#####2#####‘ --> 关键词3的锚文本等全部替换完毕后,我们最后再恢复回来这里,我们主要修改:include/arc.archives.class.php 文件修改部分如下:
//高亮专用, 替换多次是可能不能达到最多次
function _highlight($string, $words, $result, $pre) {
    global $cfg_replace_num;
    //     if (version_compare(PHP_VERSION, ‘5.5.0‘, ‘>=‘))
    //     {
    //         $string = $string[0];
    //         $pre = $pre[0];
    //     }

    //修改 Start
    $replaced_array = array();
    $replaced_tiems = 0;
    //修改 End

    $string = str_replace(‘\"‘, ‘"‘, $string);
    if ($cfg_replace_num > 0) {
        foreach ($words as $key => $word) {
            if ($GLOBALS[‘replaced‘][$word] == 1) {
                continue;
            }
            //修改 Start
            $replace_string = ‘#####‘ . $replaced_tiems . ‘#####‘;
            $replaced_array[$replace_string] = $result[$key];
            $string = preg_replace("#" . preg_quote($word) . "#", $replace_string, $string, $cfg_replace_num);
            $replaced_tiems+= 1;
            //修改  End
            //             $string = preg_replace("#".preg_quote($word)."#", $result[$key], $string, $cfg_replace_num);
            if (strpos($string, $word) !== FALSE) {
                $GLOBALS[‘replaced‘][$word] = 1;
            }
        }
        //修改 Start
        foreach ($replaced_array as $k => $v) {
            $string = str_ireplace($k, $v, $string);
        }
        //修改  End

    } else {
        $string = str_replace($words, $result, $string);
    }
    return $pre . $string;
}

注意:这里我们需要在后台修改文档关键词的频率,默认是 频率高的优先替换,频率低的后替换

版权

原创文章,转载请著名出处:dedecms文档长尾关键词,根据频率先替换长尾关键词再替换主关键词(https://www.cnblogs.com/hongfei/p/9507711.html)

原文地址:https://www.cnblogs.com/hongfei/p/9507711.html

时间: 2024-10-27 08:38:54

dedecms文档长尾关键词,根据频率先替换长尾关键词再替换主关键词的相关文章

word 文档操作类,可以读出word中书签 批量替换内容,直接调用

using System;using System.Collections.Generic;using System.Text;using Word = Microsoft.Office.Interop.Word; namespace ELO.BLL{ /* * Description:用于Word基本操作类 */public partial class Helper_Word { #region 私有成员 private Word.ApplicationClass _wordApplicati

统计文档中单词出现频率

一.先贴出自己的代码 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileReader; 4 import java.io.IOException; 5 import java.util.Arrays; 6 import java.util.HashMap; 7 import java.util.Iterator; 8 import java.util.Map; 9 import java.ut

我的PHP爬虫实现一页式学习工具 : 我的超级文档查看利器 把文档所有页面当做一个页面输出 一直pagedown就可以快速学习 关键词完整全文搜索

http://localhost/startstep/web/index.php?r=bianchen/wendang&wengdang=scrapyd&shuchuyeshu=999 原文地址:https://www.cnblogs.com/stillstep/p/11100185.html

dedecms设置文档默认浏览次数为0

织梦dedecms文档默认浏览次数是随机数,每次发布新文档时会自动生成一个50-200之间的随机数字,这样虽然可以让文档在前台显示起来比较“好看”些,但是相信部分用户还是喜欢从0开始计算的真实浏览次数,织梦也提供了修改默认浏览次数的设置. 操作步骤: 1.进入网站后台,在“系统——系统基本参数——其它选项”中找到“文档默认点击数(-1表示随机50-200):”: 2.把输入框里的值修改为0: 3.然后点击确认保存设置,之后发布的文档默认浏览次数就是0了. 原文地址:https://www.cnb

使用gensim和sklearn搭建一个文本分类器(一):文档向量化

总的来讲,一个完整的文本分类器主要由两个阶段,或者说两个部分组成:一是将文本向量化,将一个字符串转化成向量形式:二是传统的分类器,包括线性分类器,SVM, 神经网络分类器等等. 之前看的THUCTC的技术栈是使用 tf-idf 来进行文本向量化,使用卡方校验(chi-square)来降低向量维度,使用liblinear(采用线性核的svm) 来进行分类.而这里所述的文本分类器,使用lsi (latent semantic analysis, 隐性语义分析) 来进行向量化, 不需要降维, 因为可以

Wps文档如何转换为pdf文件

Wps文档是职场办公当中较多使用得文件格式,通常文件的撰写.编辑.修改都是使用得wps工具.因此wps工具操作简易,功能齐全,十分符合日常办公的需求.可是wps文档也有着缺陷所在,那就是wps文档的文字内容太容易修改.如果将重要的工作文件以wps文档保存,保护得稍有不慎,文件当中的重要内容就会遭到泄露,而影响工作的进展.所以,在保存重要文件时,大家都会将wps文档转换为安全性高的pdf文件进行保存.今天的文章内容就和大家说说wps文档如何转换为pdf文件. 1.打开浏览器.鼠标点击电脑中的浏览器

写文档的一些感触

软工写文档也有一个多星期了,还没有写完,感觉太慢了~ 对于软工文档,最大的感觉就是不知道该怎么写.问过一个师哥,师哥说这次写主要是为了让我们先了解一下写文档,现在让我们真正写那肯定是写不好的.后面还会有项目来练习的. 真正优秀的程序员应该不单是编程高手,同时也应该是写文档的高手.大多数程序员是不喜欢写文档的.文档种类多,要求多.需求的改变和代码的改变都会让文档如同一张过时的废纸一样.很多程序员不写文档照样能编出程序来,文档的好处更多的体现在公司.用户和后续程序员身上.这样即使程序员走了,只要有文

反射机制--调用构造函数和成员方法、制作帮助文档

今天学习了关于反射的相关知识,通过反射可以找到类中的构造方法和所有的成员方法.而并不了解这个类的构造的人可以很方便的运用反射机制. 掌握发射主要了解这几个类,类位于java.long.reflect包中: Class类:代表一个 类 Constructor类:代表累的构造方法 Field类:代表类中的成员变量 Method类:代表类的方法 import java.lang.reflect.*; /** 这是一个反射机制的例子实例,包括如何利用反射找到无参.有参的构造方法,以及其他方法. @aut

Python处理Excel文档(xlrd, xlwt, xlutils)

简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改. (以下属性或方法并非全部,需要更多属性请参看文档:建议先参考文末Demo,再深入了解) xlrd Book(class) 由xlrd.open_work("example.xls"