基于profanity-check实现不文明用语识别和斗殴行为预测

一、语音识别不文明用语

1.1、语言检查库profanity-check

这是一个快速、强大的Python库,用于检测字符串中的不雅或冒犯性语言。更多关于profanity-check如何构建以及为何要构建它的信息可在这篇博客文章中找到。

1.2、测试模型

运行环境:

python                   3.8.19

jieba                    0.42.1

numpy                    1.20.0

scikit-learn             0.22.2

profanity-check          1.0.3

这是一个简单的示例

import joblib
from profanity_check import predict_prob
import jieba
# 自定义的中文黑名单词语
chinese_blacklist = {'卧槽', '屌', 'TM'}
def contains_profanity(text, chinese_blacklist):
    # 使用jieba进行中文分词
    words = set(jieba.lcut(text))
    # 检查分词后的词语是否在自定义黑名单中
    if any(word in chinese_blacklist for word in words):
        return True
    # 使用profanity-check库进行中文不文明用语检测
    try:
        prediction = predict_prob([text])[0]
        if prediction > 0.5:  # 使用预测概率来判断是否含有不文明用语
            return True
    except Exception as e:
        print(f"Error predicting profanity in text: {text}")
        print(e)
    return False
# 测试文本
texts = [
    "卧槽,什么屌玩意这么贵。",
    "嫌贵你TM不买。",
    "不买了,你家卖的真贵"
]
for text in texts:
    if contains_profanity(text, chinese_blacklist):
        print(f"'{text}' 此句有不文明用语")
    else:
        print(f"'{text}' 此句用语文明")

结果:根据结果可以看到输入的三段话被准确的识别出来了

1.3、读取自定义的中文黑名单词语

创建自定义的中文黑名单txt文件,在正式环境中应当放置在MySQL服务器上构建自定义中文黑名单库

uncivilized_words.txt

以下是一个简单的示例

import joblib
from profanity_check import predict_prob
import jieba
# 从文件读取中文黑名单词语
def load_chinese_blacklist(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        blacklist = set([word.strip() for word in file.readlines()])
    return blacklist
def contains_profanity(text, chinese_blacklist):
    # 使用jieba进行中文分词
    words = set(jieba.lcut(text))
    # 检查分词后的词语是否在自定义黑名单中
    if any(word in chinese_blacklist for word in words):
        return True
    # 使用profanity-check库进行中文不文明用语检测
    try:
        prediction = predict_prob([text])[0]
        if prediction > 0.5:  # 使用预测概率来判断是否含有不文明用语
            return True
    except Exception as e:
        print(f"Error predicting profanity in text: {text}")
        print(e)
    return False
# 从文件加载自定义的中文黑名单词语
chinese_blacklist = load_chinese_blacklist('/home/myj/uncivilized_words.txt')
# 测试文本
texts = [
    "卧槽,什么屌玩意这么贵。",
    "嫌贵你TM不买。",
    "不买了,你家卖的真贵"
]
for text in texts:
    if contains_p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君子如兰呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值