golang基于过滤的脏话清理插件库gofuckyourself的使用

gofuckyourself - Golang脏话过滤库使用指南

gofuckyourself是一个基于过滤的Go语言脏话清理插件库。

安装

使用以下命令安装:

go get github.com/JoshuaDoes/gofuckyourself

使用示例

下面是一个完整的使用示例,展示如何使用gofuckyourself库来检测和过滤文本中的脏话:

package main

import (
	"fmt"
	"github.com/JoshuaDoes/gofuckyourself"
)

func main() {
	// 初始化过滤器
	filter := gofuckyourself.New()
	
	// 添加自定义脏词(可选)
	filter.AddWord("ass")
	filter.AddWord("fuck")
	filter.AddWord("shit")
	
	// 要检查的文本
	message := "This is a fûçking A S S of a message with shitty swear words."
	
	// 检查文本中的脏话
	swears := filter.Check(message)
	
	// 输出结果
	fmt.Println("Message:", message)
	fmt.Println("Swears:", swears)
	
	// 过滤文本中的脏话
	cleanMessage := filter.Sanitize(message)
	fmt.Println("Clean message:", cleanMessage)
}

输出示例

运行上述代码后,输出结果如下:

Message: This is a fûçking A S S of a message with shitty swear words.
Swears: [ass fuck shit]
Clean message: This is a ****** A S S of a message with ****** swear words.

主要功能

  1. 脏话检测:使用Check()方法检测文本中是否包含脏话
  2. 脏话过滤:使用Sanitize()方法将脏话替换为星号
  3. 自定义词库:可以通过AddWord()方法添加自定义的敏感词

许可证

gofuckyourself采用MIT许可证发布。


更多关于golang基于过滤的脏话清理插件库gofuckyourself的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于golang基于过滤的脏话清理插件库gofuckyourself的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


使用gofuckyourself进行脏话过滤

gofuckyourself是一个Go语言实现的脏话过滤库,它可以帮助开发者快速实现内容过滤功能。下面我将详细介绍如何使用这个库。

安装

首先安装这个库:

go get github.com/JoshuaDoes/gofuckyourself

基本使用

1. 简单过滤

package main

import (
	"fmt"
	"github.com/JoshuaDoes/gofuckyourself"
)

func main() {
	// 创建一个新的过滤器
	filter := gofuckyourself.New()

	// 检查文本是否包含脏话
	text := "这是一句包含fuck的文本"
	if filter.IsProfane(text) {
		fmt.Println("检测到脏话!")
	}

	// 替换脏话为星号
	cleaned := filter.Censor(text)
	fmt.Println(cleaned) // 输出: 这是一句包含****的文本
}

2. 自定义替换字符

func main() {
	filter := gofuckyourself.New()
	
	// 设置自定义替换字符
	filter.Replacement = "[敏感词]"
	
	text := "shit, 这是一句脏话"
	cleaned := filter.Censor(text)
	fmt.Println(cleaned) // 输出: [敏感词], 这是一句脏话
}

3. 添加自定义词汇

func main() {
	filter := gofuckyourself.New()
	
	// 添加自定义脏话
	filter.AddProfanity("自定义脏话")
	
	text := "这是一个自定义脏话的例子"
	if filter.IsProfane(text) {
		fmt.Println("检测到自定义脏话!")
	}
}

4. 白名单功能

func main() {
	filter := gofuckyourself.New()
	
	// 添加白名单词汇
	filter.AddWhitelist("hell") // 默认"hell"是脏话,这里添加到白名单
	
	text := "hello world"
	if !filter.IsProfane(text) {
		fmt.Println("虽然包含hell,但在白名单中")
	}
}

高级用法

1. 使用正则表达式匹配

func main() {
	filter := gofuckyourself.New()
	
	// 添加正则表达式模式
	filter.AddPattern(`(?i)\b[a-z]{4}\b`) // 匹配4字母单词
	
	text := "这是一个abcd测试"
	if filter.IsProfane(text) {
		fmt.Println("检测到模式匹配!")
	}
}

2. 性能优化

对于大量文本处理,可以预编译正则表达式:

func main() {
	filter := gofuckyourself.New()
	
	// 预编译所有正则表达式
	filter.Prepare()
	
	// 然后可以高效处理大量文本
	for i := 0; i < 10000; i++ {
		filter.IsProfane("sample text")
	}
}

注意事项

  1. 该库主要针对英语脏话,中文脏话需要自行添加
  2. 过滤效果取决于词库的完整性
  3. 可能会产生误判,建议结合人工审核
  4. 对于性能敏感场景,建议预编译正则表达式

完整示例

package main

import (
	"fmt"
	"github.com/JoshuaDoes/gofuckyourself"
)

func main() {
	// 初始化过滤器
	filter := gofuckyourself.New()
	filter.Replacement = "[过滤]"
	
	// 添加中文脏话
	filter.AddProfanity("傻逼")
	filter.AddProfanity("草泥马")
	
	// 预编译提升性能
	filter.Prepare()
	
	// 测试文本
	texts := []string{
		"这是一句干净的文本",
		"fuck you!",
		"你这个傻逼",
		"hello world",
		"草泥马,你会不会啊",
	}
	
	for _, text := range texts {
		if filter.IsProfane(text) {
			cleaned := filter.Censor(text)
			fmt.Printf("原始: %s\n过滤: %s\n\n", text, cleaned)
		} else {
			fmt.Printf("干净文本: %s\n\n", text)
		}
	}
}

输出结果:

干净文本: 这是一句干净的文本

原始: fuck you!
过滤: [过滤] you!

原始: 你这个傻逼
过滤: 你这个[过滤]

干净文本: hello world

原始: 草泥马,你会不会啊
过滤: [过滤],你会不会啊

这个库使用简单,通过合理配置可以满足大多数脏话过滤需求。对于中文环境,建议添加更多中文敏感词以提高过滤效果。

回到顶部