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

(图片来源网络,侵删)
原理:DedeCMS 是如何自动提取关键词的?
DedeCMS 的自动关键词提取功能主要基于 “词频统计” 算法,并结合了 “停用词过滤”。
-
分词与词频统计:
- 当你发布一篇文章时,系统会自动调用
keyword.helper.php文件。 - 该文件会读取文章的 和 。
- 它会使用一个简单的、基于分隔符(如空格,逗号,句号,换行等)和内置词典的方式进行分词。
- 然后统计所有词语的出现频率,出现次数越多的词,被认为是“关键词”的可能性越大。
- 当你发布一篇文章时,系统会自动调用
-
停用词过滤:
- 在统计词频后,系统会加载一个 停用词库(Stop Words List)。
- 停用词库是一些没有实际意义的常用词,的”、“了”、“是”、“在”、“和”、“我们”、“一个”等。
- 系统会从高频词列表中过滤掉这些停用词,剩下的就是初步提取出的关键词。
-
排序与数量限制:
(图片来源网络,侵删)- 过滤后的关键词会按照词频从高到低进行排序。
- 系统会根据预设的数量(默认通常是5个)提取排名靠前的词,并自动填充到文章的关键词字段。
核心文件:
/include/helpers/keyword.helper.php:这是自动提取的核心逻辑文件,如果你想修改提取算法或停用词,主要编辑这个文件。/dede/templets/article_keywords_edit.htm:这是后台文章编辑页面的模板文件,决定了你看到的“自动提取”按钮和关键词输入框的样式。
配置:如何启用和设置自动提取?
DedeCMS 默认是开启自动提取功能的,但你需要确保后台设置正确。
-
后台全局设置:
- 登录你的 DedeCMS 后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “关键字替换次数” 这个选项,这个选项控制着在文章内容中,关键词被自动加链接的次数,虽然它不直接控制“提取”的数量,但一个合理的值(如 1 或 2)是必要的。
- 保存设置。
-
发布文章时使用:
(图片来源网络,侵删)- 进入 “核心” -> “内容维护” -> “添加文档” 或 “编辑文档”。
- 在文章编辑界面,找到 输入框。
- 在输入框的 上方或下方,你会看到一个 “自动提取” 的按钮。
- 操作步骤:
- 填写好文章标题和内容。
- 将光标定位到“关键词”输入框中。
- 点击 “自动提取” 按钮。
- 系统会立即分析文章,并自动将提取出的关键词填入输入框。
- 非常重要:检查自动提取的关键词是否准确,如果效果不理想,你可以手动修改或删除,然后填入你认为更合适的关键词。
手动优化:如何提升自动提取的准确性?
自动提取只是一个辅助工具,效果不一定完美,你可以通过以下几种方法来优化它,使其更符合你的网站需求。
方法1:修改停用词库(最常用、最有效)
如果你发现提取出的关键词中仍然包含很多无意义的词,说明停用词库不够完善。
-
找到停用词文件:
- 路径通常是:
/include/stopword.txt - 这是一个纯文本文件,每行一个停用词。
- 路径通常是:
-
编辑停用词库:
- 用 FTP 工具下载
stopword.txt文件到本地。 - 用记事本等文本编辑器打开它。
- 在文件末尾添加你希望被过滤掉的词,每行一个,如果你的网站是关于“手机”的,可以添加
手机,数码,产品等词(如果它们不是你的核心业务词)。 - 保存文件,并用 FTP 覆盖上传到服务器原位置。
- 用 FTP 工具下载
示例:
的
了
是
在
和
我们
一个
...
手机
数码
产品
方法2:调整关键词提取数量
如果你想默认提取更多或更少的关键词,需要修改核心文件。
-
找到核心文件:
- 路径:
/include/helpers/keyword.helper.php
- 路径:
-
修改代码:
- 打开
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文件,添加更多与你网站无关的常用词。
- 解决:按照上面的 方法1,编辑
- 原因3:文章中包含了大量特殊符号或乱码,导致分词失败。
- 解决:发布文章前,检查内容是否正常,清理掉不必要的特殊符号。
问题2:我想修改后台“自动提取”按钮的文字或样式。
- 解决:编辑模板文件
/dede/templets/article_keywords_edit.htm,找到包含“自动提取”字样的地方,你可以直接修改文字,或者通过修改其周围的 HTML/CSS 代码来调整样式。
问题3:升级 DedeCMS 后,我的关键词修改失效了怎么办?
- 解决:这是最常见的问题,因为升级会覆盖
/include/目录下的所有文件,如果你修改了keyword.helper.php或stopword.txt,你需要用你 之前备份的修改版文件,去覆盖升级后新版本中的对应文件。
| 操作 | 目的 | 涉及文件/方法 |
|---|---|---|
| 日常使用 | 快速获取关键词建议 | 后台文章编辑页 -> 点击 “自动提取” 按钮 |
| 提升准确性 | 过滤掉更多无意义词汇 | 编辑 /include/stopword.txt,添加自定义停用词 |
| 调整数量 | 改变默认提取的关键词个数 | 修改 /include/helpers/keyword.helper.php 中的相关逻辑 |
| 最精准控制 | 确保关键词100%符合需求 | 手动输入关键词,或使用 {dede:ignore} 标签忽略特定词 |
DedeCMS 的自动提取功能是一个便捷的辅助工具,但不要完全依赖它,结合 手动优化停用词库 和 人工最终审核,才能获得最佳效果。
