当前位置: 首页 > news >正文

兰溪市城乡建设局网站微信小游戏开发软件

兰溪市城乡建设局网站,微信小游戏开发软件,wordpress 屏蔽插件更新,wordpress下载管理器文章目录 前言核心结构体定义构造函数文本初始处理组词构建词组索引训练数据编码解码打印状态信息运行效果总结 前言 大模型的tokenizer用于将原始文本输入转化为模型可处理的输入形式。tokenizer将文本分割成单词、子词或字符#xff0c;并将其编码为数字表示。大模型的toke… 文章目录 前言核心结构体定义构造函数文本初始处理组词构建词组索引训练数据编码解码打印状态信息运行效果总结 前言 大模型的tokenizer用于将原始文本输入转化为模型可处理的输入形式。tokenizer将文本分割成单词、子词或字符并将其编码为数字表示。大模型的tokenizer通常基于词表进行编码使用词嵌入将单词映射为向量表示。tokenizer还可以将输入文本进行填充和截断以确保所有输入序列的长度一致以便于模型的批量处理。 这篇博客的tokenizer分析器使用纯粹的Go语言标准库实现不借用任何其它第三方库。用轮子是生活造轮子是信仰。 核心结构体定义 type BytePairEncoder struct {wsToken stringunkToken string// k: word, v: tokenswordToken map[string]*[]string// k: word, v: countwordCount map[string]int// k: token, v: counttokenCount map[string]int// k: id, v: tokenidToken map[int]string// k: token, v: idtokenId map[string]int }构造函数 func DefaultBytePairEncoder() *BytePairEncoder {return NewBytePairEncoder(_, ) }func NewBytePairEncoder(wsToken, unkToken string) *BytePairEncoder {return BytePairEncoder{wsToken: wsToken,unkToken: unkToken,wordToken: make(map[string]*[]string),wordCount: make(map[string]int),tokenCount: make(map[string]int),idToken: make(map[int]string),tokenId: make(map[string]int),} }文本初始处理 func (e *BytePairEncoder) wordToTokens(word string) *[]string {parts : []rune(word)n : len(parts)res : make([]string, n)for i : 0; i n; i {token : string(parts[i])e.tokenCount[token]res[i] token}return res }func (e *BytePairEncoder) preprocess(text string) []string {text strings.TrimSpace(text)return strings.Fields(text) }func (e *BytePairEncoder) processWord(word string) {e.wordToken[word] e.wordToTokens(word)e.wordCount[word] }func (e *BytePairEncoder) initState(text string) {words : e.preprocess(text)for _, word : range words {e.processWord(e.wsToken word)} }组词 func (e *BytePairEncoder) mergePair() {// k: token, v: countm : make(map[string]int)for word, tokens : range e.wordToken {n : len(*tokens) - 1for i : 0; i n; i {m[(*tokens)[i](*tokens)[i1]] e.wordCount[word]}}maxToken : maxCount : 0for k, v : range m {if v maxCount {maxToken kmaxCount v}}if maxCount 2 {return}e.tokenCount[maxToken] maxCountfor _, tokens : range e.wordToken {n : len(*tokens) - 1for i : 0; i n; i {if (*tokens)[i](*tokens)[i1] maxToken {e.tokenCount[(*tokens)[i]]--e.tokenCount[(*tokens)[i1]]--post : (*tokens)[i1:]post[0] maxToken*tokens (*tokens)[:i]*tokens append((*tokens), post...)*tokens (*tokens)[:len(*tokens)]i--n - 2}}} }func (e *BytePairEncoder) merge(steps int) {for i : 0; i steps; i {e.mergePair()} }构建词组索引 func (e *BytePairEncoder) buildIndex() {e.tokenId[e.unkToken] 0e.idToken[0] e.unkTokeni : 1for token : range e.tokenCount {e.tokenId[token] ie.idToken[i] tokeni} }训练数据 func (e *BytePairEncoder) Train(text string, steps int) {e.initState(text)e.merge(steps)e.buildIndex() }编码 func (e *BytePairEncoder) segment(words []string) []int {res : make([]int, 0)for _, word : range words {parts : []rune(word)NEXT:for i : len(parts); i 1; i-- {if code, ok : e.tokenId[string(parts[:i])]; ok {parts parts[i:]res append(res, code)goto NEXT}}if len(parts) 0 {continue}code : e.tokenId[string(parts[0])]res append(res, code)parts parts[1:]if len(parts) ! 0 {goto NEXT}}return res }func (e *BytePairEncoder) Encode(text string) []int {words : e.preprocess(text)return e.segment(words) }解码 func (e *BytePairEncoder) Decode(codes []int) []string {res : make([]string, 0)for _, code : range codes {res append(res, e.idToken[code])}return res }打印状态信息 func (e *BytePairEncoder) Dump() {fmt.Println( dump state )fmt.Println( dump wordToken )for word, tokens : range e.wordToken {fmt.Println(word, , *tokens)}fmt.Println()fmt.Println( dump wordcnt )for word, count : range e.wordCount {fmt.Println(word, , count)}fmt.Println()fmt.Println( dump tokenCount )for token, count : range e.tokenCount {fmt.Println(token, , count)}fmt.Println()fmt.Println( dump idTokens )for code, token : range e.idToken {fmt.Println(code, , token)}fmt.Println()fmt.Println( dump tokenIds )for token, code : range e.tokenId {fmt.Println(token, , code)}fmt.Println() }运行效果 我们的tokenizer已经开发完毕现在可以运行我们的tokenizer看看是否能达到我们想要的效果 package mainimport (fmtostokenizer )func main() {trainData, err : os.ReadFile(./data.txt)if err ! nil {panic(err)}steps : 50enc : tokenizer.DefaultBytePairEncoder()enc.Train(string(trainData), steps)input : 提取数据特征进行预测codes : enc.Encode(input)tokens : enc.Decode(codes)fmt.Println(codes)fmt.Println(tokens) }输入数据集 data.txt 机器学习、深度学习和强化学习是人工智能领域中的三个重要技术方向。以下是它们的区别 机器学习机器学习是一种通过从数据中自动学习模式和规律来进行预测和决策的方法。它涉及到使用算法和统计模型从数据中提取特征并进行模型训练进而对未知数据进行预测或分类。机器学习的重点在于自动学习和泛化能力它不需要明确的指令或规则来执行任务而是通过数据和经验来改善性能。 深度学习深度学习是机器学习的一个分支它使用包含多个神经网络层的深度神经网络进行学习和预测。深度学习模型通过层层堆叠的方式从原始数据中学习到多个抽象层次的特征表示。深度学习的优势在于可以自动提取复杂的特征并通过大规模数据的训练来优化模型性能。它被广泛应用于计算机视觉、自然语言处理和语音识别等领域。 强化学习强化学习是一种机器学习的方法旨在让机器学习从环境中的交互中通过试错来改善性能。它通过不断与环境进行交互观察环境状态并执行动作然后从环境的反馈中学习如何在给定环境中做出最优的决策。强化学习的目标是通过学习最优的策略来最大化累积奖励。强化学习在游戏、机器人控制和优化问题等领域有着广泛应用。 总的来说机器学习是从数据中学习模式和规律深度学习是机器学习的一种方法使用深度神经网络来提取复杂的特征表示强化学习是通过试错学习从环境中改善性能。运行效果 可以根据情况使用Dump函数打印状态信息查看更多细节 总结 恭喜你已经制作了一个属于自己的tokenizer分词器我们实现的相对粗糙一点但是对于初学者是难得的实战项目麻雀虽小五脏俱全。
http://www.zqtcl.cn/news/465251/

相关文章:

  • 黄金网站app软件下载安装免费淘宝网页版登录
  • 幸运28网站建设网站返回指定位置怎么做
  • 建设个直播网站要多少钱兴业大街网站建设
  • 网站设计培训班创业上海今天新闻发布会直播
  • 电商网站制作设计wordpress jquery 无法
  • 关键词优化易下拉效率北京和隆优化科技
  • 漯河企业网站开发天津建设协会网站
  • wap网站模式房产信息查询网
  • 做外贸怎么进入国外的网站百度指数总结
  • ui设计作品网站东莞做网站的网络公司
  • 网站未备案怎么访问做网站图片教程
  • 温州专业营销网站建设网络建设解决方案
  • 滨州网站建设 远洋科技网站需求建设书
  • 知道网站域名怎么联系域名解析不成功是什么意思
  • 武宁网站ui专业设计wordpress评论通知代码6
  • thymeleaf做网站 seo重庆平台网站建设找哪家
  • WordPress子站站群建筑工程网上申请质量安全监督
  • 怎么给网站添加图标山西手机版建站系统哪家好
  • frontpage网页制作视频教程昆明网站建设优化企业
  • 工信部 诚信网站备案公司网络营销方案
  • 网站开发采集工具如何做网站内链优化
  • 在线做英语题的网站揭阳建站服务
  • 网站非法篡改wordpress的知名网站
  • 保定网建站模板uv推广平台
  • 股权分配系统建设网站wordpress mip 模板
  • 网站及其建设的心得体会昆明云南微网站
  • 详情页在线设计网站推荐广州建设网站企业
  • 设计师网站建设哪家网络公司做网站
  • 宣城网站开发专业制注册资金写100万后悔
  • 专业的高密做网站的建公司网站要多久