大模型输出文本的敏感词过滤算法
在大模型应用中,确保输出内容的安全性是安全工程师的重要职责。本文将介绍一种基于规则和机器学习相结合的敏感词过滤算法实现方法。
算法原理
敏感词过滤主要通过以下两个维度:
- 静态规则匹配:使用正则表达式匹配已知敏感词
- 动态语义分析:通过词向量相似度计算判断语义相关性
实现步骤
第一步:构建敏感词库
import re
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 敏感词库示例
sensitive_words = [
'暴力', '色情', '赌博', '诈骗', '非法', '危险'
]
# 构建正则表达式模式
pattern = '|'.join(sensitive_words)
第二步:基础过滤函数
def filter_sensitive_text(text):
# 基础敏感词匹配
if re.search(pattern, text):
return True
return False
第三步:语义相似度增强
# 使用TF-IDF向量化处理
vectorizer = TfidfVectorizer()
sensitive_vectors = vectorizer.fit_transform(sensitive_words)
text_vector = vectorizer.transform([text])
# 计算余弦相似度
similarity = cosine_similarity(text_vector, sensitive_vectors)[0]
if max(similarity) > 0.8: # 阈值可调整
return True
安全测试建议
- 通过构造边界测试用例验证算法鲁棒性
- 检查是否存在绕过机制
- 对比不同过滤策略的准确率和召回率
该方法为安全工程师提供了可复现的过滤框架,适用于大模型输出内容的安全审查场景。

讨论