R语言学习之自然语言产生

R语言学习之自然语言产生


己亥第一篇。本文主要介绍利用LSTM(Long Short Term Memory)神经网络来产生自然语言。使用R语言和keras包来完成工作。
主要步骤有:
1, 将全部数据分成不同的训练短语和目标字符(即短语的下一个字符)
2, 将训练短语和目标字符向量化
3,构建神经网络模型
4,训练模型
5,模型对一个随机输入的短语进行预测并产生其目标字符
6,用产生的字符更新5中的输入短语,然后重新预测下一个字符。如此循环直到产生字符个数满足要求。

以下为具体实现代码:

library(keras)
library(stringr)
#path <- get_file("D:/Play/R/DeepLearningWithR/Generator/nietzsche.txt",
#                 origin = "https://s3.amazonaws.com/textdatasets/nietzsche.txt")
path <- "D:/Play/R/DeepLearningWithR/Generator/nietzsche.txt" #使用尼采的诗作为训练数据
text <- tolower(readChar(path, file.info(path)$size, useBytes = TRUE)) #将字母都转为小写
cat("Corpus length: ", nchar(text), "\n")
max_len <- 20 #一次读入字符个数
step <- 10 #读入字符间隔
text_indexes <- seq(1, nchar(text) - max_len, by = step) #得到每次读入起始位置
sentences <- str_sub(text, text_indexes, text_indexes + max_len - 1) #得到所有短语
next_char <- str_sub(text, text_indexes + max_len, text_indexes + max_len) #得到每个短语的下一个字符
cat("Number of sentences: ", length(sentences), "\n")
chars <- unique(sort(strsplit(text, "")[[1]])) #得到所有不同的字符
cat
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值