欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang敏感詞過(guò)濾的實(shí)現(xiàn)

 更新時(shí)間:2023年01月03日 14:01:01   作者:liyunlong41  
本文主要介紹了golang敏感詞過(guò)濾的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

 用golang寫了敏感詞過(guò)濾的工具,主要用來(lái)檢測(cè)用戶昵稱中是否存在敏感詞,同時(shí)提供剔除轉(zhuǎn)移字符的功能。

可以先將敏感詞庫(kù)存放在一個(gè)map中,敏感詞可以參考這里:https://github.com/fwwdn/sensitive-stop-words

將map和昵稱傳入,程序會(huì)檢查昵稱的每一個(gè)子串,判斷是否在map敏感詞庫(kù)中。復(fù)雜度O(len(name)^2)

package util
 
import (
    "github.com/pkg/errors"
    "strings"
 
)
 
type filter struct {
    data        string
    maxLimitLen int
}
 
func NewKeywordFilter(str string, maxLimitLen int) (*filter, error) {
    if len(str) > maxLimitLen {
        return nil, errors.Errorf("長(zhǎng)度:%d,不能超過(guò):%d", len(str), maxLimitLen)
    }
    return &filter{
        data:        str,
        maxLimitLen: maxLimitLen,
    }, nil
}
 
func (f *filter) GetData() string {
    return f.data
}
 
func (f *filter) FilterKeywords(keywords map[string]bool) (err error) {
    if keywords == nil {
        return
    }
    for i := 0; i < len(f.data); i++ {
        for j := i + 1; j <= len(f.data); j++ {
            subStr := f.data[i:j]
            if _, found := keywords[subStr]; found {
                err = errors.Errorf("昵稱違規(guī),建議修改")
            }
        }
    }
    return
}
 
func (f *filter) TrimAllCharset(ch []string) (err error) {
    if ch == nil {
        return
    }
    for _, c := range ch {
        f.data = strings.Replace(f.data, c, "", -1)
    }
    if len(f.data) == 0 {
        err = errors.New("剔除相關(guān)轉(zhuǎn)移字符后,數(shù)據(jù)長(zhǎng)度為0.")
        return
    }
    return
}

到此這篇關(guān)于golang敏感詞過(guò)濾的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)golang敏感詞過(guò)濾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go語(yǔ)言題解LeetCode1299將每個(gè)元素替換為右側(cè)最大元素

    go語(yǔ)言題解LeetCode1299將每個(gè)元素替換為右側(cè)最大元素

    這篇文章主要為大家介紹了go語(yǔ)言LeetCode刷題1299將每個(gè)元素替換為右側(cè)最大元素示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • golang實(shí)現(xiàn)java uuid的序列化方法

    golang實(shí)現(xiàn)java uuid的序列化方法

    這篇文章主要介紹了golang實(shí)現(xiàn)java uuid的序列化方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Minio基本介紹及如何搭建Minio集群

    Minio基本介紹及如何搭建Minio集群

    MinIO主要采用Golang語(yǔ)言實(shí)現(xiàn),客戶端與存儲(chǔ)服務(wù)器之間采用http/https通信協(xié)議,本文重點(diǎn)給大家介紹什么是Minio?如何搭建Minio集群?感興趣的朋友一起看看吧
    2022-06-06
  • golang中的defer函數(shù)理解

    golang中的defer函數(shù)理解

    defer是Go語(yǔ)言中的延遲執(zhí)行語(yǔ)句,用來(lái)添加函數(shù)結(jié)束時(shí)執(zhí)行的代碼,常用于釋放某些已分配的資源、關(guān)閉數(shù)據(jù)庫(kù)連接、斷開socket連接、解鎖一個(gè)加鎖的資源,這篇文章主要介紹了golang中的defer函數(shù)理解,需要的朋友可以參考下
    2022-10-10
  • 一文帶你搞懂Golang結(jié)構(gòu)體內(nèi)存布局

    一文帶你搞懂Golang結(jié)構(gòu)體內(nèi)存布局

    結(jié)構(gòu)體在Go語(yǔ)言中是一個(gè)很重要的部分,在項(xiàng)目中會(huì)經(jīng)常用到。這篇文章主要帶大家看一下結(jié)構(gòu)體在內(nèi)存中是怎么分布的?通過(guò)對(duì)內(nèi)存布局的了解,可以幫助我們寫出更優(yōu)質(zhì)的代碼。感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助
    2022-10-10
  • Go語(yǔ)言框架快速集成限流中間件詳解

    Go語(yǔ)言框架快速集成限流中間件詳解

    這篇文章主要為大家介紹了Go語(yǔ)言框架快速集成限流中間件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 解決Golang json序列化字符串時(shí)多了\的情況

    解決Golang json序列化字符串時(shí)多了\的情況

    這篇文章主要介紹了解決Golang json序列化字符串時(shí)多了\的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作

    Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作

    這篇文章主要介紹了Golang自定義結(jié)構(gòu)體轉(zhuǎn)map的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Go-ethereum?解析ethersjs中產(chǎn)生的簽名信息思路詳解

    Go-ethereum?解析ethersjs中產(chǎn)生的簽名信息思路詳解

    這篇文章主要介紹了Go-ethereum?解析ethersjs中產(chǎn)生的簽名信息,我們解析簽名的需要知道,簽名的消息,簽名,和公鑰,按照這個(gè)思路,我們可以通過(guò)ethers實(shí)現(xiàn)消息的簽名,也可以通過(guò)go-ethereum實(shí)現(xiàn),需要的朋友可以參考下
    2022-08-08
  • golang實(shí)現(xiàn)簡(jiǎn)單工廠、方法工廠、抽象工廠三種設(shè)計(jì)模式

    golang實(shí)現(xiàn)簡(jiǎn)單工廠、方法工廠、抽象工廠三種設(shè)計(jì)模式

    這篇文章介紹了golang實(shí)現(xiàn)簡(jiǎn)單工廠、方法工廠、抽象工廠三種設(shè)計(jì)模式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04

最新評(píng)論