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

视频网站制作教程视频wordpress 列表页

视频网站制作教程视频,wordpress 列表页,大连网站开发企业,黄江建设网站tokenizer的含义 from .clip import *引入头文件时为什么有个. 正文 import gzip import html import os from functools import lru_cacheimport ftfy import regex as re# 上面的都是头文件# 这段代码定义了一个函数 default_bpe()#xff0c;它使用了装饰器 lru_cache()。…tokenizer的含义 from .clip import *引入头文件时为什么有个. 正文 import gzip import html import os from functools import lru_cacheimport ftfy import regex as re# 上面的都是头文件# 这段代码定义了一个函数 default_bpe()它使用了装饰器 lru_cache()。 # lru_cache() 是 Python 中的一个装饰器用于缓存函数的返回值以避免重复计算。 # 这样如果相同的参数再次传递给函数它会直接返回之前缓存的结果而不是重新执行函数。 lru_cache() # default_bpe() 函数的作用是返回一个文件路径这个路径是一个位于当前文件所在目录下的文件路径。 # 具体来说它构造了一个文件路径指向一个名为 bpe_simple_vocab_16e6.txt.gz 的文件。 # 这个文件路径是相对于当前文件所在目录的因为它使用了 os.path.dirname(__file__) 获取当前文件所在目录的路径 # 然后通过 os.path.join() 构建了文件的完整路径。 def default_bpe():return os.path.join(os.path.dirname(os.path.abspath(__file__)), bpe_simple_vocab_16e6.txt.gz) Python 中的装饰器概念 # 这段代码定义了一个函数 bytes_to_unicode()同样使用了装饰器 lru_cache() 来缓存函数的返回值 lru_cache() # 这个函数的作用是创建一个字典将 UTF-8 字节映射到对应的 Unicode 字符串。 # 注释中提到这个字典的目的是为了在 BPEByte Pair Encoding编码中使用。 # BPE 编码需要在词汇表中有大量的 Unicode 字符以避免未知字符UNKs的出现。 def bytes_to_unicode():Returns list of utf-8 byte and a corresponding list of unicode strings.The reversible bpe codes work on unicode strings.This means you need a large # of unicode characters in your vocab if you want to avoid UNKs.When youre at something like a 10B token dataset you end up needing around 5K for decent coverage.This is a signficant percentage of your normal, say, 32K bpe vocab.To avoid that, we want lookup tables between utf-8 bytes and unicode strings.And avoids mapping to whitespace/control characters the bpe code barfs on.# 函数内部的操作是创建了两个列表 bs 和 cs分别存储了一组 UTF-8 字节和对应的 Unicode 字符串。# 然后通过循环将所有可能的 8 位字节加入到这两个列表中确保覆盖了所有可能的情况。# 最后使用 zip() 函数将这两个列表合并成一个字典键为 UTF-8 字节值为对应的 Unicode 字符串。bs list(range(ord(!), ord(~)1))list(range(ord(¡), ord(¬)1))list(range(ord(®), ord(ÿ)1))cs bs[:]n 0for b in range(2**8):if b not in bs:bs.append(b)cs.append(2**8n)n 1cs [chr(n) for n in cs]return dict(zip(bs, cs))bs list(range(ord(“!”), ord(“~”)1))list(range(ord(“¡”), ord(“¬”)1))list(range(ord(“®”), ord(“ÿ”)1)) # 这个函数的作用是提取给定单词中所有相邻字符对的集合用于后续的处理比如在文本处理中进行基于字符的分词或编码 def get_pairs(word):Return set of symbol pairs in a word.Word is represented as tuple of symbols (symbols being variable-length strings).# 创建一个空集合 pairs用于存储字符对。pairs set()# 初始化变量 prev_char 为输入单词 word 的第一个字符。prev_char word[0]# 使用 for 循环遍历输入单词 word 中的每个字符从第二个字符开始因为第一个字符已经在 prev_char 中。for char in word[1:]:# 将相邻的字符对 (prev_char, char) 添加到集合 pairs 中。# 这个操作将当前字符 char 与前一个字符 prev_char 组成一个元组然后将这个元组添加到集合中。pairs.add((prev_char, char))# 更新 prev_char 的值为当前字符 char以便在下一次循环中使用。prev_char char# 返回包含所有相邻字符对的集合 pairs。return pairs# 这个函数用于对文本进行基本的清洗和修复 def basic_clean(text):# 这一行代码使用了第三方库 ftfy 中的 fix_text() 函数用于修复文本中的各种编码问题和Unicode字符问题。# 这个函数会尝试修复诸如Unicode编码错误、Unicode编码为HTML实体等问题text ftfy.fix_text(text)# 这一行代码用于解码 HTML 实体将 HTML 实体转换回原始字符。# 通常HTML 实体是用来表示特殊字符的编码形式比如 lt; 表示 gt; 表示 。# 由于可能存在多级嵌套的 HTML 实体因此使用了两次 html.unescape() 函数来确保解码所有的实体。text html.unescape(html.unescape(text))# 最后这一行代码返回经过清洗和修复后的文本# 并使用 strip() 方法去除文本两端的空白字符确保文本的整洁性return text.strip() # 这个函数用于去除文本中的多余空白字符 def whitespace_clean(text): # 这一行代码使用了 Python 内置的 re 模块调用了 re.sub() 函数来进行正则表达式替换。 # 具体地它使用了正则表达式 \s 来匹配一个或多个连续的空白字符包括空格、制表符、换行符等 # 然后将它们替换为单个空格 。这样可以将连续的空白字符合并成一个空格从而去除多余的空白。text re.sub(r\s, , text)# 这一行代码使用了字符串的 strip() 方法去除了文本两端的空白字符确保文本的整洁性text text.strip()# 返回经过清洗后的文本return text# 这段代码定义了一个名为 SimpleTokenizer 的类它实现了一个简单的分词器用于将文本分割成词语的序列 # 更具体的这个类实现了一个基于字节对编码的简单分词器用于将文本转换为词语序列并提供了编码和解码的方法来处理文本数据 class SimpleTokenizer(object): # 类的初始化方法。接受一个参数 bpe_path默认值为 default_bpe() 函数的返回值也就上面定义的函数 # 这个函数用于获取默认的 BPE字节对编码路径。 # 在初始化过程中加载了 BPE 模型文件这个文件也在文件目录中捏并设置了一些其他的属性和变量。def __init__(self, bpe_path: str default_bpe()):self.byte_encoder bytes_to_unicode()self.byte_decoder {v: k for k, v in self.byte_encoder.items()}merges gzip.open(bpe_path).read().decode(utf-8).split(\n)merges merges[1:49152-256-21]merges [tuple(merge.split()) for merge in merges]vocab list(bytes_to_unicode().values())vocab vocab [v/w for v in vocab]for merge in merges:vocab.append(.join(merge))vocab.extend([|startoftext|, |endoftext|])self.encoder dict(zip(vocab, range(len(vocab))))self.decoder {v: k for k, v in self.encoder.items()}self.bpe_ranks dict(zip(merges, range(len(merges))))self.cache {|startoftext|: |startoftext|, |endoftext|: |endoftext|}self.pat re.compile(r\|startoftext\||\|endoftext\||s|t|re|ve|m|ll|d|[\p{L}]|[\p{N}]|[^\s\p{L}\p{N}], re.IGNORECASE)# 这个方法用于执行 BPE 编码。它接受一个字符串 token 作为输入返回经过 BPE 编码后的字符串。def bpe(self, token):if token in self.cache:return self.cache[token]word tuple(token[:-1]) ( token[-1] /w,)pairs get_pairs(word)if not pairs:return token/wwhile True:bigram min(pairs, key lambda pair: self.bpe_ranks.get(pair, float(inf)))if bigram not in self.bpe_ranks:breakfirst, second bigramnew_word []i 0while i len(word):try:j word.index(first, i)new_word.extend(word[i:j])i jexcept:new_word.extend(word[i:])breakif word[i] first and i len(word)-1 and word[i1] second:new_word.append(firstsecond)i 2else:new_word.append(word[i])i 1new_word tuple(new_word)word new_wordif len(word) 1:breakelse:pairs get_pairs(word)word .join(word)self.cache[token] wordreturn word# 这个方法用于对文本进行编码将文本转换为 BPE 词汇的索引序列def encode(self, text):bpe_tokens []text whitespace_clean(basic_clean(text)).lower()for token in re.findall(self.pat, text):token .join(self.byte_encoder[b] for b in token.encode(utf-8))bpe_tokens.extend(self.encoder[bpe_token] for bpe_token in self.bpe(token).split( ))return bpe_tokens# 这个方法用于对索引序列进行解码将 BPE 编码后的索引序列转换回文本。def decode(self, tokens):text .join([self.decoder[token] for token in tokens])text bytearray([self.byte_decoder[c] for c in text]).decode(utf-8, errorsreplace).replace(/w, )# 最后返回经过编解码处理的文本数据return text 总结 不难发现simple_tokenizer.py 这个文件模块就是用来处理我们输入的文本数据的主要是一些编码上的处理、文本数据的清洗以及文本格式的转换。在最后我们会手动 debug 走一遍流程看看该项目的各个部分到底是怎么做的都负责了什么。
http://www.dnsts.com.cn/news/147474.html

相关文章:

  • 如何给一个网站做压测诸暨哪些公司可以制作网站
  • 建网站的步骤和方法百度客户端登录
  • 破解网站后台网站建设及推广好学习吗
  • 专门做爬虫的网站卖源码的网站
  • 微信可以怎么创建账户网站机构ui设计培训
  • 网站备案中国开头如何利用php开源系统建立php网站
  • 广州做网站app网站建设与运营公司主营业务收入与成本
  • 站酷设计网页版家居网站页面设计图片
  • 哪个网站做动图易语言用客户端和服务器做网站
  • 网站编辑兼职郑州php网站开发培训
  • 小公司做网站推广好不好小程序登录功能
  • 小榄做网站企业泰安房产网新楼盘房价
  • 太原建网站携程旅行网站内容的建设
  • 临沂市经济开发区建设局网站外贸网站seo推广
  • 无锡网站制作专业服务公司北京网页设计平台
  • 网站建设综合实训设计报告新浪云搭建wordpress
  • 网页网站开发大概多少钱汝州市文明建设门户网站
  • 网站建设需要提供哪些信息wordpress 无法将上传的文件移动至
  • 网站批量收录三五互联网站
  • 网站后台设计教程视频江苏省建设工程信息一体化平台
  • 菏泽网站建设价格新版wordpress文章编辑界面
  • 免费的推文制作网站海外短视频服务器
  • 网站怎么自己编辑模块wordpress自定义目录
  • 攻击jsp网站依博罗阀门北京有限公司
  • 男女做视频网站网上打广告
  • 炫酷的企业网站模板做搜狗手机网站优化首
  • 哪里有免费的网站自己做酒店软装设计公司官网
  • vue和react可以做pc网站吗外国网站建站
  • 台州专业做网站杭州市优化服务
  • 网站全局参数设置厦门网站设计定制