分享
  1. 首页
  2. 文章

golang贝叶斯算法训练敏感词过滤

cao-guang · · 1956 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

承接上次汉字转拼音的思路于是打算用贝叶斯来解决,结果发现python都有,但是golang没有贝叶斯算法于是给安排上。

源码地址

1、添加引用

import(
"github.com/cao-guang/bayes"
)

2、示例

func main() {
 //准备训练样本数据,这里就准备了3组,训练样本数据越多,效果你懂的
 aa := []string{"狗b", "我艹", "愚蠢", "装你大爷", "五毛们"}
 bb := []string{"法L功", "sb", "杀b", "你吗b", "你妈的", "五毛们", "愚蠢"}
 cc := []string{"爱国", "奉献", "勤劳", "努力", "奋斗", "汗水"}
 classVec := []int{1, 1, 0} // 1 代表敏感词 0 代表正常类词汇
 //考虑到数据来源的多样性,需要加载样本数据返回需要的格式
 docs, docClass := bayes.LoadDataNB(classVec, aa, bb, cc)
 myVocabList := bayes.CreateUnionList(aa, bb, cc) //求样本数据并集
 //对得到的并集样本数据进行向量化 ps:这里就不进一步封装了,便于大家理解
 trainDB := [][]int{}
 for _, v := range docs {
 trainDB = append(trainDB, bayes.Set2Vec(myVocabList, v))
 }
 p0V, p1V, pAb := bayes.MultinomialNB(trainDB, docClass) //贝叶斯算法计算概率
 test1 := []string{"装你大爷"}
 Doc1 := bayes.Set2Vec(myVocabList, test1)
 result_1 := bayes.ClassNB(Doc1, p0V, p1V, pAb)
 fmt.Println("训练结果:", result_1)
 test2 := []string{"爱国", "奉献"}
 Doc2 := bayes.Set2Vec(myVocabList, test2) //得到需要训练的词的向量
 result_2 := bayes.ClassNB(Doc2, p0V, p1V, pAb) //分类器分类
 fmt.Println("训练结果:", result_2)
}

参考:

golang汉字转拼音

机器学习之朴素贝叶斯(NB)分类算法与Python实现

NLP系列(2)_用朴素贝叶斯进行文本分类(上)


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1956 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏