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

单页移动网页建站教程个人网页模板王

单页移动网页建站教程,个人网页模板王,施工企业资质等级承包范围最新版,深圳电子商务平台设计文本预处理 对于序列数据处理问题#xff0c; 这样的数据存在许多种形式#xff0c;文本是最常见例子之一。 例如#xff0c;一篇文章可以被简单地看作一串单词序列#xff0c;甚至是一串字符序列。 本节中#xff0c;我们将解析文本的常见预处理步骤。 这些步骤通常包括…文本预处理 对于序列数据处理问题 这样的数据存在许多种形式文本是最常见例子之一。 例如一篇文章可以被简单地看作一串单词序列甚至是一串字符序列。 本节中我们将解析文本的常见预处理步骤。 这些步骤通常包括 将文本作为字符串加载到内存中。 将字符串拆分为词元如单词和字符。 建立一个词表将拆分的词元映射到数字索引。 将文本转换为数字索引序列方便模型操作。 import collections import re from d2l import torch as d2l 读取数据集 首先我们从H.G.Well的时光机器中加载文本。 这是一个相当小的语料库只有30000多个单词但足够我们小试牛刀 而现实中的文档集合可能会包含数十亿个单词。 下面的函数将数据集读取到由多条文本行组成的列表中其中每条文本行都是一个字符串。 为简单起见我们在这里忽略了标点符号和字母大写。 #save d2l.DATA_HUB[time_machine] (d2l.DATA_URL timemachine.txt,090b5e7e70c295757f55df93cb0a180b9691891a)def read_time_machine(): #save将时间机器数据集加载到文本行的列表中with open(d2l.download(time_machine), r) as f:lines f.readlines()return [re.sub([^A-Za-z], , line).strip().lower() for line in lines]lines read_time_machine() print(f# 文本总行数: {len(lines)}) print(lines[0]) print(lines[10]) Downloading ../data/timemachine.txt from http://d2l-data.s3-accelerate.amazonaws.com/timemachine.txt... # 文本总行数: 3221 the time machine by h g wells twinkled and his usually pale face was flushed and animated the 词元化  下面的tokenize函数将文本行列表lines作为输入 列表中的每个元素是一个文本序列如一条文本行。 每个文本序列又被拆分成一个词元列表词元token是文本的基本单位。 最后返回一个由词元列表组成的列表其中的每个词元都是一个字符串string。 def tokenize(lines, tokenword): #save将文本行拆分为单词或字符词元if token word:return [line.split() for line in lines]elif token char:return [list(line) for line in lines]else:print(错误未知词元类型 token)tokens tokenize(lines) for i in range(11):print(tokens[i]) [the, time, machine, by, h, g, wells] [] [] [] [] [i] [] [] [the, time, traveller, for, so, it, will, be, convenient, to, speak, of, him] [was, expounding, a, recondite, matter, to, us, his, grey, eyes, shone, and] [twinkled, and, his, usually, pale, face, was, flushed, and, animated, the] 词表  词元的类型是字符串而模型需要的输入是数字因此这种类型不方便模型使用。 现在让我们构建一个字典通常也叫做词表vocabulary 用来将字符串类型的词元映射到从0开始的数字索引中。 我们先将训练集中的所有文档合并在一起对它们的唯一词元进行统计 得到的统计结果称之为语料corpus。 然后根据每个唯一词元的出现频率为其分配一个数字索引。 很少出现的词元通常被移除这可以降低复杂性。 另外语料库中不存在或已删除的任何词元都将映射到一个特定的未知词元“unk”。 我们可以选择增加一个列表用于保存那些被保留的词元 例如填充词元“pad” 序列开始词元“bos” 序列结束词元“eos”。 class Vocab: #save文本词表def __init__(self, tokensNone, min_freq0, reserved_tokensNone):if tokens is None:tokens []if reserved_tokens is None:reserved_tokens []# 按出现频率排序counter count_corpus(tokens)self._token_freqs sorted(counter.items(), keylambda x: x[1],reverseTrue)# 未知词元的索引为0self.idx_to_token [unk] reserved_tokensself.token_to_idx {token: idxfor idx, token in enumerate(self.idx_to_token)}for token, freq in self._token_freqs:if freq min_freq:breakif token not in self.token_to_idx:self.idx_to_token.append(token)self.token_to_idx[token] len(self.idx_to_token) - 1def __len__(self):return len(self.idx_to_token)def __getitem__(self, tokens):if not isinstance(tokens, (list, tuple)):return self.token_to_idx.get(tokens, self.unk)return [self.__getitem__(token) for token in tokens]def to_tokens(self, indices):if not isinstance(indices, (list, tuple)):return self.idx_to_token[indices]return [self.idx_to_token[index] for index in indices]propertydef unk(self): # 未知词元的索引为0return 0propertydef token_freqs(self):return self._token_freqsdef count_corpus(tokens): #save统计词元的频率# 这里的tokens是1D列表或2D列表if len(tokens) 0 or isinstance(tokens[0], list):# 将词元列表展平成一个列表tokens [token for line in tokens for token in line]return collections.Counter(tokens) 我们首先使用时光机器数据集作为语料库来构建词表然后打印前几个高频词元及其索引。 vocab Vocab(tokens) print(list(vocab.token_to_idx.items())[:10]) [(unk, 0), (the, 1), (i, 2), (and, 3), (of, 4), (a, 5), (to, 6), (was, 7), (in, 8), (that, 9)] 现在我们可以将每一条文本行转换成一个数字索引列表。 for i in [0, 10]:print(文本:, tokens[i])print(索引:, vocab[tokens[i]]) 文本: [the, time, machine, by, h, g, wells] 索引: [1, 19, 50, 40, 2183, 2184, 400] 文本: [twinkled, and, his, usually, pale, face, was, flushed, and, animated, the] 索引: [2186, 3, 25, 1044, 362, 113, 7, 1421, 3, 1045, 1] 整合所有功能  在使用上述函数时我们将所有功能打包到load_corpus_time_machine函数中 该函数返回corpus词元索引列表和vocab时光机器语料库的词表。 我们在这里所做的改变是 为了简化后面章节中的训练我们使用字符而不是单词实现文本词元化 时光机器数据集中的每个文本行不一定是一个句子或一个段落还可能是一个单词因此返回的corpus仅处理为单个列表而不是使用多词元列表构成的一个列表。 def load_corpus_time_machine(max_tokens-1): #save返回时光机器数据集的词元索引列表和词表lines read_time_machine()tokens tokenize(lines, char)vocab Vocab(tokens)# 因为时光机器数据集中的每个文本行不一定是一个句子或一个段落# 所以将所有文本行展平到一个列表中corpus [vocab[token] for line in tokens for token in line]if max_tokens 0:corpus corpus[:max_tokens]return corpus, vocabcorpus, vocab load_corpus_time_machine() len(corpus), len(vocab) (170580, 28)
http://wiki.neutronadmin.com/news/383766/

相关文章:

  • wordpress模板站如何安装交互设计主要做什么
  • 大连企业网站开发品牌设计策划公司
  • 个人电脑做网站服务器wordpress 内涵段子
  • 公司网站与营销网站在栏目上的不同绍兴模板建站代理
  • 郑州网站推广公司服务哪里买域名便宜
  • c2750服务器做网站行吗苏州旅游攻略
  • 新机发布最新消息网站建设智能优化
  • 番禺制作网站技术如何做网站 frontpage
  • 浙江人工智能建站系统软件文字网址生成器
  • 洋县建设银行网站wordpress 图片压缩插件
  • 惠州网站优化免费crm客户管理系统
  • 长沙市天心建设局网站wordpress 页面瀑布流
  • wordpress exploit scanner杭州优化公司在线留言
  • wordpress分页重写修文县抖音seo推广收费
  • 网站蜘蛛屏蔽怎样恢复西安网站建设公司找哪家
  • 免费做链接的网站郑州便宜网站建设公司
  • 网站同步到新浪微博怎么做php网站怎么建设
  • 网站导航菜单设计成立一个做网站的公司
  • 做网站服务器是什么一个新网站要怎么优化
  • 林壑地板北京网站建设站长之家怎么用
  • 化妆品网站建设的维护台州关键词优化推荐
  • 宁波网站关键词排名提升建网站 主流软件
  • 什么是网站功能需求网红营销对消费者的影响
  • 广州企业信息查询网站优化技术
  • 新媒体 网站建设 影视说明多媒体教学网站开发的一般步骤
  • 坪山网站建设价位学校网站集群建设
  • 网站设计制作的价格低廉手工企业网站模板
  • 要做未来科技的网站怎么做网站布局怎么设计
  • 广州建设厅网站网站平台建设包括哪些
  • 网站建设合同报价凡客平台