当前位置:首页 >>宝塔面板使用教程 > 正文

关键词如何按照相似度去重?文本内容如何删除类似的关键词?

百度: 已收录 | 发布日期:2023-05-11 6:06:03 | 浏览:88 次

作为网站的seo人员可能很多时候我们都需要采集一些长尾词来给自己的网站获取更多的流量, 但是我们在拿到一份关键词的时候发现很多类似的关键词:

关键词如何按照相似度去重? 文本内容如何删除类似的关键词?

比如:

  1. 智能pos机小票抬头修改怎么弄的
  2. 智能pos机小票抬头修改怎么弄出来
  3. 智能pos机小票抬头修改怎么弄
  4. 智能pos机小票抬头修改怎么操作的
  5. 智能pos机小票抬头修改怎么操作
  6. 智能pos机小票抬头修改不了怎么回事
  7. 智能pos机小票抬头修改不了怎么办
  8. 智能pos机小票抬头修改不了

上面的关键词并不重复, 就是相似度比较高, 那么这个时候我们怎么才能删除一些相似度比较高的词? 其实也是比较的简单, 我们需要使用python 来实现, 如果你没有安装python环境, 那么我们需要先安装.

import Levenshtein

# 相似度阈值, 即两个文本相似度大于等于该值则进行去重操作
similarity_threshold = 0.8

# 读取文本文件中的所有行
with open('text.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()

# 对文本列表进行去重
for i in range(len(lines)):
for j in range(i+1, len(lines)):
similarity = Levenshtein.ratio(lines[i], lines[j]) # 计算文本相似度
if similarity >= similarity_threshold:
lines[j] = '' # 将相似文本从列表中删除

# 将去重后的文本列表重新写入到同一文本文件中
with open('text.txt', 'w', encoding='utf-8') as f:
for line in lines:
if line != '':
f.write(line)

这里的话我们需要新建一个text.txt文件, 然后把上面的代码复制到py的的文本里面, 然后运行就会发现我们保存的数据如下:

  1. 智能pos机小票抬头修改怎么弄的
  2. 智能pos机小票抬头修改怎么弄出来
  3. 智能pos机小票抬头修改怎么操作的
  4. 智能pos机小票抬头修改不了怎么回事
  5. 智能pos机小票抬头修改不了

这个时候我们在写文章的时候就可以写的关键词就不会重复率太高了. 当然你数据关键词比较多的时候处理起来可能需要等待一段时间.

上面的代码是什么意思? 可能很多小伙伴看不明白, 这里卡卡哥详细的说明下:

  1. 导入 Levenshtein 模块, 该模块是用于计算文本相似度的 Python 库.
  2. 设置文本相似度阈值(similarity_threshold), 即两个文本相似度大于等于该值则进行去重操作.
  3. 使用 open() 函数打开一个名为 text.txt 的文本文件, 以读取该文件中的所有行, 并将它们存储到一个列表(lines)中.
  4. 遍历文本列表, 对于每一个文本, 遍历该文本之后的所有文本并计算其与当前文本的相似度(使用 Levenshtein.ratio() 函数). 如果两个文本的相似度大于等于相似度阈值, 则将后一个文本从列表中删除.
  5. 将去重后的文本列表重新写入到名为 text22.txt 的文本文件中, 以存储去重后的文本内容.

具体每行代码的语义如下:

  1. import Levenshtein:导入 Levenshtein 模块.
  2. similarity_threshold = 0.9:设置文本相似度阈值为 0.9.
  3. with open(‘./text.txt’, ‘r’, encoding=’utf-8′) as f::使用 open() 函数打开名为 text.txt 的文本文件, 以只读模式打开, 并将其赋值给变量 f.
  4. lines = f.readlines():读取 f 文件中的所有行, 并将它们存储到一个列表(lines)中.
  5. for i in range(len(lines))::遍历文本列表 lines 中的每一项, 用变量 i 来表示当前遍历到的文本的索引值.
  6. for j in range(i+1, len(lines))::遍历文本列表 lines 中当前文本之后的所有文本, 用变量 j 来表示当前遍历到的文本的索引值.
  7. similarity = Levenshtein.ratio(lines[i], lines[j]):计算当前两个文本 lines[i] 和 lines[j] 之间的相似度, 并将结果赋值给变量 similarity.
  8. if similarity >= similarity_threshold::如果当前两个文本的相似度大于等于相似度阈值, 则执行下面的代码.
  9. lines[j] = ”:将后一个文本从列表 lines 中删除.
  10. with open(‘./text22.txt’, ‘w’, encoding=’utf-8′) as f::使用 open() 函数打开名为 text22.txt 的文本文件, 以写入模式打开, 并将其赋值给变量 f.
  11. for line in lines::遍历去重后的文本列表 lines 中的每一项.
  12. if line != ”::如果当前遍历到的文本不为空(即没有被删除),

99%的人还阅读了:

版权声明:本文由作者:卡卡哥服务器教程网 原创创作,本站内容不允许转载,如发现转载必追究法律责任!! 本文链接:https://yunfuwuqi.chinahzx.cn/baota/442.html
本文标签: