海洋 CMS 采集标签关键词如何自动提取
海洋CMS 采集本身不会自动从正文里提词生成标签——它只负责把采集规则里映射到的字段原样入库。想让「关键词」自动变成 TAG,只有两条路:一是把源站的 keywords 字段直接映射成本地关键词字段(靠"抄"),二是在入库前挂一段中文分词代码,从正文按词频提取 2-6 字词、过滤停用词、取前 3-5 个写回(靠"算")。两条路可以叠加,实战里更推荐第二种,因为源站 keywords 有近一半是站点名堆砌。
海洋CMS 采集关键词自动提取有哪两条路?
结论:一条是"抄",一条是"算",两者成本完全不同。
"抄"指的是在采集节点的字段映射里,把源站内容页的 meta keywords 抓过来直接落到本地关键词字段。优点是零代码、速度快;缺点是你在别人手里吃饭——源站没写 keywords、或者写的是"首页,网站地图,联系我们"这种无效词,你就只能得到一堆垃圾标签。
"算"指的是在采集入库前对正文做中文分词,按词频挑词。它不依赖源站,但需要你往采集流程里插一段代码,并准备一份停用词表。下面分开讲。
怎么把源站 keywords 字段映射成 TAG?
结论:在采集节点的内容页规则里新增一个采集字段,规则匹配 <meta name="keywords" content="[内容]">,本地字段选「关键词」或「TAG标签」,多词分隔符填英文逗号。
具体位置是后台 → 采集 → 采集节点 → 内容页规则,添加字段时"采集字段"填上面的规则,"本地字段"下拉里选关键词或 TAG 相关项。注意三点:一是源站 keywords 里常混着站点名和栏目名,建议入库后用 SQL 再过滤一遍;二是不同版本后台的下拉项命名不完全一致(有的叫「关键词」、有的叫「tag」),以你自己后台实际的下拉项为准;三是英文逗号必须是分隔符,中文逗号会导致整串被当成一个标签。
正文分词自动提取 TAG 的具体步骤是什么?
结论:四步——取正文、分词、过滤排序、写回,缺一步结果都不能用。
- 取正文:在采集入库执行
INSERT INTO之前拿到内容变量,先做strip_tags()和html_entity_decode()。少了这一步,div、span、amp这类 HTML 残留会被分词器当词留下。 - 分词:调用中文分词类把正文切成词,只保留长度 2-6 的词。1 字词噪声过大,7 字以上基本是长短语,都不适合做标签。
- 过滤排序:过一遍停用词表("我们""可以""这个""根据""记者""点击"等),按词频从高到低排序。标题里出现过的词权重 ×2,因为标题词通常更贴近主题。
- 写回:取前 3-5 个词,用英文逗号拼成字符串写进该文章的关键词字段。
入库那段逻辑在 admin 目录下的采集处理文件里,不同版本文件名不一样。最快的定位方法是在 admin 目录搜 INSERT INTO,找到插入文章主表的语句,改动就加在它上方。
分词方案怎么选:PHPAnalysis、scws 还是 jieba-php?
结论:服务器能装 C 扩展就上 scws,共享主机装不了就用纯 PHP 的 PHPAnalysis。
- PHPAnalysis:纯 PHP 实现,上传到站点目录
require_once引用即可,不需要编译,词库自带。写法大致是$pa->SetSource(strip_tags($content)); $pa->StartAnalysis(); $keywords = $pa->GetFinallyKeywords(5);,具体方法名以你下载的版本为准。 - scws:C 扩展,需要服务器 root 权限编译安装,速度快,适合每天采集量上万篇的站。
- jieba-php:结巴分词移植版,效果最好但资源占用最高,小站没必要。
不管选哪个,都要额外准备一份 200-500 词的停用词表,否则"我们""但是"这类词一定排在前几名。
提取出来的关键词怎么避免重复和垃圾 TAG?
结论:入库前先查重,单篇文章 TAG 上限设 5 个,标签写入放在采集批次结束后统一处理。
先在数据库执行 SHOW TABLES LIKE '%tag%'; 确认你这份海洋CMS 的标签表真实表名(不同版本标签相关表名并不完全一致,别照抄别人的 SQL),然后按"存在则跳过、不存在则插入"的逻辑处理,避免同一标签反复插入或主键冲突。
另外两个坑:一是已采集的老文章不会追溯,需要另写一个脚本遍历文章表重新提取;二是自动提取的标签容易同义重复("手机"和"手机版"),可以在停用词表之外再加一份同义词归并表,把常见近义词合并成同一个标签。
总结一句话:海洋CMS 采集关键词自动提取,省事的做法是映射源站 keywords 字段,可靠的做法是在入库前用 PHPAnalysis 分词、按词频取前 3-5 个 2-6 字词、过滤停用词后写回标签表,并做好查重和同义词归并。
原文链接:https://www.gj0.com/thread-586.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。