机器学习&&深度学习——NLP实战(情感分析模型——数据集)

这篇具有很好参考价值的文章主要介绍了机器学习&&深度学习——NLP实战(情感分析模型——数据集)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er
🌌上期文章:机器学习&&深度学习——BERT(来自transformer的双向编码器表示)
📚订阅专栏:机器学习&&深度学习
希望文章对你们有所帮助

引入

预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。如下图所示:
机器学习&&深度学习——NLP实战(情感分析模型——数据集),机器学习&&深度学习,机器学习,深度学习,自然语言处理,人工智能

我们的重点是如何应用深度语言表征学习来解决自然语言处理问题。现今有两种流行且具有代表性的下游自然语言处理任务: 情感分析和自然语言推断。这里先进行情感分析的模型构建和训练。
在给定预训练的文本表示的情况下,分析单个文本,从而探讨情感分析模型。
下面,我们从情感分析应用开始,分别解读基于循环神经网络和卷积神经网络的模型设计。
由于情感可以被分类为离散的极性或尺度(例如,积极的和消极的),我们可以将情感分析看作一项文本分类任务,它将可变长度的文本序列转换为固定长度的文本类别。
在这里,我们将使用斯坦福大学的large movie review dataset数据集来进行情感分析。它由一个训练集和一个测试集组成,其中包含25000个电影评论。在这两个数据集中,“积极”和“消极”标签的数量相同,表示不同的情感极性。

读取数据集

首先,下载并提取路径…/data/aclImdb中的IMDb评论数据集。(可能会下的很久)

#@save
d2l.DATA_HUB['aclImdb'] = (
    'http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz',
    '01ada507287d82875905620988597833ad4e0903')

data_dir = d2l.download_extract('aclImdb', 'aclImdb')

Downloading …\data\aclImdb_v1.tar.gz from http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz…

接下来,读取训练和测试数据集。每个样本都是一个评论及其标签:1表示“积极”,0表示“消极”。

#@save
def read_imdb(data_dir, is_train):
    """读取IMDb评论数据集文本序列和标签"""
    data, labels = [], []
    for label in ('pos', 'neg'):
        folder_name = os.path.join(data_dir, 'train' if is_train else 'test',
                                   label)
        for file in os.listdir(folder_name):
            with open(os.path.join(folder_name, file), 'rb') as f:
                review = f.read().decode('utf-8').replace('\n', '')
                data.append(review)
                labels.append(1 if label == 'pos' else 0)
    return data, labels

train_data = read_imdb(data_dir, is_train=True)
print('训练集数目:', len(train_data[0]))
for x, y in zip(train_data[0][:3], train_data[1][:3]):
    print('标签:', y, 'review:', x[0:60])

运行结果:

训练集数目: 25000
标签: 1 review: Bromwell High is a cartoon comedy. It ran at the same time a
标签: 1 review: Homelessness (or Houselessness as George Carlin stated) has
标签: 1 review: Brilliant over-acting by Lesley Ann Warren. Best dramatic ho

预处理数据集

将每个单词作为一个词元,过滤掉出现不到5次的单词,我们从训练数据集中创建一个词表。

train_tokens = d2l.tokenize(train_data[0], token='word')
vocab = d2l.Vocab(train_tokens, min_freq=5, reserved_tokens=['<pad>'])

在词元化之后,让我们绘制评论词元长度的直方图。

d2l.set_figsize()
d2l.plt.xlabel('# tokens per review')
d2l.plt.ylabel('count')
d2l.plt.hist([len(line) for line in train_tokens], bins=range(0, 1000, 50));
d2l.plt.show()

运行结果:
机器学习&&深度学习——NLP实战(情感分析模型——数据集),机器学习&amp;&amp;深度学习,机器学习,深度学习,自然语言处理,人工智能
显然,评论的长度各不相同。为了每次处理一小批量这样的评论,我们通过截断和填充将每个评论的长度设置为500。这和之前实现机器翻译时对数据集的预处理步骤类似。

num_steps = 500  # 序列长度
train_features = torch.tensor([d2l.truncate_pad(
    vocab[line], num_steps, vocab['<pad>']) for line in train_tokens])

创建数据迭代器

现在我们可以创建数据迭代器了。在每次迭代中,都会返回一小批量样本。

train_iter = d2l.load_array((train_features,
    torch.tensor(train_data[1])), 64)

for X, y in train_iter:
    print('X:', X.shape, ', y:', y.shape)
    break
print('小批量数目:', len(train_iter))

输出结果:

X: torch.Size([64, 500]) , y: torch.Size([64])
小批量数目: 391

整合代码

最后,我们将上述步骤封装到load_data_imdb函数中。它返回训练和测试数据迭代器以及IMDb评论数据集的词表。

#@save
def load_data_imdb(batch_size, num_steps=500):
    """返回数据迭代器和IMDb评论数据集的词表"""
    data_dir = d2l.download_extract('aclImdb', 'aclImdb')
    train_data = read_imdb(data_dir, True)
    test_data = read_imdb(data_dir, False)
    train_tokens = d2l.tokenize(train_data[0], token='word')
    test_tokens = d2l.tokenize(test_data[0], token='word')
    vocab = d2l.Vocab(train_tokens, min_freq=5)
    train_features = torch.tensor([d2l.truncate_pad(
        vocab[line], num_steps, vocab['<pad>']) for line in train_tokens])
    test_features = torch.tensor([d2l.truncate_pad(
        vocab[line], num_steps, vocab['<pad>']) for line in test_tokens])
    train_iter = d2l.load_array((train_features, torch.tensor(train_data[1])),
                                batch_size)
    test_iter = d2l.load_array((test_features, torch.tensor(test_data[1])),
                               batch_size,
                               is_train=False)
    return train_iter, test_iter, vocab

小结

1、情感分析的目的是研究人们在文本中的情感,这是一个文本分类问题,它将可变长度的文本序列进行转换,转换成为固定长度的文本类别。
2、经过预处理后,我们可以使用词表将IMDb评论数据集加载到数据迭代器中。文章来源地址https://www.toymoban.com/news/detail-668405.html

到了这里,关于机器学习&&深度学习——NLP实战(情感分析模型——数据集)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【NLP】将机器学习应用于情感分析

      🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】 ​  🖍foreword ✔说

    2023年04月14日
    浏览(30)
  • 大数据毕设项目 - 深度学习 机器学习 酒店评价情感分析算法实现

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(28)
  • 机器学习&&深度学习——NLP实战(自然语言推断——数据集)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——NLP实战(情感分析模型——textCNN实现) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 之前我们分别使用了RNN和textCNN实现了情感分析模型,这个任务的目的是将单

    2024年02月12日
    浏览(38)
  • 使用深度学习模型进行情感分析

    在本篇文章中,我们将介绍如何使用深度学习模型进行情感分析。具体来说,我们将使用卷积神经网络(Convolutional Neural Network,CNN)对 IMDB 数据集进行情感分类。 1. 数据集介绍 IMDB 数据集是一个常用的自然语言处理数据集,包含了 50000 条电影评论。其中,25000 条评论用于训

    2023年04月15日
    浏览(36)
  • 机器学习&&深度学习——序列模型(NLP启动!)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——卷积神经网络(LeNet) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 现在多多少少是打下了一点基础了,因为我的本科毕业论文是NLP方向的,所以现在需要赶忙打

    2024年02月14日
    浏览(29)
  • 机器学习&&深度学习——NLP实战(自然语言推断——注意力机制实现)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——NLP实战(自然语言推断——数据集) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 在之前已经介绍了什么是自然语言推断,并且下载并处理了SNLI数据集。由于许

    2024年02月11日
    浏览(27)
  • AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析

    专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow专栏:https://blog.csdn.net/superdangbo/category_869

    2024年02月05日
    浏览(27)
  • ChatGPT 使用 拓展资料:无需任何机器学习,如何利用大语言模型做情感分析?

    ChatGPT 拓展资料:无需任何机器学习,如何利用大语言模型做情感分析? 用于从文本数据中识别情感 Glove Vectors:

    2023年04月25日
    浏览(31)
  • NLP学习笔记——情感分析一 (简介)

    目录 一、什么是情感分析  二、研究现状及存在问题 1、研究现状 (1). 传统情感分类方法 (2). 短文本情感分类方法 (3). 基于深度学习的方法  2、存在问题 (1). 文化差异 (2).情感词典无法覆盖全部情感词汇 (3). 语义相似不等于情感相似 三、情感分析的应用         情感分析又

    2023年04月08日
    浏览(24)
  • python数据分析之利用多种机器学习方法实现文本分类、情感预测

           大家好,我是带我去滑雪!        文本分类是一种机器学习和自然语言处理(NLP)任务,旨在将给定的文本数据分配到预定义的类别或标签中。其目标是为文本数据提供自动分类和标注,使得可以根据其内容或主题进行组织、排序和分析。文本分类在各种应用场景

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包