一个简单的基于DFA算法和Http的敏感词过滤服务;
TODO
- 词库文件发生变更后能自动加载
- 支持从数据库加载词库
- 支持客户端自定义需要检测哪个词库
- 更加丰富的API接口
go mod tidy && go build
启动
./sensitive-words-match -p 8088 -d ./data/
启动参数说明: -p 指定http服务的端口; -d 敏感词存储的路径,路径下所有的文件会自动遍历加载到内存,不支持二级目录;
http api /words/filter
client post 请求:
{
"text": "xdcvdfdsf fuck"
}
正常请求返回:
{
"code":200,
"msg":"success",
"data":{
"suggestion":"pass",
"desensitization":"Hello world, 世界你好"
}
}
curl Request demo
curl --location --request POST 'http://127.0.0.1:8088/words/filter' --header 'Content-Type: application/json' --data-raw '{
"text": "GOODO fxxk,"
}'
包含敏感词的请求返回
{
"code": 200,
"msg": "success",
"data": {
"suggestion": "block",
"sensitiveWords": [
"fuck"
],
"desensitization": "GOODO ****,。"
}
}