123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package fsw
- import (
- "io/ioutil"
- "log"
- "os"
- "strings"
- )
- //敏感词库
- var link map[string]interface{}
- //读取字段
- func ReadFswDict(config ...string) {
- var fi *os.File
- if len(config) == 0 {
- fi1, err := os.Open("./mosaic_fsw.dict")
- log.Println("err:", err)
- fi = fi1
- } else {
- fi, _ = os.Open(config[0])
- }
- defer fi.Close()
- bs, _ := ioutil.ReadAll(fi)
- fswwords := strings.Split(string(bs), "\r\n")
- if len(fswwords) == 1 {
- fswwords = strings.Split(string(bs), "\n")
- }
- //要组装关键字
- link = make(map[string]interface{})
- var nowMap *map[string]interface{}
- for _, key := range fswwords {
- nowMap = &link
- for i := 0; i < len(key); i++ {
- kc := key[i : i+1]
- if v, ok := (*nowMap)[kc]; ok {
- nowMap, _ = v.(*map[string]interface{})
- } else {
- newMap := map[string]interface{}{}
- newMap["YN"] = "N"
- (*nowMap)[kc] = &newMap
- nowMap = &newMap
- }
- if i == len(key)-1 {
- (*nowMap)["YN"] = "Y"
- }
- }
- }
- }
|