dede如何自动提取关键词?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文

我将从 原理、配置、手动优化、常见问题 四个方面为你进行详细说明。

dede自动提取关键词
(图片来源网络,侵删)

原理:DedeCMS 是如何自动提取关键词的?

DedeCMS 的自动关键词提取功能主要基于 “词频统计” 算法,并结合了 “停用词过滤”

  1. 分词与词频统计

    • 当你发布一篇文章时,系统会自动调用 keyword.helper.php 文件。
    • 该文件会读取文章的 和 。
    • 它会使用一个简单的、基于分隔符(如空格,逗号,句号,换行等)和内置词典的方式进行分词。
    • 然后统计所有词语的出现频率,出现次数越多的词,被认为是“关键词”的可能性越大。
  2. 停用词过滤

    • 在统计词频后,系统会加载一个 停用词库(Stop Words List)。
    • 停用词库是一些没有实际意义的常用词,的”、“了”、“是”、“在”、“和”、“我们”、“一个”等。
    • 系统会从高频词列表中过滤掉这些停用词,剩下的就是初步提取出的关键词。
  3. 排序与数量限制

    dede自动提取关键词
    (图片来源网络,侵删)
    • 过滤后的关键词会按照词频从高到低进行排序。
    • 系统会根据预设的数量(默认通常是5个)提取排名靠前的词,并自动填充到文章的关键词字段。

核心文件

  • /include/helpers/keyword.helper.php:这是自动提取的核心逻辑文件,如果你想修改提取算法或停用词,主要编辑这个文件。
  • /dede/templets/article_keywords_edit.htm:这是后台文章编辑页面的模板文件,决定了你看到的“自动提取”按钮和关键词输入框的样式。

配置:如何启用和设置自动提取?

DedeCMS 默认是开启自动提取功能的,但你需要确保后台设置正确。

  1. 后台全局设置

    • 登录你的 DedeCMS 后台。
    • 进入 “系统” -> “系统基本参数” -> “核心设置”
    • 找到 “关键字替换次数” 这个选项,这个选项控制着在文章内容中,关键词被自动加链接的次数,虽然它不直接控制“提取”的数量,但一个合理的值(如 1 或 2)是必要的。
    • 保存设置。
  2. 发布文章时使用

    dede自动提取关键词
    (图片来源网络,侵删)
    • 进入 “核心” -> “内容维护” -> “添加文档”“编辑文档”
    • 在文章编辑界面,找到 输入框。
    • 在输入框的 上方或下方,你会看到一个 “自动提取” 的按钮。
    • 操作步骤
      1. 填写好文章标题和内容。
      2. 将光标定位到“关键词”输入框中。
      3. 点击 “自动提取” 按钮。
      4. 系统会立即分析文章,并自动将提取出的关键词填入输入框。
      5. 非常重要:检查自动提取的关键词是否准确,如果效果不理想,你可以手动修改或删除,然后填入你认为更合适的关键词。

手动优化:如何提升自动提取的准确性?

自动提取只是一个辅助工具,效果不一定完美,你可以通过以下几种方法来优化它,使其更符合你的网站需求。

方法1:修改停用词库(最常用、最有效)

如果你发现提取出的关键词中仍然包含很多无意义的词,说明停用词库不够完善。

  1. 找到停用词文件

    • 路径通常是:/include/stopword.txt
    • 这是一个纯文本文件,每行一个停用词。
  2. 编辑停用词库

    • 用 FTP 工具下载 stopword.txt 文件到本地。
    • 用记事本等文本编辑器打开它。
    • 在文件末尾添加你希望被过滤掉的词,每行一个,如果你的网站是关于“手机”的,可以添加 手机, 数码, 产品 等词(如果它们不是你的核心业务词)。
    • 保存文件,并用 FTP 覆盖上传到服务器原位置。

示例

的
了
是
在
和
我们
一个
...
手机
数码
产品

方法2:调整关键词提取数量

如果你想默认提取更多或更少的关键词,需要修改核心文件。

  1. 找到核心文件

    • 路径:/include/helpers/keyword.helper.php
  2. 修改代码

    • 打开 keyword.helper.php 文件。
    • 找到类似下面这行代码:
      $kws = explode(',', trim($kws));
    • 在这行代码 之前,找到定义 $keycount 的地方,或者在逻辑中找到限制数量的地方,在 DedeCMS 5.7 版本中,这个逻辑通常在 GetKeywords() 函数内,是通过循环和条件判断来实现的,最直接的方法是修改循环次数。
    • 找到类似这样的循环:
      for($i=0; $i<count($kws); $i++)
      {
        // ... 一些过滤和判断逻辑 ...
        if($rkey < $keycount) // $keycount 就是限制数量
        {
            // 将关键词加入结果数组
        }
      }
    • 你需要找到 $keycount 是在哪里定义的,在旧版本中,它可能是一个固定值,5,你可以直接修改这个数字,在新一些的版本中,它可能是一个可配置的参数,如果你找不到,可以直接修改循环的 for 条件,例如将 for($i=0; $i<count($kws); $i++) 改为 for($i=0; $i<count($kws) && $i<10; $i++),这样最多就只处理前10个高频词,从而达到限制数量的目的。

警告:直接修改核心文件在升级 DedeCMS 时可能会被覆盖,建议修改前备份原文件,或者升级后重新修改。

方法3:手动指定和忽略

  • 手动指定:在文章编辑页面,除了使用“自动提取”,你完全可以 不点那个按钮,直接手动输入你认为最精准的关键词,用英文逗号 隔开,这是最可靠的方法。
  • 使用特殊标签:如果你希望某些词永远不被当作关键词,你可以在文章内容中使用 {dede:ignore}{/dede:ignore} 标签将其包裹起来。
    这是一款非常棒的{dede:ignore}手机{/dede:ignore},性能出众。

    这样,“手机”这个词就不会被提取到关键词中。


常见问题与解决方法

问题1:自动提取的关键词不准确,或者提取不出来。

  • 原因1太短,标题和内容字数太少,系统无法进行有效的词频分析。
    • 解决:确保文章内容足够丰富(建议至少300-500字)。
  • 原因2:停用词库不完善。
    • 解决:按照上面的 方法1,编辑 stopword.txt 文件,添加更多与你网站无关的常用词。
  • 原因3:文章中包含了大量特殊符号或乱码,导致分词失败。
    • 解决:发布文章前,检查内容是否正常,清理掉不必要的特殊符号。

问题2:我想修改后台“自动提取”按钮的文字或样式。

  • 解决:编辑模板文件 /dede/templets/article_keywords_edit.htm,找到包含“自动提取”字样的地方,你可以直接修改文字,或者通过修改其周围的 HTML/CSS 代码来调整样式。

问题3:升级 DedeCMS 后,我的关键词修改失效了怎么办?

  • 解决:这是最常见的问题,因为升级会覆盖 /include/ 目录下的所有文件,如果你修改了 keyword.helper.phpstopword.txt,你需要用你 之前备份的修改版文件,去覆盖升级后新版本中的对应文件。
操作 目的 涉及文件/方法
日常使用 快速获取关键词建议 后台文章编辑页 -> 点击 “自动提取” 按钮
提升准确性 过滤掉更多无意义词汇 编辑 /include/stopword.txt,添加自定义停用词
调整数量 改变默认提取的关键词个数 修改 /include/helpers/keyword.helper.php 中的相关逻辑
最精准控制 确保关键词100%符合需求 手动输入关键词,或使用 {dede:ignore} 标签忽略特定词

DedeCMS 的自动提取功能是一个便捷的辅助工具,但不要完全依赖它,结合 手动优化停用词库人工最终审核,才能获得最佳效果。

-- 展开阅读全文 --
头像
织梦列表如何显示多图?
« 上一篇 03-06
嵌入式开发如何用C语言高效实现?
下一篇 » 03-06
取消
微信二维码
支付宝二维码

目录[+]