From 418f8f6666a9d6f4aeb698a8598407aba9f39194 Mon Sep 17 00:00:00 2001 From: kevin Date: Wed, 19 Aug 2020 17:58:57 +0800 Subject: [PATCH] add keywords utility example --- doc/images/trie.png | Bin 0 -> 93029 bytes doc/keywords.md | 61 +++++++++++++++++++++++++++++ example/stringx/filter/filter.go | 21 ++++++++++ example/stringx/replace/replace.go | 15 +++++++ readme.md | 3 +- 5 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 doc/images/trie.png create mode 100644 doc/keywords.md create mode 100644 example/stringx/filter/filter.go create mode 100644 example/stringx/replace/replace.go diff --git a/doc/images/trie.png b/doc/images/trie.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcd2294577fdf4b35ff543a61d5e60e9bb08dc0 GIT binary patch literal 93029 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

fVqN1jXkdD! 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 K7h7~07ye)50lnq` literal 0 HcmV?d00001 diff --git a/doc/keywords.md b/doc/keywords.md new file mode 100644 index 00000000..5c8a0db9 --- /dev/null +++ b/doc/keywords.md @@ -0,0 +1,61 @@ +# 高效的关键词替换和敏感词过滤工具 + +## 1. 算法介绍 + +利用高效的Trie树建立关键词树,如下图所示,然后依次查找字符串中的相连字符是否形成树的一条路径 + +![trie](images/trie.png =250x250) + +发现掘金上[这篇文章](https://juejin.im/post/6844903750490914829)写的比较详细,可以一读,具体原理在此不详述。 + +## 2. 关键词替换 + +```go + replacer := stringx.NewReplacer(map[string]string{ + "PHP": "PPT", + "世界上": "吹牛", + }) + fmt.Println(replacer.Replace("PHP是世界上最好的语言!")) +``` + +可以得到: +``` +PPT是吹牛最好的语言! +``` + +示例代码见`example/stringx/replace/replace.go` + +## 3. 敏感词过滤 + +```go + filter := stringx.NewTrie([]string{ + "AV演员", + "苍井空", + "AV", + "日本AV女优", + "AV演员色情", + }, stringx.WithMask('?')) + safe, keywords, found := filter.Filter("日本AV演员兼电视、电影演员。苍井空AV女优是xx出道, 日本AV女优们最精彩的表演是AV演员色情表演") + fmt.Println(safe) + fmt.Println(keywords) + fmt.Println(found) +``` + +可以得到: + +``` +日本????兼电视、电影演员。?????女优是xx出道, ??????们最精彩的表演是??????表演 +[苍井空 日本AV女优 AV演员色情 AV AV演员] +true +``` + +示例代码见`example/stringx/filter/filter.go` + +## 4. Benchmark + +``` +| Sentences | Keywords | Regex | Go-Zero | +|-----------|----------|----------|----------| +| 10000 | 10000 | 16min10s | 27.2ms +``` + diff --git a/example/stringx/filter/filter.go b/example/stringx/filter/filter.go new file mode 100644 index 00000000..9d4d6647 --- /dev/null +++ b/example/stringx/filter/filter.go @@ -0,0 +1,21 @@ +package main + +import ( + "fmt" + + "github.com/tal-tech/go-zero/core/stringx" +) + +func main() { + filter := stringx.NewTrie([]string{ + "AV演员", + "苍井空", + "AV", + "日本AV女优", + "AV演员色情", + }, stringx.WithMask('?')) + safe, keywords, found := filter.Filter("日本AV演员兼电视、电影演员。苍井空AV女优是xx出道, 日本AV女优们最精彩的表演是AV演员色情表演") + fmt.Println(safe) + fmt.Println(keywords) + fmt.Println(found) +} diff --git a/example/stringx/replace/replace.go b/example/stringx/replace/replace.go new file mode 100644 index 00000000..4c6961c7 --- /dev/null +++ b/example/stringx/replace/replace.go @@ -0,0 +1,15 @@ +package main + +import ( + "fmt" + + "github.com/tal-tech/go-zero/core/stringx" +) + +func main() { + replacer := stringx.NewReplacer(map[string]string{ + "PHP": "PPT", + "世界上": "吹牛", + }) + fmt.Println(replacer.Replace("PHP是世界上最好的语言!")) +} diff --git a/readme.md b/readme.md index 8b2cf2ef..539c19ea 100644 --- a/readme.md +++ b/readme.md @@ -182,7 +182,8 @@ go-zero是一个集成了各种工程实践的包含web和rpc框架,有如下 ## 9. 文档 * [goctl使用帮助](doc/goctl.md) +* [关键字替换和敏感词过滤工具](doc/keywords.md) -### 微信交流群 +## 10. 微信交流群 添加我的微信:kevwan,请注明go-zero,我拉进go-zero社区群🤝