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

做网站要学的代码引流推广推广微信hyhyk1效果好

做网站要学的代码,引流推广推广微信hyhyk1效果好,个人网站备案后可以做行业内容吗,joomla 网站图标首先要安装:pip install subword-nmt subword-nmt是一种用于处理自然语言处理任务中的词汇外问题的工具,支持几种不同的算法 一、介绍 BPE:这是一种流行分词算法,可以有效的平衡词汇表大小和步数,分词采用共现性。 …

首先要安装:pip install subword-nmt

'subword-nmt'是一种用于处理自然语言处理任务中的词汇外问题的工具,支持几种不同的算法

一、介绍

BPE:这是一种流行分词算法,可以有效的平衡词汇表大小和步数,分词采用共现性。

步骤:

1.准备足够大的训练语料

2.确定期望的subword词表大小(超参)

3.将单词拆分为字符序列并在末尾添加后缀"</w>",这样就可以统计单词频率。 比如一开始有一个l字母,现在编程l</w>5,就说明出现了五次。停止符</w>的意义在于表示subword是词后缀。每次合并后词表可能出现三种变化:

+1:表明加入合并后的新字词,同时原来在的2个子词还保留;

0:如果一个字词不是单独出现的,就被消解;

-1:表明加入合并后的新词,同时原来2个字词都被消解。实际上,随着合并次数增加,词表大小通常先增加后减小。

4.统计每一个连续字节对出现的频率,选择最高频的配对比如lo</w>5

5.重复

“low” 和 “lower” 合并后,可能生成子词 “low” 和 “er”

二、代码

导包:

随机种子:

  1. 确保实验可复现性
  2. 控制以下随机过程的一致性:
    • 神经网络权重初始化
    • 数据加载顺序
    • 数据增强中的随机变换
    • Dropout等随机操作
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
from tqdm.auto import tqdm
import torch
import torch.nn as nn
import torch.nn.functional as Fprint(sys.version_info)
for module in mpl, np, pd, sklearn, torch:print(module.__name__, module.__version__)device = torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
print(device)seed = 42
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
np.random.seed(seed)

准备数据:

cleaned_df = pd.read_csv("imdb_processed.csv")
print(cleaned_df.shape) # (50000, 2), 50000条评论, 2列# 随机打乱数据,取训练集和测试集
np.random.seed(seed) #随机
cleaned_df = cleaned_df.sample(frac=1).reset_index(drop=True)#打乱,frac=1表示全部打乱(frac是比例,reset_index(drop=True)是重新索引
with open("imdb_train.txt", "w", encoding="utf8") as file:# 保存训练集for line in cleaned_df.processed.values[:25000]:#只保存了processed列,即评论文本,没有保存label列file.write(line.lower() + "\n") #变为小写,token数量少一些with open("imdb_test.txt", "w", encoding="utf8") as file:# 保存测试集for line in cleaned_df.processed.values[25000:]:file.write(line.lower() + "\n")
  • np.random.seed(seed):固定随机种子,确保每次打乱顺序一致(可复现性)
  • sample(frac=1):按100%比例随机采样(即打乱数据顺序)
  • reset_index(drop=True):重置索引并丢弃旧索引
# 学习bpe分词(很慢,学一次就好)
# -i 选择学习的文件
# -o 核心输出文件,分词需要用到imdb_bpe_code,生成的 imdb_bpe_code 文件包含了学习到的 BPE 操作规则。这些规则用于将单词分割成子词单元
# --write-vocabulary 字典输出文件,imdb_bpe_vocab 文件包含了根据 BPE 规则生成的词汇表,列出了所有子词单元及其频率
# -s 词表大小
!subword-nmt learn-joint-bpe-and-vocab -i ./imdb_train.txt -o ./imdb_bpe_code --write-vocabulary ./imdb_bpe_vocab -s 8000

 使用 subword-nmt 工具包进行 BPE(Byte Pair Encoding)子词分词训练

# 应用bpe分词,-c 指定 BPE 编码的配置文件,就是上面生成的 imdb_bpe_code 文件
!subword-nmt apply-bpe -c ./imdb_bpe_code -i ./imdb_train.txt -o ./imdb_train_bpe.txt
!subword-nmt apply-bpe -c ./imdb_bpe_code -i ./imdb_test.txt -o ./imdb_test_bpe.txt
#-c ./imdb_bpe_code   # 指定 BPE 合并规则配置文件(学习阶段生成)
#-i ./imdb_train.txt  # 输入:原始训练集文本
#-o ./imdb_train_bpe.txt  # 输出:子词化后的训练文本
工作流程
  1. 加载规则:读取 imdb_bpe_code 中的合并优先级(如 e s → es
  2. 贪婪匹配:对每个单词从长到短尝试应用已有合并规则
  3. 添加分隔符:通常用 @@ 标记子词边界(可配置)

 

from torch.utils.data import Dataset, DataLoader# 随后加载数据集就从bpe分词的文件里加载
class IMDBDataset(Dataset):def __init__(self, mode="train"):df = pd.read_csv("imdb_subwords.csv").query("split == '{}'".format(mode)) # 加载训练集或测试集,query语句筛选self.texts = df["subwords10k"].values # 评论文本self.labels = df["label"].values # 评论标签def __len__(self):return len(self.labels)def __getitem__(self, idx):return self.texts[idx].split(), self.labels[idx] # 返回文本和标签train_ds = IMDBDataset("train")
test_ds = IMDBDataset("test")

 df = pd.read_csv("imdb_subwords.csv").query("split == '{}'".format(mode))详解:

  1. pd.read_csv("imdb_subwords.csv")

    • 这是Pandas库读取CSV文件的标准方法
    • 会返回一个DataFrame对象
    • 文件"imdb_subwords.csv"应位于当前工作目录或指定路径下
  1. .query("split == '{}'".format(mode))

    • 使用DataFrame的query()方法进行数据过滤
    • split是DataFrame中的一个列名(应该表示数据集划分类型)
    • '{}'是字符串格式化占位符,会被mode变量的值替换
    • 例如:当mode = "train"时,实际执行的查询条件是split == 'train'
  • 文本:BPE分词字符串(如"I love this movie")→ 通过.split()转为列表(["I", "love", ...]

 构造字典:

#载入词表,看下词表长度,词表就像英语字典
word2idx = {"[PAD]": 0,     # 填充 token"[BOS]": 1,     # begin of sentence"[UNK]": 2,     # 未知 token"[EOS]": 3,     # end of sentence
}
idx2word = {value: key for key, value in word2idx.items()}
print(idx2word)
index = len(idx2word) # 词表长度,现在为4#%%
threshold = 1  # 出现次数低于此的token舍弃
with open("imdb_bpe_vocab", "r", encoding="utf8") as file:for line in tqdm(file.readlines()):token, counts = line.strip().split()#左右空格去掉if int(counts) >= threshold: #词频大于等于1就要word2idx[token] = index # 加入词表idx2word[index] = token # 加入反向词典index += 1vocab_size = len(word2idx)
print("vocab_size: {}".format(vocab_size))
#%%
# 选择 max_length
length_collect = {}
for text, label in train_ds:length = len(text)length_collect[length] = length_collect.get(length, 0) + 1MAX_LENGTH = 500
plt.bar(length_collect.keys(), length_collect.values())
plt.axvline(MAX_LENGTH, label="max length", c="gray", ls=":")
plt.legend()
plt.show()


文章转载自:

http://TdEwSXqB.pxcmq.cn
http://pDI27Wg6.pxcmq.cn
http://rHChr5fT.pxcmq.cn
http://fXueWrX7.pxcmq.cn
http://Q0D8xHFu.pxcmq.cn
http://pbYSGUYA.pxcmq.cn
http://dNdqJXOY.pxcmq.cn
http://s2lcXEO5.pxcmq.cn
http://atojSrLS.pxcmq.cn
http://5Y0zn6TY.pxcmq.cn
http://7nGhlj3B.pxcmq.cn
http://UuwIoNqd.pxcmq.cn
http://JNHuvM3W.pxcmq.cn
http://ApvYtsIu.pxcmq.cn
http://JgN0AwyI.pxcmq.cn
http://4suxUv8a.pxcmq.cn
http://RiKMse0N.pxcmq.cn
http://3naQYvPY.pxcmq.cn
http://DPhfLivZ.pxcmq.cn
http://qNObHF8f.pxcmq.cn
http://kPP0wLYV.pxcmq.cn
http://d97vclK8.pxcmq.cn
http://RxH8ae9e.pxcmq.cn
http://lxatPdq8.pxcmq.cn
http://UujBaMa9.pxcmq.cn
http://UayFa6Yy.pxcmq.cn
http://bkw6gpVY.pxcmq.cn
http://9XaiKWjX.pxcmq.cn
http://6GIaRVoo.pxcmq.cn
http://K3Kix7pE.pxcmq.cn
http://www.dtcms.com/wzjs/621785.html

相关文章:

  • 别人做的网站山西新冠最新消息今天
  • 中原区建设局网站徐州做网站
  • 广州网站seo地址网站色哦优化8888
  • 怎么做网站设计修改WordPress网站
  • 品牌网站建设1毛尖网络seo培训
  • 珠海正规网站制作哪家强中国建材网站
  • 福利站wordpress温岭营销型网站建设
  • 网站欢迎页面在线设计小兔自助建站系统
  • 王悦做网站番禺俊才网官网
  • 建公司网站步骤如何制作电脑公司网站
  • 广州建设网站企业asp.net 网站安全 检测
  • 做网站需要多少钱一个月wordpress手机拍照插件
  • 电商网站服务器中国网站建设新闻
  • 关注江苏建设厅网站世界500强企业的核心价值观
  • 模板网站怎么做301扬州工程建设信息 网站
  • 网站网址黄页大全免费网站维护主要做什么
  • 上海微信网站建设费用海口建设工程信息网站
  • 建材公司网站建设案例重庆免费微网站
  • 网站开发软硬件中国建设银行的网站设计
  • 微信公众号模板素材网站最便宜云服务器
  • html网站地图怎么做大连网站
  • 网站中 点击出现登录框怎么做wordpress手机显示图片
  • 网站内容建设的原则是什么制定一网站建设的市场定位的方案
  • 企业网站开发框架个人适合网站类型
  • 夸克建站系统源码下载企业取名
  • 建设进出口外贸网站做电商在什么网站吗
  • 珠宝类网站建设可执行报告定制开发app到底要多少钱
  • oa系统网站建设方案wordpress汉字验证码
  • 重庆产品推广类网站域名备案 网站名称
  • 做前端常用的网站及软件下载太仓网站建设哪家好