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

南宁网站制作多少钱代理网页 免费

南宁网站制作多少钱,代理网页 免费,网站后台做1个多少钱,深圳软件app开发公司文章目录 前言核心结构体定义构造函数文本初始处理组词构建词组索引训练数据编码解码打印状态信息运行效果总结 前言 大模型的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.yutouwan.com/news/492628/

相关文章:

  • 网站建设数据的需求分析大灰狼网站更新升级通知
  • 如何提高网站的排名html建设网站
  • 用买的服务器 做网站手机优化软件
  • 建设网站如何索要素材dw做单页网站教程
  • 网站开发人员的工作100m永久免费空间申请
  • 电商网站设计主题开发公司消防未移交物业
  • 咋样做网站快照无锡外贸网站制作
  • 推进网站建设iis下建多个网站
  • 海珠免费网站建设算命手机网站开发
  • 网站安全证书存在问题建设部网站实名制举报
  • 旅游电子商务网站建设技术规范房子降价最新消息
  • 网站开发 男生学做网站记不住代码
  • 诚信通与网站建设区别换网站后台
  • 网站流量统计数据库设计美食推荐网站模板
  • asp.net门户网站项目怎么做自己的电脑做网站服务器
  • dedecms 建两个网站的问题wordpress打开速度很慢
  • 成都网站推广公司黄页号码怎么取消标记
  • 做网站建设要学多久做教育培训网站
  • 网站建设怎么办好玩的页游
  • 江阴响应式网站建设南通网站优化
  • 网站开发加盟北京seo推广
  • 做平面设计在什么网站能挣钱重庆建设工程信息网官网安全监督信息网
  • 网站建设高建立一个网站怎样赚钱
  • 网站引导页动画温州网络公司哪家最好
  • 东光网站建设化妆品瓶子怎么做网站
  • id97网站怎么做的游戏代理平台一天结一次
  • 网站 备案地页面模板图片大小
  • 如何创建网站详细步骤天津先进网站建设指导
  • 动易的网站系统金融网站源码 asp
  • 社保网站上怎么做减员拓者设计吧论坛