matlab categorical 转double_MATLAB: 用LSTM网络预测《冰与火之歌》

本文介绍了如何使用MATLAB进行深度学习,通过LSTM网络预测《冰与火之歌》的文本。数据预处理包括删除中文信息,确保UTF-8编码。训练模型包括wordembedding层、LSTM层、dropout和全连接层,经过10小时训练。最终展示生成的以'J'开头的文本片段,展示了马丁风格的文本模仿。
摘要由CSDN通过智能技术生成

这篇文章主要在于介绍如何用MATLAB进行深度学习,进而利用训练的网络模型生成文本。对于“预测”的结果,不发表意见(其实就是不准)。

1,数据读取

首先需要准备好要训练的文本,《冰与火之歌》第1-5卷。我从网上找的,删除其中的中文信息(汉字、汉字标点等)。注意,确保文本的编码方式为UTF-8,以免出现乱码。如果不是的话,可以用vs code 另存。

以下代码仅供参考。

function [iceAndFire,XTrain,YTrain] = readData()
parNum = 0;       % 段落数
newlineChar = compose("x00B6"); 
spaceChar = compose("x00B7");
endofTextChar = compose("x2403");
tabChar = char(compose("x3000"));
for ii = 1:5
    fid = fopen(['冰与火之歌' num2str(ii) '.txt'],'rt','n','UTF-8');
    while(~feof(fid))
        tmp = fgets(fid);
        % 去掉制表符
        tmp(tmp == tabChar) = []; 
        % 去掉行首的空格
        while length(tmp)>=20 && tmp(1) == ' '
            tmp(1) = [];
        end
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值