在社交媒体时代,用户花费大量时间浏览重复的内容。研究表明,用户大约有25%的时间用于阅读相同的信息。此外,许多推文不会出现在仪表板上,可能只能了解到热门话题,而非热门话题则被忽略。在热门话题中,可能只会阅读前五条推文及其评论。那么,如何避免在Twitter上浪费时间呢?建议是对Twitter热门标签数据进行总结,这样就可以在不到2分钟内阅读完所有热门推文。
本文将向解释如何利用自然语言处理(NLP)预训练模型对基于标签的Twitter帖子进行摘要。将使用4种(T5、BART、GPT-2、XLNet)预训练模型来完成这项工作。
为什么要使用4种预训练模型进行摘要?每个预训练模型都有自己的架构和权重,因此这些模型给出的摘要输出可能会有所不同。在不同的模型上测试Twitter数据,然后选择最符合理解的摘要模型,并将该模型部署到生产中。
让从收集Twitter实时数据开始。可以通过以下两种方式获取Twitter实时数据:
将使用第一种方法来获取数据。一旦获得了Twitter API的凭证,请按照以下代码通过API获取Twitter数据。
# 此处省略实际代码,仅作示例
# 请替换为实际的API调用代码
现在,让开始使用预训练模型逐一总结数据。
T5是一个在各种NLP任务中使用的最新模型,包括摘要。将使用transformers库下载T5预训练模型,并将该模型加载到代码中。Transformers库由Hugging Face团队开发和维护,它是一个开源库。
# 此处省略实际代码,仅作示例
# 请替换为实际的T5模型使用代码
关于代码的观察:可以使用不同类型的T5预训练模型,它们具有不同的权重和架构。transformer库中可用的T5模型版本包括t5-base、t5-large、t5-small、t5-3B和t5-11B。Return_tensor值应为pt,适用于PyTorch。用于训练预模型的最大句子长度为512,因此请将max_length值保持为512。随着length_penaly值的增加,摘要句子的长度会增加。Length_penaly=1表示没有惩罚。
BART结合了BERT(双向编码器)和GPT(从左到右的解码器)架构,采用seq2seq翻译。BART在摘要任务中取得了最新的成果。BART预训练模型在CNN/Daily mail数据上进行训练,用于摘要任务,但它也会为Twitter数据提供良好的结果。
# 此处省略实际代码,仅作示例
# 请替换为实际的BART模型使用代码
关于代码的观察:可以使用min_length和max_length来增加或减少摘要的长度。理想情况下,摘要长度应为整篇文章长度的10%到20%。这个模型最适合摘要新闻文章,但它也可以为Twitter数据提供良好的结果。可以使用不同的BART模型版本,如bart-large、bart-base、bart-large-cnn和bart-large-mnli。
GPT-2模型拥有150万个参数,是一个大型基于transformer的语言模型。它被训练用于预测下一个词。因此,可以使用这个特性来摘要Twitter数据。
# 此处省略实际代码,仅作示例
# 请替换为实际的GPT-2模型使用代码
关于代码的观察:transformer_type值将根据使用的预训练模型而变化。可以根据需要更改transformer_model_key。GPT-2有四个版本:gpt2、gpt2-medium、gpt2-large和gpt2-XL。这个库也有min_length和max_length选项。可以根据需要为这些变量分配值。
# 此处省略实际代码,仅作示例
# 请替换为实际的XLNet模型使用代码