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

网站经营性备案四川华地建设工程公司网站

网站经营性备案,四川华地建设工程公司网站,中山网页制作公司,在荔浦找事情做投简历那个网站一、定义 1、语言模型的目标是估计序列的联合概率,一个理想的语言模型就能够基于模型本身生成自然文本。 2、对一个文档(词元)序列进行建模, 假设在单词级别对文本数据进行词元化。 3、计数建模 (1)其中…

一、定义

1、语言模型的目标是估计序列的联合概率,一个理想的语言模型就能够基于模型本身生成自然文本。

2、对一个文档(词元)序列进行建模, 假设在单词级别对文本数据进行词元化。

3、计数建模

(1)其中𝑛(𝑥)和𝑛(𝑥,𝑥′)分别是单个单词和连续单词对的出现次数

4、N元语法

5、用空间换时间:统计单词在数据集中的出现次数, 然后将其除以整个语料库中的单词总数。

6、齐普夫定律:词频以一种明确的方式迅速衰减。 将前几个单词作为例外消除后,剩余的所有单词大致遵循双对数坐标图上的一条直线。 

二、构建自然语言统计

import random
import torch
from d2l import torch as d2ltokens = d2l.tokenize(d2l.read_time_machine())
# 因为每个文本行不一定是一个句子或一个段落,因此我们把所有文本行拼接到一起
corpus = [token for line in tokens for token in line]
vocab = d2l.Vocab(corpus)
vocab.token_freqs[:10]

1、N元语法

#一元
freqs = [freq for token, freq in vocab.token_freqs]
#二元
bigram_tokens = [pair for pair in zip(corpus[:-1], corpus[1:])]
bigram_vocab = d2l.Vocab(bigram_tokens)
#三元
trigram_tokens = [triple for triple in zip(corpus[:-2], corpus[1:-1], corpus[2:])]
trigram_vocab = d2l.Vocab(trigram_tokens)

2、随机采样

def seq_data_iter_random(corpus, batch_size, num_steps):  #@save"""使用随机抽样生成一个小批量子序列"""# 随机对序列进行分区corpus = corpus[random.randint(0, num_steps - 1):]# 减去1,是因为我们需要考虑标签num_subseqs = (len(corpus) - 1) // num_steps# 长度为num_steps的子序列的起始索引initial_indices = list(range(0, num_subseqs * num_steps, num_steps))# 在随机抽样的迭代过程中,random.shuffle(initial_indices)def data(pos):# 返回从pos位置开始的长度为num_steps的序列return corpus[pos: pos + num_steps]#因为subseq有若干个batchenum_batches = num_subseqs // batch_sizefor i in range(0, batch_size * num_batches, batch_size):# 在这里,initial_indices包含子序列的随机起始索引initial_indices_per_batch = initial_indices[i: i + batch_size]#基于到目前为止我们看到的词元来预测下一个词元, 标签是移位了一个词元的原始序列X = [data(j) for j in initial_indices_per_batch]Y = [data(j + 1) for j in initial_indices_per_batch]yield torch.tensor(X), torch.tensor(Y)

3、顺序分区

def seq_data_iter_sequential(corpus, batch_size, num_steps):  #@save"""使用顺序分区生成一个小批量子序列"""# 从随机偏移量开始划分序列offset = random.randint(0, num_steps)num_tokens = ((len(corpus) - offset - 1) // batch_size) * batch_sizeXs = torch.tensor(corpus[offset: offset + num_tokens])Ys = torch.tensor(corpus[offset + 1: offset + 1 + num_tokens])Xs, Ys = Xs.reshape(batch_size, -1), Ys.reshape(batch_size, -1)num_batches = Xs.shape[1] // num_stepsfor i in range(0, num_steps * num_batches, num_steps):X = Xs[:, i: i + num_steps]Y = Ys[:, i: i + num_steps]yield X, Y

4、两个采样函数包装到一个类中

class SeqDataLoader:  #@save"""加载序列数据的迭代器"""def __init__(self, batch_size, num_steps, use_random_iter, max_tokens):if use_random_iter:self.data_iter_fn = d2l.seq_data_iter_randomelse:self.data_iter_fn = d2l.seq_data_iter_sequentialself.corpus, self.vocab = d2l.load_corpus_time_machine(max_tokens)self.batch_size, self.num_steps = batch_size, num_stepsdef __iter__(self):return self.data_iter_fn(self.corpus, self.batch_size, self.num_steps)

5、同时返回数据迭代器和词表

def load_data_time_machine(batch_size, num_steps,  #@saveuse_random_iter=False, max_tokens=10000):"""返回时光机器数据集的迭代器和词表"""data_iter = SeqDataLoader(batch_size, num_steps, use_random_iter, max_tokens)return data_iter, data_iter.vocab

三、总结

1、语言模型是自然语言处理的关键。

2、𝑛元语法通过截断相关性,为处理长序列提供了一种实用的模型。

3、长序列存在一个问题:它们很少出现或者从不出现。

4、齐普夫定律支配着单词的分布,这个分布不仅适用于一元语法,还适用于其他𝑛元语法。

5、读取长序列的主要方式是随机采样和顺序分区。在迭代过程中,后者可以保证来自两个相邻的小批量中的子序列在原始序列上也是相邻的。

http://www.yayakq.cn/news/585839/

相关文章:

  • 广州市网站设计PHP做克隆网站
  • 成都网站外包优化小网站怎么建设
  • 电子政务网站建设的特点网站推广公司兴田德润在哪儿
  • 专门做防盗门的网站学生做网站怎么收费
  • 哪个网络公司做网站好哈尔滨口碑好的网站建设
  • 如何建设品牌网站程序开发是什么意思
  • 肇庆专业网站建设公司网站基本维护
  • 桂林龙胜网站建设深圳网站制作公司价位
  • 技术号的网站建设北京加盟网站建设
  • 企业网站制作与维护wordpress购物
  • 微网站在线制作wordpress 局域网访问不了
  • 如何编辑网站标题专门做灯具海报的网站
  • 网站开发基本流程拖拽做网站
  • 佛山有哪些建设网站的公司门牌设计图片
  • 医疗科技网站建设专门做二手手机的网站
  • 网站维护费用明细东莞招标网官网
  • 做医药中间体的外贸网站网站意识形态建设
  • 四方区企业型网站建设如何自己制作自己的网站
  • 泉州城乡住房建设厅网站站群cms建站系统免费
  • 泰安网站建设哪家强中跃建设集团网站
  • 百度快照 直接进网站ppt模板下载的网站有哪些
  • 做外贸那里发广告网站衡阳网站定制
  • 网站评估怎么做wordpress 文章 总数
  • 南宁网站设计可以找我北京网站开开发公司电话
  • 呼伦贝尔网站建设维护南通网站推广排名
  • 网站建设衤金手指花总十五做个网站多少钱合适
  • 织梦网站模版下载ssl aws wordpress
  • 深圳市涂能装饰设计公司网站网站备案 多少钱
  • 娱乐网站设计与实现昆山高端网站建设公司
  • 微信小程序注册后怎么登录免费seo技术教程视频