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

小程序和网站的区别兼职做任务的网站

小程序和网站的区别,兼职做任务的网站,wordpress中英文标题,网站开发播放大视频卡顿在这一部分中#xff0c;我们将探讨如何使用 Transformer 模型将长文档压缩为摘要#xff0c;这个任务被称为文本摘要。文本摘要是 NLP 领域中最具挑战性的任务之一#xff0c;因为它需要理解长篇文本并生成连贯的总结#xff0c;捕捉文档中的核心主题。然而#xff0c;当… 在这一部分中我们将探讨如何使用 Transformer 模型将长文档压缩为摘要这个任务被称为文本摘要。文本摘要是 NLP 领域中最具挑战性的任务之一因为它需要理解长篇文本并生成连贯的总结捕捉文档中的核心主题。然而当文本摘要任务处理得当时它能够极大地提高各种业务流程的效率减轻专家阅读长篇文档的负担。 虽然 Hugging Face Hub 上已经有许多用于文本摘要的预训练模型但这些模型几乎都只适用于英文文档。因此在本节中我们将增加一些变化训练一个可以处理英语和西班牙语的双语模型。 1. 加载数据 准备多语言语料库 我们将使用多语言亚马逊评论语料库Multilingual Amazon Reviews Corpus来创建双语摘要模型。该语料库包含六种语言的亚马逊产品评论通常用于多语言分类器的基准测试。由于每条评论都有一个简短的标题我们可以将这些标题作为目标摘要让模型从中学习首先让我们从 Hugging Face Hub 下载英语和西班牙语的子集 import osos.environ[http_proxy] os.environ[https_proxy] from datasets import load_datasetspanish_dataset load_dataset(amazon_reviews_multi, es) english_dataset load_dataset(amazon_reviews_multi, en) english_dataset每种语言的训练集有 20 万条评论验证集和测试集各有 5,000 条评论。我们感兴趣的评论信息包含在 review_body评论内容和 review_title评论标题列中。让我们定义一个函数从训练集中随机抽取几条样本看看评论和标题的样子 def show_samples(dataset, num_samples3, seed42):sample dataset[train].shuffle(seedseed).select(range(num_samples))for example in sample:print(f\n Title: {example[review_title]})print(f Review: {example[review_body]})show_samples(english_dataset)这样我们就可以看到评论和标题的多样性评论内容从积极到消极不等。训练一个能够处理所有 40 万条评论的模型需要耗费大量时间因此我们决定专注于为单一产品领域生成摘要。 我们将重点放在书籍评论领域筛选出书籍book和电子书购买digital_ebook_purchase相关的评论 def filter_books(example):return (example[product_category] bookor example[product_category] digital_ebook_purchase)spanish_books spanish_dataset.filter(filter_books) english_books english_dataset.filter(filter_books) show_samples(english_books)接着我们将英语和西班牙语的评论合并为一个 DatasetDict 对象并随机打乱数据以确保模型不会只关注某一种语言 from datasets import concatenate_datasets, DatasetDictbooks_dataset DatasetDict()for split in english_books.keys():books_dataset[split] concatenate_datasets([english_books[split], spanish_books[split]])books_dataset[split] books_dataset[split].shuffle(seed42)show_samples(books_dataset)在处理文本摘要任务时短参考摘要可能会使模型输出极简的结果因此我们通过过滤掉标题过短的样本确保模型可以生成更有意义的摘要 books_dataset books_dataset.filter(lambda x: len(x[review_title].split()) 2)2. 数据预处理 文本摘要任务与机器翻译类似我们需要将长文本“翻译”成一个更短的版本。大多数用于摘要任务的 Transformer 模型采用编码器-解码器架构如 mT5它是一种多语言 Transformer 模型。 首先我们加载与预训练模型 mt5-small 相关的 tokenizer并测试它是否能够正确处理输入文本 from transformers import AutoTokenizermodel_checkpoint google/mt5-small tokenizer AutoTokenizer.from_pretrained(model_checkpoint)inputs tokenizer(I loved reading the Hunger Games!) inputs接下来为了确保模型不会处理过长的输入和输出我们在对评论和标题进行标记时对它们进行截断 max_input_length 512 max_target_length 30def preprocess_function(examples):model_inputs tokenizer(examples[review_body],max_lengthmax_input_length,truncationTrue,)labels tokenizer(examples[review_title], max_lengthmax_target_length, truncationTrue)model_inputs[labels] labels[input_ids]return model_inputstokenized_datasets books_dataset.map(preprocess_function, batchedTrue)3. 文本摘要的评估指标 文本摘要任务的常用评估指标是 ROUGE 分数。它衡量生成摘要和参考摘要之间的重叠程度。我们可以使用 evaluate 库中的 rouge_score 来计算这些分数 import evaluaterouge_score evaluate.load(rouge)scores rouge_score.compute(predictions[I absolutely loved reading the Hunger Games],references[I loved reading the Hunger Games] ) scores4. 创建强大的基线模型 一个常见的文本摘要基线是提取文章的前三个句子。我们可以使用 nltk 库来处理句子边界创建一个简单的函数来提取前三个句子并计算 ROUGE 分数 from nltk.tokenize import sent_tokenizedef three_sentence_summary(text):return \n.join(sent_tokenize(text)[:3])def evaluate_baseline(dataset, metric):summaries [three_sentence_summary(text) for text in dataset[review_body]]return metric.compute(predictionssummaries, referencesdataset[review_title])score evaluate_baseline(books_dataset[validation], rouge_score) score5. 模型 我们加载预训练的 mt5-small 模型并使用 DataCollatorForSeq2Seq 来动态填充输入和标签。接下来设置数据加载器和优化器并将模型和数据加载器传递给 Accelerator.prepare() 进行训练 from transformers import AutoModelForSeq2SeqLM, DataCollatorForSeq2Seq, AdamW, get_scheduler, Acceleratormodel AutoModelForSeq2SeqLM.from_pretrained(model_checkpoint) data_collator DataCollatorForSeq2Seq(tokenizer, modelmodel)train_dataloader DataLoader(tokenized_datasets[train], shuffleTrue, collate_fndata_collator, batch_size8 )optimizer AdamW(model.parameters(), lr2e-5) lr_scheduler get_scheduler(linear, optimizeroptimizer, num_warmup_steps0, num_training_stepslen(train_dataloader) * 3 )accelerator Accelerator() model, optimizer, train_dataloader, eval_dataloader accelerator.prepare(model, optimizer, train_dataloader, eval_dataloader )6. 训练 我们实现训练循环包括生成摘要、计算 ROUGE 分数和将结果上传到 Hugging Face Hub from tqdm.auto import tqdm import numpy as npprogress_bar tqdm(range(len(train_dataloader) * 3))for epoch in range(3):model.train()for step, batch in enumerate(train_dataloader):outputs model(**batch)loss outputs.lossaccelerator.backward(loss)optimizer.step()lr_scheduler.step()optimizer.zero_grad()progress_bar.update(1)model.eval()generated_tokens []for step, batch in enumerate(eval_dataloader):with torch.no_grad():outputs model.generate(batch[input_ids], attention_maskbatch[attention_mask])generated_tokens.append(outputs)rouge_score.add_batch(predictionsgenerated_tokens, referencesbatch[labels])print(fEpoch {epoch}:, rouge_score.compute())7. 推理 训练完成后我们可以使用 pipeline 进行推理生成书评的摘要 from transformers import pipelinesummarizer pipeline(summarization, modelChaklam/test-summ-accelerate)def print_summary(idx):review books_dataset[test][idx][review_body]title books_dataset[test][idx][review_title]summary summarizer(books_dataset[test][idx][review_body])[0][summary_text]print(f Review: {review})print(f\n Title: {title})print(f\n Summary: {summary})print_summary(100)这样我们就可以生成模型的摘要并与测试集中未见过的书评进行比较。 结语              在本篇博文中我们介绍了如何通过使用 mT5 Transformer 模型来完成文本摘要任务。我们从多语言亚马逊评论语料库中提取了英文和西班牙文的书籍评论并将其标题作为摘要任务的参考。接着通过预处理、使用 mT5 模型进行训练并利用 ROUGE 分数来评估生成摘要的质量我们成功构建了一个双语文本摘要系统。         在实践中文本摘要能够帮助用户快速理解长文档的核心内容而训练一个双语模型可以扩展其应用范围至多语言环境。随着训练的不断深入和数据集的多样性提升该模型有望生成更加简洁和准确的摘要。这一流程不仅展示了 Transformer 模型在自然语言生成任务中的强大能力也为其他多语言任务提供了借鉴和参考。 如果你觉得这篇博文对你有帮助请点赞、收藏、关注我并且可以打赏支持我 欢迎关注我的后续博文我将分享更多关于人工智能、自然语言处理和计算机视觉的精彩内容。 谢谢大家的支持
http://www.hkea.cn/news/14554274/

相关文章:

  • 网站建设优化两千字wordpress 相册 边框
  • 网站开发子孙账号做淘宝客的网站怎么备案
  • 网站开发怎么学习下载源码就能建网站吗
  • 做钓鱼网站查处建设企业网站的模式
  • 显示网站建设精美页面智威汤逊广告公司
  • 想开个网站建设的公司包头seo排名
  • 四川城市建设住建厅网站游戏开发培训学校
  • 浙江网站建设流程百度站长平台网站改版工具
  • 网页制作工具的选择与网站整体网络没有关系wordpress主题 dux1.8
  • 老牌网站建设技术支持 昆明网站建设
  • 防做网站wordpress电子商务中文主题
  • 网站建设与管理考察报告淄博网站优化首选公司
  • wordpress更新网站内容wordpress 加入页面
  • 宠物网站推广怎么做西安优化网站技术
  • 上海企乐网站制作公司装修公司名字大全参考免费
  • 怎么做淘宝推广网站网站建设的主要内容是软件交流
  • 国外有什么做网站的软件吗营销课程培训
  • 中山网络公司网站建设家用电脑网站建设
  • 建一个网页网站广告平面设计教程
  • 网站链群怎么做东莞常平邮编是多少
  • 可信的免费网站建设瑞昌网页设计公司
  • zencart 网站老是跳转到原地址传媒公司合同模板
  • 网站建设征求意见分析报告王也踏青
  • 住房和城乡建设部网站职称查询wordpress没登录跳到登录页面
  • 给个做的网站网站开发符合seo结构
  • 科技备案企业网站东营市公司网站建设价格
  • 好看的设计网站福田哪家建设网站好
  • 建设官方网站需要那些人员网站销售怎么做的
  • 深圳 企业 网站建设哪家好深圳网站建设-中国互联
  • 思勤传媒网站建设公司衡阳seo优化报价