关键词
1)词库搭建
- 关键词来源
- 通过词根托词(定向)
- 5118长尾词:https://ci.5118.com/1b49a5d8/
- 爱站长尾词:https://ci.aizhan.com/8d5a94b1/
- 相关搜索(包含词根的)轮循
- 下拉框(包含词根的)轮循
- 凤巢关键词
- 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/
- ...
跟领域相关,但有没有明确的词根
- 通过词根托词(定向)
- 分类
- 通过词根拓展的
- 找出
筛选条件
筛选条件,可以作为网站栏目或筛选项
- 找出
搜索需求
有找交流群的,有找新产品的,有问某个产品靠不靠谱的...
- 根据筛选条件和搜索需求,批量生成大量词
{贷款产品} + 口子 + 怎么样/是真的吗/入口/链接/贴吧.. {贷款类型} + 口子 + 有哪些/大全...
- 找出
- 通过网站拓展的
- 过滤出垃圾词
- 与本站内容完全不相关的
- 不符合社会主义核心价值观的
- 重复的
- 过滤方法
- 与本站内容完全不相关的
最简单的办法,通过搜索解决。每个词,搜索整站内容,如果没有搜索结果,则与本站内容不相关
- 不符合社会主义核心价值观的
命中黑名单
- 重复的
删掉停止词后,再分词后,词项完全一致的,保留一个
原始词: 北京公积金提取条件 北京市公积金提取条件 北京公积金的提取条件 公积金北京提取条件 停止词(stopword.txt): 的、{地区前缀}市... 删除停止词: 北京公积金提取条件 北京公积金提取条件 北京公积金提取条件 公积金北京提取条件 分词获取词项(jieba模块实现分词): [北京, 公积金, 提取, 条件] [北京, 公积金, 提取, 条件] [北京, 公积金, 提取, 条件] [公积金, 北京, 提取, 条件] >>> 四个词的词项完全一致,保留一个词 >>> 保留:北京公积金提取条件
- 与本站内容完全不相关的
- 分类
- 词向量
http://ai.baidu.com/tech/nlp/word_embedding
机器学习: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}^ntext{IDF}(keyword)cdotleft[frac{TF(keyword)cdotleft(k+1right)}{TF(keyword) + kcdotleft(1-b+bcdotfrac{当前文档的字数}{整个文档库的平均字数}right)}right]$
2.4)BM25的意义
- 增加了文档长度对相关性的影响。文档越短,相关性会比用TF计算的值更低,减少通过 [缩减页面内容量] 对相关性计算的干扰
- 增加了对TF极限值的限制,减少通过 [堆砌IDF高的词项] 对相关性计算的影响
- 只是影响而已,[缩减页面内容量] 和 [堆砌IDF高的词项] 还是有用的,注意尺度
- BM25同样作用于title