基于词典的敏感词过滤程序
程序敏感词词典使用Trie树存储, 提供HTTP API访问
go run main.go 127.0.0.1:8080
then visit http://127.0.0.1:8080/v1/query?q=文本内容
输入一段文本,返回敏感词及敏感词替换为*号后的文本
- Request: /v1/query
- Request Method: GET or POST
- Params:
Name | Type | Requried | Example | Desc. |
---|---|---|---|---|
q | string | yes | 需要检查的文本内容 |
- Response:
{
"code": 1,
"error": "", // 当code=0时,返回的错误消息
"keywords": ["k1","k2"], //敏感词
"text": "" //将敏感词替换为*号后的文本
}
添加一组敏感词
- Request: /v1/black_words
- Request Method: POST
- Params:
Name | Type | Requried | Example | Desc. |
---|---|---|---|---|
q | string | yes | 你大爷,走私 | 敏感词,多个之间与逗号相隔 |
- Response:
{
"code": 1,
"error": "", // 当code=0时,返回的错误消息
}
删除一组敏感词
- Request: /v1/black_words
- Request Method: DELETE
- Params:
Name | Type | Requried | Example | Desc. |
---|---|---|---|---|
q | string | yes | 你大爷,走私 | 敏感词,多个之间与逗号相隔 |
- Response:
{
"code": 1,
"error": "", // 当code=0时,返回的错误消息
}
- Request: /v1/black_words
- Request Method: GET
- Response:
陪睡
陪聊
- Request: /v1/white_prefix_words
- Request Method: POST
- Params:
Name | Type | Requried | Example | Desc. |
---|---|---|---|---|
q | string | yes | 路口,司机 | 词组,多个之间与逗号相隔 |
- Response:
{
"code": 1,
"error": "", // 当code=0时,返回的错误消息
}
- Request: /v1/white_suffix_words
- Request Method: POST
- Params:
Name | Type | Requried | Example | Desc. |
---|---|---|---|---|
q | string | yes | 路口,司机 | 词组,多个之间与逗号相隔 |
- Response:
{
"code": 1,
"error": "", // 当code=0时,返回的错误消息
}
- Request: /v1/white_prefix_words
- Request Method: GET
- Response:
路口
司机
- Request: /v1/white_suffix_words
- Request Method: GET
- Response:
路口
司机
敏感词词库在 dictionary 目录里 每个敏感词独立一行。
-
dictionary/black/default 默认载入的敏感词词典
-
dictionary/black/exclude 默认载入的敏感词词典中需要删除的字词 如black/default中有”情色“, 在black/exclude中也有”情色“, 则表示排除掉了”情色“这个词,不会过滤这个词了
-
dictionary/white 白名单
-
dictionary/white/prefix 白名单(前缀)
-
dictionary/white/suffix 白名单(后缀)
对于敏感词 "口交",”机8", 如果原文是 “xx路口交通事故”, ”阿司机82岁“ 之类的,会误判 故,需要建议白名单机制: 在prefix/default.txt中写 "司机", 在suffix/default.txt中写 "交通事故" 就能解决此问题