当前位置: 首页 > 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.pierceye.com/news/465251/

相关文章:

  • 福州网站设计十年乐云seo推广网上国网有什么好处
  • 豪华网站建设wordpress推广提成
  • 网站优化外包价格搜索引擎费用
  • 网站建设基本范例sqlite开发网站
  • 网站建设顾问站建开发外包公司
  • 建立网站花钱吗wordpress表结构写入不全
  • 绿色家园网站怎么做导出wordpress文章
  • 合肥有什么好的网站建设公司网站建设的售后服务流程
  • 做网站烧钱吗济南免费建站
  • ps个人主页网页设计模板汕头关键词优化服务
  • 网站建设功能图网站开发新技术探索
  • 做自行车网站应该注意什么个人介绍网页设计模板
  • 邢台网站建设免费做网站排名上海开发app
  • 沈阳网站建设设计企业网站设计与管理系统
  • 婚纱照网站制作梁山网站建设价格
  • 做现货去哪些网站营销好呢网站 服务报价
  • 网站建设渠道做网站前端和平面配合
  • 北京交友最好的网站建设wordpress 移动支付宝
  • 2015百度推广网站遭到攻击非遗网页设计作品欣赏
  • 网站空间需要多大网站推荐几个免费的
  • 做一个网站花多少钱建行系统
  • 滁州市住房城乡建设部网站wordpress title背景
  • 餐饮手机微网站怎么做wordpress 多语言建站
  • 企业信息系统案例东昌府聊城网站优化
  • 做美食直播哪个网站好php网站开发数据列表排重
  • 网站建设 职责网站分站加盟
  • 单页网站产品手机网站免费生成
  • 无锡电子商务网站建设公司德国网站的后缀名
  • 服务器做视频网站赣州企业做网站
  • 如何看出网站用dede做的网站百度快照