GO语言如何利用K近邻算法实现小说鉴黄
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇文章为大家展示了GO语言如何利用K近邻算法实现小说鉴黄,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Usuage:go run kNN.go --file
千家信息网最后更新 2025年11月08日GO语言如何利用K近邻算法实现小说鉴黄
本篇文章为大家展示了GO语言如何利用K近邻算法实现小说鉴黄,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Usuage:
go run kNN.go --file="data.txt"
关键是向量点的选择和阈值的判定
package main import ( "bufio" "flag" "fmt" "io" "log" "math" "os" "path" "path/filepath") var debug bool = falsevar data_dir string = "./moyan" //文件存放目录var limen float64 = 0.1159203888322267 //阈值 const ( MIN_HANZI rune = 0x3400 MAX_HANZI rune = 0x9fbb) var labels []rune = []rune{ 0x817f, 0x80f8, 0x4e73, 0x81c0, 0x5c41, 0x80a1, 0x88f8, 0x6deb,} func errHandle(err error) { if err != nil { log.Fatal(err) }} func load(name string) (m map[rune]int, err error) { f, err := os.Open(name) if err != nil { return nil, err } defer f.Close() buf := bufio.NewReader(f) m = make(map[rune]int) var r rune for { r, _, err = buf.ReadRune() if err != nil { if err == io.EOF { break } return nil, err } if r >= MIN_HANZI && r <= MAX_HANZI { m[r] += 1 } } return m, nil}func classify(m map[rune]int) (idv []float64, dis float64) { len_m := len(m) for i, v := range labels { if debug { fmt.Println(i, m[v], string(v), float64(m[v])/float64(len_m)) } idv = append(idv, float64(m[v])/float64(len_m)) } for _, v := range idv { dis += math.Pow(v, 2) } dis = math.Sqrt(dis) return}func check(fp string, dis float64) { switch { case dis >= limen: fmt.Println(fp, dis, "涉黄") case dis == 1.0: fmt.Println(fp, dis, "你在作弊吗") case dis == 0: fmt.Println(fp, dis, "检查一下文件字符编码是不是utf8格式吧") default: fmt.Println(fp, dis, "正常") }} func walkFunc(fp string, info os.FileInfo, err error) error { if path.Ext(fp) == ".txt" { m, err := load(fp) errHandle(err) _, dis := classify(m) check(fp, dis) } return err} var file string func init() { _, err := os.Stat(data_dir) if err != nil { err = os.Mkdir(data_dir, os.ModePerm) errHandle(err) } flag.StringVar(&file, "file", "", "file read in,if you don't give the file read in,"+ "it will create a data dictionary,just pust your files in it")} func main() { flag.Parse() if file == "" { filepath.Walk(data_dir, walkFunc) return } m, err := load(file) errHandle(err) _, dis := classify(m) check(file, dis) }上述内容就是GO语言如何利用K近邻算法实现小说鉴黄,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
小说
算法
语言
近邻
内容
技能
文件
知识
阈值
简明
简明扼要
关键
向量
字符
就是
文章
更多
格式
目录
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
erp软件开发定制
想象中的网络安全工程师
华为云香港服务器一年多少钱
银行服务器系统
富士服务器报警代码OL
软件开发部署项目流程
信令管理服务器是什么意思
网络安全模式可以正常使用电脑
广东鸿特互联网科技
空间数据库 试题
网络安全认证答题
瀑布流软件开发
浪潮服务器安卓版
在哪下载明日之后才有官方服务器
网络安全教学论点
数据库效率低
创客软件开发深圳
笛卡儿积 数据库
汽车数据库营销
官方数据库使用
如何利用公共数据库写sci
tiff连接数据库
福建汇拍互联网科技有限公司
hcm是什么意思软件开发
伟航互联网科技
互联网科技上市了什么股
mongodb是什么数据库
达梦数据库哪个版本合算
数据库所有表名 查询
网络安全征文宣传语