KeyBert关键词提取 :原理、方法介绍、代码实践

article/2025/9/21 20:03:57

@创建于:20210708
@修改于:20210708, 20221104

文章目录

    • 1 概述
    • 2 方法介绍
      • 2.1 安装
      • 2.2 KeyBERT(model)
      • 2.3 extract_keywords参数介绍
    • 3、代码实践
      • 3.1 英文示例
      • 3.2 中文示例
    • 4、加载不同的模型库
      • 4.1 SentenceTransformers模型调用
      • 4.2 Transformers模型调用
      • 4.3 Flair模型调用
    • 5、ZhKeyBERT的使用
      • 5.1 安装
      • 5.2 使用
    • 6、参考链接

1 概述

KeyBERT 是一种最小且易于使用的关键字提取技术,它利用 BERT 嵌入来创建与文档最相似的关键字和关键短语。可以在此处找到相应的媒

虽然已经有很多方法可用于关键字生成(例如,Rake、YAKE!、TF-IDF 等),但我想创建一个非常基本但功能强大的方法来提取关键字和关键短语。这就是 KeyBERT 的用武之地!它使用 BERT 嵌入和简单余弦相似度来查找文档中与文档本身最相似的子短语。

首先,使用 BERT 提取文档嵌入以获得文档级表示。然后,然后使用词嵌入模型来提取N-gram 词/短语。最后,使用余弦相似度来找到与文档最相似的单词/短语。然后可以将最相似的词识别为最能描述整个文档的词。

KeyBERT 绝不是独一无二的,它是作为创建关键字和关键短语的一种快速简便的方法而创建的。尽管有很多优秀的论文和解决方案使用了 BERT 嵌入(例如 BERT-keyphrase-extraction, BERT-Keyword-Extractor ),但我找不到一个基于 BERT 的解决方案,它不需要从头开始训练并且可以用于初学者(如我错了请纠正我!)。因此,目标是 pip install keybert 和最多使用 3 行代码。

2 方法介绍

2.1 安装

pip install keybert

2.2 KeyBERT(model)

# 该模型只有一个参数,model,默认为 'paraphrase-MiniLM-L6-v2'
__init__(self, model='paraphrase-MiniLM-L6-v2')
# 可以自己设定具体的模型名称
kw_model = KeyBERT(model="paraphrase-multilingual-MiniLM-L12-v2")

KeyBERT的参数只有一个,即预训练好的模型。

KeyBERT 0.4.0中,model默认的是 paraphrase-MiniLM-L6-v2,
KeyBERT 0.6.0中,model默认的是 all-MiniLM-L6-v2

Transformers库中的模型,在 keybert==0.6.0版本支持,0.4.0中不支持。

    def __init__(self, model="all-MiniLM-L6-v2"):"""KeyBERT initializationArguments:model: Use a custom embedding model.The following backends are currently supported:* SentenceTransformers* 🤗 Transformers* Flair* Spacy* Gensim* USE (TF-Hub)You can also pass in a string that points to one of the followingsentence-transformers models:* https://www.sbert.net/docs/pretrained_models.html"""

2.3 extract_keywords参数介绍

extract_keywords(self,docs: Union[str, List[str]],candidates: List[str] = None,keyphrase_ngram_range: Tuple[int, int] = (1, 1),stop_words: Union[str, List[str]] = 'english',top_n: int = 5,min_df: int = 1,use_maxsum: bool = False,use_mmr: bool = False,diversity: float = 0.5,nr_candidates: int = 20,vectorizer: CountVectorizer = None,highlight: bool = False)

提示
建议迭代单个文档,因为它们需要最少的内存。即使速度较慢,您也不太可能遇到内存错误。

多个文件
有一个选项可以为多个文档提取关键字,这比提取多个单个文档要快。但是,这种方法假设您可以将词汇表中所有单词的词嵌入保留在内存中,这可能会很麻烦。如果您的硬件有限,我建议不要使用此选项并简单地迭代文档。

参数

  • docs:要提取关键字/关键短语的文档
  • candidates:要使用的候选关键字/关键短语,而不是从文档中提取它们
  • keyphrase_ngram_range:提取的关键字/关键短语的长度(以字为单位)
  • stop_words:要从文档中删除的停用词
  • top_n:返回前 n 个关键字/关键短语
  • min_df:如果需要提取多个文档的关键字,则一个单词在所有文档中的最小文档频率
  • use_maxsum: 是否使用 Max Sum Similarity 来选择keywords/keyphrases
  • use_mmr:是否使用最大边际相关性(MMR)进行关键字/关键短语的选择
  • diversity:如果 use_mmr 设置为 True,结果的多样性在 0 和 1 之间
  • nr_candidates:如果 use_maxsum 设置为 True,要考虑的候选数
  • vectorizer:从 scikit-learn 传入你自己的 CountVectorizer
  • highlight:是否打印文档并突出显示其关键字/关键短语。注意:如果传递了多个文档,这将不起作用。

返回
关键字:文档的前 n 个关键字及其各自的距离到输入文件

3、代码实践

3.1 英文示例

from keybert import KeyBERTdoc = """Supervised learning is the machine learning task of learning a function thatmaps an input to an output based on example input-output pairs. It infers afunction from labeled training data consisting of a set of training examples.In supervised learning, each example is a pair consisting of an input object(typically a vector) and a desired output value (also called the supervisory signal). A supervised learning algorithm analyzes the training data and produces an inferred function, which can be used for mapping new examples. An optimal scenario will allow for the algorithm to correctly determine the class labels for unseen instances. This requires the learning algorithm to generalize from the training data to unseen situations in a 'reasonable' way (see inductive bias)."""kw_model = KeyBERT(model='paraphrase-MiniLM-L6-v2')print("naive ...")
keywords = kw_model.extract_keywords(doc)
print(keywords)print("\nkeyphrase_ngram_range ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 2), stop_words=None)
print(keywords)print("\nhighlight ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 2), highlight=True)
print(keywords)# 为了使结果多样化,我们将 2 x top_n 与文档最相似的词/短语。
# 然后,我们从 2 x top_n 单词中取出所有 top_n 组合,并通过余弦相似度提取彼此最不相似的组合。
print("\nuse_maxsum ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 3), stop_words='english',use_maxsum=True, nr_candidates=20, top_n=5)
print(keywords)# 为了使结果多样化,我们可以使用最大边界相关算法(MMR)
# 来创建同样基于余弦相似度的关键字/关键短语。 具有高度多样性的结果:
print("\nhight diversity ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(3, 3), stop_words='english',use_mmr=True, diversity=0.7)
print(keywords)# 低多样性的结果
print("\nlow diversity ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(3, 3), stop_words='english',use_mmr=True, diversity=0.2)
print(keywords)

输出

naive ...
[('supervised', 0.5864), ('learning', 0.4431), ('analyzes', 0.3552), ('algorithm', 0.3514), ('training', 0.3099)]keyphrase_ngram_range ...
[('supervised learning', 0.7035), ('in supervised', 0.6108), ('supervised', 0.5864), ('machine learning', 0.5707), ('learning algorithm', 0.525)]highlight ...
Supervised learning the machine learning of learning a function that maps an 
input to an output based on example input-output pairs. It infers a function 
from labeled training data consisting of a set of training examples. In 
supervised learning, each example is a pair consisting of an input object 
(typically a vector) and a desired output value (also called the supervisory 
signal). A supervised learning analyzes the training data and produces an 
inferred function, which can be used for mapping new examples. An optimal 
scenario will allow for the algorithm to correctly determine the class labels 
for unseen instances. This requires the learning algorithm to generalize from 
the training data to unseen situations in a 'reasonable' way (see inductive 
bias).
[('supervised learning', 0.7035), ('examples supervised', 0.5993), ('supervised', 0.5864), ('machine learning', 0.5707), ('learning machine', 0.5437)]use_maxsum ...
[('algorithm generalize training', 0.4019), ('learning machine learning', 0.4859), ('learning function', 0.3978), ('supervised', 0.4374), ('examples supervised', 0.4266)]hight diversity ...
[('supervised learning example', 0.7558), ('input output pairs', 0.1015), ('object typically vector', 0.2502), ('situations reasonable way', 0.1763), ('determine class labels', 0.2358)]low diversity ...
[('supervised learning example', 0.7558), ('supervised learning machine', 0.6989), ('examples supervised learning', 0.7041), ('supervised learning algorithm', 0.6769), ('signal supervised learning', 0.6209)]

3.2 中文示例

from keybert import KeyBERT
import jieba# 中文测试
doc = "刚刚,理论计算机科学家、UT Austin 教授、量子计算先驱 Scott Aaronson 因其「对量子计算的开创性贡献」被授予 2020 年度 ACM 计算奖。在获奖公告中,ACM 表示:「量子计算的意义在于利用量子物理学定律解决传统计算机无法解决或无法在合理时间内解决的难题。Aaronson 的研究展示了计算复杂性理论为量子物理学带来的新视角,并清晰地界定了量子计算机能做什么以及不能做什么。他在推动量子优越性概念发展的过程起到了重要作用,奠定了许多量子优越性实验的理论基础。这些实验最终证明量子计算机可以提供指数级的加速,而无需事先构建完整的容错量子计算机。」 ACM 主席 Gabriele Kotsis 表示:「几乎没有什么技术拥有和量子计算一样的潜力。尽管处于职业生涯的早期,但 Scott Aaronson 因其贡献的广度和深度备受同事推崇。他的研究指导了这一新领域的发展,阐明了它作为领先教育者和卓越传播者的可能性。值得关注的是,他的贡献不仅限于量子计算,同时也在诸如计算复杂性理论和物理学等领域产生了重大影响。」"
doc = " ".join(jieba.cut(doc))
kw_model = KeyBERT(model='paraphrase-multilingual-MiniLM-L12-v2')print("naive ...")
keywords = kw_model.extract_keywords(doc)
print(keywords)print("\nkeyphrase_ngram_range ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 2), stop_words=None)
print(keywords)print("\nhighlight ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 2), highlight=True)
print(keywords)# 为了使结果多样化,我们将 2 x top_n 与文档最相似的词/短语。
# 然后,我们从 2 x top_n 单词中取出所有 top_n 组合,并通过余弦相似度提取彼此最不相似的组合。
print("\nuse_maxsum ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(1, 3), stop_words='english',use_maxsum=True, nr_candidates=20, top_n=5)
print(keywords)# 为了使结果多样化,我们可以使用最大边界相关算法(MMR)
# 来创建同样基于余弦相似度的关键字/关键短语。 具有高度多样性的结果:
print("\nhight diversity ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(3, 3), stop_words='english',use_mmr=True, diversity=0.7)
print(keywords)# 低多样性的结果
print("\nlow diversity ...")
keywords = kw_model.extract_keywords(doc, keyphrase_ngram_range=(3, 3), stop_words='english',use_mmr=True, diversity=0.2)
print(keywords)

输出

naive ...
[('量子', 0.6386), ('科学家', 0.4278), ('物理学', 0.421), ('理论', 0.3901), ('计算', 0.3562)]keyphrase_ngram_range ...
[('容错 量子', 0.7064), ('教授 量子', 0.6979), ('量子 计算', 0.6839), ('量子 物理学', 0.6801), ('量子 计算机', 0.6784)]highlight ...
刚刚 , 理论 计算机 科学家 、 UT Austin 教授 、 量子 计算 Scott Aaronson 因 其 
「 对 量子 计算 开创性 贡献 」 被 授予 2020 年度 ACM 计算 奖 。 在 获奖 公告 中
, ACM 表示 : 「 量子 计算 意义 在于 利用 量子 物理学 解决 传统 计算机无法 
解决 或 无法 在 合理 时间 内 解决 的 难题 。 Aaronson 的 研究 展示 了 计算 
复杂性 理论 为 量子 物理学 的 新视角 , 并 清晰 地 界定 了 量子 计算机 做 什么 
以及 不能 做 什么 。 他 在 推动 量子 优越性 概念 发展 的 过程 起到 了 重要 作用
, 奠定 了 许多 量子 优越性 实验 的 理论 基础 。 这些 实验 最终 证明 量子 
计算机 提供 指数 级 的 加速 , 而 无需 事先 构建 完整 的 容错 量子 。 」 ACM 
主席 Gabriele Kotsis 表示 : 「 几乎 没有 什么 技术 拥有 和 量子 计算 的 潜力 
。 尽管 处于 职业生涯 的 早期 , 但 Scott Aaronson 因 其 贡献 的 广度 和 深度 
备受 同事 推崇 。 他 的 研究 指导 了 这 一新 领域 的 发展 , 阐明 了 它 作为 
领先 教育者 和 卓越 传播者 的 可能性 。 值得 关注 的 是 , 他 的 贡献 不仅 限于
量子 计算 同时 也 在 诸如 计算 复杂性 理论 和 物理学 等 领域 产生 了 重大 影响 
。 」
[('容错 量子', 0.7064), ('教授 量子', 0.6979), ('量子 计算', 0.6839), ('量子 物理学', 0.6801), ('量子 计算机', 0.6784)]use_maxsum ...
[('限于 量子 计算', 0.6529), ('aaronson 量子 计算', 0.349), ('austin 教授 量子', 0.3982), ('量子 计算机 acm', 0.4045), ('容错 量子 计算机', 0.4695)]hight diversity ...
[('教授 量子 计算', 0.7387), ('传统 计算机无法 解决', 0.3671), ('2020 年度 acm', 0.3552), ('解决 难题 aaronson', 0.3438), ('加速 无需 事先', 0.1518)]low diversity ...
[('教授 量子 计算', 0.7387), ('量子 计算机 acm', 0.7276), ('容错 量子 计算机', 0.7385), ('aaronson 量子 计算', 0.7096), ('austin 教授 量子', 0.7272)]

hilight怎么才能显示作用呢?

4、加载不同的模型库

4.1 SentenceTransformers模型调用

SentenceTransformers包含一系列模型,具体可参考Pretrained Models页面中的模型内容。

模型的使用方法很简单:

from sentence_transformers import SentenceTransformer
model = SentenceTransformer(model='model_name')

model_name 从下面的名称中选择。

  • 众多模型中,使用 paraphrase-mpnet-base-v2 以获得最佳质量,如果您想要高质量的快速模型,请使用 paraphrase-MiniLM-L6-v2。
  • 建议对英文文档使用“paraphrase-MiniLM-L6-v2”,或者对多语言文档或任何其他语言使用“paraphrase-multilingual-MiniLM-L12-v2”。

主要的模型名字如下图所示。
在这里插入图片描述

4.2 Transformers模型调用

直接使用Transformers库中的模型名称,不需要通过 from transformers import BertModel 加载。

kw_model = KeyBERT(model="uer/chinese_roberta_L-2_H-128")# 在windows 10中,自动下载到 C:\Users\chen_\.cache\torch\sentence_transformers\uer_chinese_roberta_L-2_H-128中,
# 把整这个文件拷贝到本地目录,然后采用下面的方法加载模型import pathlib
cur_folder = pathlib.Path(__file__).parent.resolve()
model = f"{cur_folder}/uer_chinese_roberta_L-2_H-128"
kw_model = KeyBERT(model=model)

4.3 Flair模型调用

Flair 允许您选择几乎所有公开可用的嵌入模型。请从这里查找,模型太多,请按照自己需要选择。

Flair 的使用方式如下:

from keybert import KeyBERT
from flair.embeddings import TransformerDocumentEmbeddingsroberta = TransformerDocumentEmbeddings('roberta-base')
kw_model = KeyBERT(model=roberta)

5、ZhKeyBERT的使用

5.1 安装

git clone https://github.com/deepdialog/ZhKeyBERT
cd ZhKeyBERT
python setup.py install --user

5.2 使用

from zhkeybert import KeyBERT, extract_kws_zhdocs = """时值10月25日抗美援朝纪念日,《长津湖》片方发布了“纪念中国人民志愿军抗美援朝出国作战71周年特别短片”,再次向伟大的志愿军致敬!
电影《长津湖》全情全景地还原了71年前抗美援朝战场上那场史诗战役,志愿军奋不顾身的英勇精神令观众感叹:“岁月峥嵘英雄不灭,丹心铁骨军魂永存!”影片上映以来票房屡创新高,目前突破53亿元,暂列中国影史票房总榜第三名。
值得一提的是,这部影片的很多主创或有军人的血脉,或有当兵的经历,或者家人是军人。提起这些他们也充满自豪,影片总监制黄建新称:“当兵以后会有一种特别能坚持的劲儿。”饰演雷公的胡军透露:“我父亲曾经参加过抗美援朝,还得了一个三等功。”影片历史顾问王树增表示:“我当了五十多年的兵,我的老部队就是上甘岭上下来的,那些老兵都是我的偶像。”
“身先士卒卫华夏家国,血战无畏护山河无恙。”片中饰演七连连长伍千里的吴京感叹:“要永远记住这些先烈们,他们给我们带来今天的和平。感谢他们的付出,才让我们有今天的幸福生活。”饰演新兵伍万里的易烊千玺表示:“战争的残酷、碾压式的伤害,其实我们现在的年轻人几乎很难能体会到,希望大家看完电影后能明白,是那些先辈们的牺牲奉献,换来了我们的现在。”
影片对战争群像的恢弘呈现,对个体命运的深切关怀,令许多观众无法控制自己的眼泪,观众称:“当看到影片中的惊险战斗场面,看到英雄们壮怀激烈的拼杀,为国捐躯的英勇无畏和无悔付出,我明白了为什么说今天的幸福生活来之不易。”(记者 王金跃)"""
kw_model = KeyBERT(model='paraphrase-multilingual-MiniLM-L12-v2')
extract_kws_zh(docs, kw_model)

具体使用,请一步到位下面的官方链接。

  • deepdialog/ZhKeyBERT
  • zhkeybert 0.1.2

6、参考链接

  • keybert 0.4.0 Project description
  • Keyword Extraction with BERT
  • 【关于 KeyBERT 】 那些你不知道的事
  • deepdialog/ZhKeyBERT
  • zhkeybert 0.1.2
  • keybert做中文文本关键词提取

http://chatgpt.dhexx.cn/article/V76VlhyO.shtml

相关文章

常用的Python3关键词提取方法

诸神缄默不语-个人CSDN博文目录 本文将介绍一些简单的使用Python3实现关键词提取的算法。目前仅整理了一些比较简单的方法,如后期将了解更多、更前沿的算法,会继续更新本文。 文章目录 1. 基于TF-IDF算法的中文关键词提取:使用jieba包实现2.…

NLP——关键词提取

NLP——关键词提取 文章目录 NLP——关键词提取前言一、TF-IDF算法1. 基本原理2. 算法改进 二、TextRank算法1. 基本原理2. PageRank算法3. TextRank算法4. TextRank算法在关键词提取的应用 三、LSA/LSI/LDA算法1. LSA/LSI算法2. LDA算法 四、实战练习 前言 关键词提取分为有监…

文本关键词提取:ansj

背景 因为文本内容里面,需要提取出关键词给到seo作关键词。 同时内容是中文的,需要找个对应的中文分词和提取工具。 ansj 根据官方介绍,感觉还是比较厉害的样子。 官方说明: 这是一个基于n-GramCRFHMM的中文分词的java实现。…

[转]NLP关键词提取方法总结及实现

最近在研究关键词的提取算法,看到一篇关于关键词提取算法的总结,比较全面了,在这里分享给大家,希望能够帮助同学们~ 原文链接:https://blog.nowcoder.net/n/ac016f8256f54c4b8c8784e99bccf28a (ps:作者同意…

文本中的关键词提取方法

目录 1. TF-IDF(Term Frequency-Inverse Document Frequency)算法: 2. TextRank算法: 3. LDA(Latent Dirichlet Allocation)算法: 4. RAKE(Rapid Automatic Keyword Extraction&…

关键词抽取方法

1、关键词提取 为了方便用户快速了解文章的中心主题,会抽取文章的一些中心词来表达文章的中心思想。关键词抽取就是通过一定的方法抽取出能表达文章的中心主题的一系列方法。 2、关键词抽取方法分类 2.1、有监督无监督抽取方法 无监督关键词提取方法主要有三类&…

自然语言处理之——关键词提取(一)

一. 摘要 本次的分享中,我们将了解目前较常用的关键词提取技术。关键词是代表文章重要内容的一组词。在文本的分类聚类、自动摘要等方面有着重要的作用。还可以让人们更直观便捷的浏览文本信息。在现实的常用文本中是不包含关键词的,所以自动…

记一次 watchbog 挖矿病毒的清理

突然发现服务器上的mysql数据库连接不上遂使用xshell连接服务器查看进程发现被一个叫watchbog的进程沾满了cpu 通过查阅资料发现该病毒通过定时器 不断下载挖矿程序脚本 先清除 crontab中不属于自己的内容 kill掉所有的watchbog进程 bog 不是dog 查找到服务器上所有的…

手工清除Windows服务器上的Steam挖矿病毒:HackTool/CoinMiner.a及Trojan/Miner.ac

手工清除Windows服务器上的Steam挖矿病毒:HackTool/CoinMiner.a及Trojan/Miner.ac 起因: 最近服务器群里的两台Windows虚拟服务器上的CPU占用率超级高(已经达到了91%),严重影响公司程序的正常运行,但是又不能安装杀毒软…

2019上半年恶意挖矿趋势报告

上一期,深信服安全团队对勒索病毒进行2019半年度总结,主要盘点了高发勒索家族、受灾区域分布、勒索病毒发展走向等。本期深信服安全团队对另一流行病毒类型——挖矿木马进行深入分析,给大家揭秘2019上半年挖矿木马的所作所为。 一、2019上半…

服务器被加了挖矿代码

2019独角兽企业重金招聘Python工程师标准>>> 平时很少使用的一台服务器,24G内存,在上面搭建了Hadoop环境。 突然发现负载好高,top看了一下,一个java进程占用了很多cpu 疑似国内来源的“8220挖矿团伙”追踪溯源分析 挖矿…

威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复...

2019独角兽企业重金招聘Python工程师标准>>> 背景 近日,阿里云安全监测到watchbog挖矿木马使用新曝光的Nexus Repository Manager 3远程代码执行漏洞(CVE-2019-7238)进行攻击并挖矿的事件。 值得注意的是,这一攻击开始的时间(2月2…

威胁快报|ProtonMiner挖矿蠕虫扩大攻击面,加速传播

2019独角兽企业重金招聘Python工程师标准>>> 背景 近日,阿里云安全监测到一种挖矿蠕虫,正在互联网上加速传播。阿里云安全根据它使用ProtonMail邮箱地址作为矿池用户名的行为,将其命名为ProtonMiner。据分析,这种蠕虫与…

记一次mykings暗云挖矿木马的排查与解决

微信公众号:运维开发故事,作者:wanger 起因 之前有一台做测试的Windows server2012阿里云服务器的防火墙关掉之后开机总是启动,想了很多办法也没找到原因就提了工单问了售后,结果售后也没发现问题,并提示我…

应急响应流程以及入侵排查

归纳转载于: 应急响应的整体思路和基本流程 - FreeBuf网络安全行业门户不管是普通的企业,还是专业的安全厂商,都不可避免的需要掌握和运用好信息安全的知识、技能,以便在需要的时候,能够御敌千里。https://www.freebu…

阿里云服务器被挖矿程序minerd入侵的终极解决办法

突然发现阿里云服务器CPU很高,几乎达到100%,执行 top c 一看,吓一跳,结果如下: 3798 root 20 0 386m 7852 1272 S 300.0 0.1 4355:11 /tmp/AnXqV -B -a cryptonight -o stratumtcp://xmr.crypto-pool.fr:44…

如何更有效的消灭watchdogs挖矿病毒?华为云DCS Redis为您支招

2019独角兽企业重金招聘Python工程师标准>>> 漏洞概述 近日,互联网出现watchdogs挖矿病毒,攻击者可以利用Redis未授权访问漏洞入侵服务器,通过内外网扫描感染更多机器。被感染的主机出现 crontab 任务异常、系统文件被删除、CPU 异…

2t3ik与ddgs挖矿病毒处理

为什么80%的码农都做不了架构师?>>> http://ju.outofmemory.cn/entry/351669 转载于:https://my.oschina.net/lgfei/blog/1809898

Linux 服务器上有挖矿病毒 kdevtmpfsi 如何处理?

本文转载自:https://my.oschina.net/u/4437985/blog/3168526 侵删 症状表现 服务器CPU资源使用一直处于100%的状态,通过 top 命令查看,发现可疑进程 kdevtmpfsi。通过 google搜索,发现这是挖矿病毒。 排查方法 首先&#xf…

[问题已处理]-阿里云与本地机房中挖矿病毒处理,又又又中毒了

导语:被挖矿的现象是cpu异常的高。正常服务被系统杀掉。 先是发现线上业务挂了。紧接着发现本地机房也挂了。判断病毒应该是由本地机房的跳板机或者开放的端口,或dubbo框架漏洞进来的 基本判断是confluence最新的漏洞导致的 http://www.hackdig.com/0…