短语匹配(LCS)在 SEO 中的运用

本贴最后更新于 1319 天前,其中的信息可能已经事过景迁

对于公司的层面而言,SEO 往往是一个很悲催的角色,因为 SEO 这一块很少会得到重视。这往往不是取决于 SEO 流量在网站的占比、SEO 人员的能力等等,而是几乎所有人都觉得,SEO 就是没法做出什么事情的。因此很多公司认为 SEO 是网站应该有的一个职位,仅此而已。

如平常协助技术改他们的 bug,这边 gzip 忘开了、那边缓存设错了,折腾许久轮到 SEO 需求后,这个太难了、那个做不到。SEO 的被重视程度不够,就什么都麻烦。

且无法拿到网站服务器、数据库等等的权限,没法自己搞。总算还有唯一的完全自由的权限——论坛发帖。

进入正题吧,怎么编辑文章。

SEO 分为三面,用户、搜索引擎、网站。而 SEO 来编辑文章么,用户、网站面基本是没法顾及太多,没有编辑的专业能力,因此没法给互联网创造什么有价值的内容。那么就只能从搜索引擎面切入了,钻钻小空子。

提到搜索引擎面,必分析它的技术原理,涉及很多,本文只说短语匹配。在开源全文检索引擎 Sphinx 中,用来评估短语匹配的算法,称为 LCS(最长公共子串,可见百度百科)。

比如以下两个字符串:

aaabbbccc

xxxbbbyyy

它们的 LCS 是公共部分的 bbb,LCS 值为其长度,3。

LCS 算法有什么意义?

比如用户在搜索引擎搜索“百度 SEO”时,有两个网页:

A 网页:内容出现 2 次“百度 SEO”,没有出现零散“百度”或“SEO”

B 网页:内容出现 5 次“SEO”,且在网页导航栏里面,出现过 1 次“百度”

若只根据基于 TF-IDF 框架的经典 BM25 算法(某种程度上也可将就的将其称为关键词密度问题),B 网页的排名一般会比 A 网页高,因为对于“百度 SEO”,其中重要词项“SEO”在 B 网页出现次数更多。

而实际上可以看出的是,既然 A 网页都出现了两次完整的“百度 SEO”,它肯定是和这个主题比较相关的。而 B 网页的“百度”出现距离与“SEO”很远,则不能保证它和这个主题相关,它可能是关于 Google SEO 之类。

所以 A 网页排名应该比 B 网页高,而 LCS 算法则一定程度上解决了这个问题。词项权重的计算,对于 Sphinx 大致类似于:weight = mBM25 + nLCS(m, n 调节权重)

(可参阅 Sphinx 文档进一步理解:http://www.coreseek.cn/docs/coreseek_4.1-sphinx_2.0.1-beta.html#weighting

当词组在页面上完整的出现一次后,这个页面就可以拿到完整的 LCS 权值,之后结合 BM25 等排序因子,综合得出最终排名。

(昨天刚好看到一篇博客:http://www.seoyangs.com/keywordsfenbu.html

很感动的看到了连向这里的友情链接,但文中对于短语匹配的理解似乎有误。另外个人感觉那个用表格计算 TF-IDF 的稍夸张了些。既然也清楚关键词出现的最佳频率,直接出现这些次数就好了,没能想通此处计算一个具体分值出来有什么意义)

实际对于商业搜索引擎,基本上会比 LCS 更完善一些,因为 LCS 也有比较致命的问题,比如在搜索“百度 SEO”,页面上有那么一句“针对百度做 SEO”的时候,该页面却无法得到 LCS 分值。

商业搜索引擎多半会计算最近命中距离,因为商业搜索引擎会在索引库记录每个词具体的命中位置,所以命中距离很好计算。(具体概念参阅各类搜索引擎原理书中的索引部分)

通过命中距离,如“针对百度做 SEO”,它和“针对性去做百度 SEO”这样的区别不大。而如果“⋯⋯ 搜索引擎有百度、Google 等。那么我们怎么去做 SEO 呢?”这里命中距离远了,所以其得分较低。

以前一篇文章里面这些知识有大致的提到过:《基于命中距离的关键词布局——大众点评 SEO 分析》,希望这篇的解释能让人更容易理解一些。

最后来个实例。论坛里面,有一个帖子非常热门,关于舞蹈家金星的八卦的,它得到了很多相关词的流量。

某天稍找了下相关关键词,发现“金星是男的还是女的”这个词稍有些搜索量,但帖子里面没有完整出现过该词。

然后回了一贴,就写了几个字“金星是男的还是女的?”,过了几天百度重访该页面后,该词的排名从十几二十名到了大约第 5 名,于是每天网站微妙的多出了几十个来自百度的访问。

从过程来说是挺省力的,看下词回个贴,每天几十流量。结合一些其它的方法,日搜索量十几万的词也单靠帖子页面撑上去过。每天这样搞搞,对于个人网站或也不错,但对于公司网站,这些都只是九牛一毛。

而如果能给编辑培训下呢?仅从本文所说的知识,都可以基于网站每天至少上百的新页面,让它们有每天多获得几个 SEO 流量的可能性。但这展开下去又要绕回文章开头所述的 SEO 重视性问题了,还是这样收尾吧。

  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 27 关注
  • LCS
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 306 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 449 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 40 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 2 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 237 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 3 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 4 关注
  • 导航

    各种网址链接、内容导航。

    37 引用 • 168 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 509 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 603 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 635 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    20 引用 • 74 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    123 引用 • 168 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 13 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖 • 1 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    129 引用 • 793 回帖
  • 笔记

    好记性不如烂笔头。

    305 引用 • 780 回帖
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 53 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    22 引用 • 31 回帖 • 2 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 691 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 455 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 494 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 40 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    9 引用 • 32 回帖 • 158 关注