SEO高端操作手法之建立词库

印口红 技术杂谈评论16阅读模式

关键词

1)词库搭建

  • 关键词来源
    • 通过词根托词(定向)
      • 5118长尾词:https://ci.5118.com/1b49a5d8/
      • 爱站长尾词:https://ci.aizhan.com/8d5a94b1/
      • 相关搜索(包含词根的)轮循
      • 下拉框(包含词根的)轮循
      • 凤巢关键词

        SEO高端操作手法之建立词库-图片1

      • 5118树状规划图:https://plan.5118.com/
        竞争度:凤巢 > 5118&爱站 > 相关搜索&下拉
        稳定性:凤巢&5118&爱站 > 相关搜索&下拉
        
        定向关键词,竞争度较大
        
    • 通过网站托词(非定向)
      • 5118网站词库:https://www.5118.com/seo/baidupc/www.1688.com
      • 爱站网站词库:https://baidurank.aizhan.com/baidu/1688.com/
      • 遍历竞争对手网站地图:
        • tag页、专题页…sitemap
        • /tag/1/ /tag/2/ /tag/3/
        • 跟领域相关,但有没有明确的词根

  • 分类
    • 通过词根拓展的
      • 找出筛选条件

        SEO高端操作手法之建立词库-图片2

        筛选条件,可以作为网站栏目或筛选项

      • 找出搜索需求

        SEO高端操作手法之建立词库-图片3

        有找交流群的,有找新产品的,有问某个产品靠不靠谱的…

      • 根据筛选条件和搜索需求,批量生成大量词
          {贷款产品} + 口子 + 怎么样/是真的吗/入口/链接/贴吧..
          {贷款类型} + 口子 + 有哪些/大全...
        
    • 通过网站拓展的
      • 过滤出垃圾词
        • 与本站内容完全不相关的
        • 不符合社会主义核心价值观的
        • 重复的
      • 过滤方法
        • 与本站内容完全不相关的

          最简单的办法,通过搜索解决。每个词,搜索整站内容,如果没有搜索结果,则与本站内容不相关

        • 不符合社会主义核心价值观的

          命中黑名单

        • 重复的

          删掉停止词后,再分词后,词项完全一致的,保留一个

          原始词:
          北京公积金提取条件
          北京市公积金提取条件
          北京公积金的提取条件
          公积金北京提取条件
          
          停止词(stopword.txt):
          的、{地区前缀}市...
          
          删除停止词:
          北京公积金提取条件
          北京公积金提取条件
          北京公积金提取条件
          公积金北京提取条件
          
          分词获取词项(jieba模块实现分词):
          [北京, 公积金, 提取, 条件]
          [北京, 公积金, 提取, 条件]
          [北京, 公积金, 提取, 条件]
          [公积金, 北京, 提取, 条件]
          
          >>> 四个词的词项完全一致,保留一个词
          >>> 保留:北京公积金提取条件
          
      • 分类
        • 词向量

          http://ai.baidu.com/tech/nlp/word_embedding

          SEO高端操作手法之建立词库-图片4

          机器学习:tensorflow

        • 通过搜索
          • 网站每个栏目下,随机抽取几千篇文章标题
          • 依次给每个栏目的文章标题,创建索引
          • 用拓展词依次去搜索,每个栏目标题的索引,并记录搜索结果数量
          • 将该关键词,归类到搜索结果数最大的栏目下
            比如:
            1)网站有A、B、C、D四个栏目,各抽取5000篇文章,创建4个索引
            2)拓展关键词a,依次去搜索四个栏目文章的索引
            3)ABCD四个栏目的搜索结果数,依次是:90、80、56、109
            4)则拓展关键词a,归类到栏目D下
            
        • 打标签

          文章标签:http://ai.baidu.com/tech/nlp_apply/topictagger

          文章分类:http://ai.baidu.com/tech/nlp_apply/doctagger

2)关键词布局

解决网页 "塞什么词" 以及 "塞多少" 的问题,进一步解决,网页相似性的问题

2.1)TF-IDF计算

TF = 某个词在文档中出现的次数 / 文档的长度

关键词: "黑户口子"
目标页:http://www.pcben.com/news/gonglue/11835.html

>>> 词项:['黑户', '口子']
>>> 文档字数:2104
>>> [黑户] 出现次数:19
>>> [口子] 出现次数:49

TF(黑户) = 19/2014 = 0.009
TF(口子) = 49/2104 = 0.023

IDF = log( 搜索引擎文档总数 / 出现某个词的文档总数 )

PS:log以2为底

搜索引擎文档总数:100000000
[黑户]文档总数:21400000
[口子]文档总数:36500000

IDF(黑户) = log(100000000/21400000) = 2.22
IDF(口子) = log(100000000/36500000) = 1.45

[黑户]的重要性是[口子]的1.5倍
>>> 网页多出现[黑户],可以提高与[黑户口子]的相关性

TF-IDF(黑户口子) = TF(黑户)*IDF(黑户) + TF(口子)*IDF(口子) = 0.009×2.22 + 0.023×1.45 = 0.05

2.2)TF-IDF的意义

  • 网页不见得内容越多越好。若布局不当,内容越多反而会稀释TF(keyword)的分值,从而降低这个词与这个网页的相关性
  • IDF本质是一个词项的权重,降低文档中高频关键词的权重。所以网页中,玩命塞完整的关键词不见得好,但要多塞这个关键词中IDF最高的词项
      Case:[北京百度区块链工程师工资]的网页,若添加内链模块,以下哪个规则,对提升相关性,可能效果最好?
    
      词项:北京、百度、区块链、工程师、工资
    
      A. 调用北京地区,10个随机职位的工资链接(降低相似性,甚至降低排名)
      B. 调用北京地区,30个百度职位的工资链接(比A严重,降低相似性,降低排名)
      C. 调用北京地区,10个区块链工程师的工资链接(get)
      D. 调用北京地区,20个区块链工程师的招聘链接(get)
    

2.3)BM25计算

TF-IDF存在明显漏洞,因为SEO可以通过 [缩减页面内容量] 和 [堆砌IDF高的词项] 来拉高关键词与网页的相关性

因此现在采用的都是BM25算法,在TF-IDF基础上,添加了3个参数:

  • 常量K:用来限制TF值的增长极限,TF值永远在 [0 ~ K+1] 之间
  • 参数L:文档长度与平均长度的比值,如果文档长度是平均长度的2倍,则L=2
  • 常数b:用来规定L对评分的影响有多大

Elasticsearch里,K默认1.2,b默认0.75

$\text{公式} = 权重(IDF)×相关性 = \sum_{i=1}^n\text{IDF}(keyword)\cdot\left[\frac{TF(keyword)\cdot\left(k+1\right)}{TF(keyword) + k\cdot\left(1-b+b\cdot\frac{当前文档的字数}{整个文档库的平均字数}\right)}\right]$

2.4)BM25的意义

  • 增加了文档长度对相关性的影响。文档越短,相关性会比用TF计算的值更低,减少通过 [缩减页面内容量] 对相关性计算的干扰
  • 增加了对TF极限值的限制,减少通过 [堆砌IDF高的词项] 对相关性计算的影响
  • 只是影响而已,[缩减页面内容量] 和 [堆砌IDF高的词项] 还是有用的,注意尺度
  •  BM25同样作用于title

 
印口红
  • 本文由 印口红 发表于 2024年 3月 14日 21:10:35
  • 转载请务必保留本文链接:https://blog.chunchunhd.com/1662.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证