lstm预测单词_下一个单词预测完整指南

本文详述了使用LSTM进行下一个单词预测的方法,涵盖了从理论到实践的全过程,适用于机器学习和自然语言处理的爱好者。通过Python实现,帮助读者理解如何运用LSTM进行文本预测。
摘要由CSDN通过智能技术生成

lstm预测单词

As part of my summer internship with Linagora’s R&D team, I was tasked with developing a next word prediction and autocomplete system akin to that of Google’s Smart Compose. In this article, we look at everything necessary to get started with next word prediction.

在我与Linagora的研发团队进行暑期实习的过程中,我的任务是开发类似于Google Smart Compose的下一个单词预测和自动完成系统。 在本文中,我们研究了开始下一个单词预测所需的一切。

Email continues to be one of the largest forms of communication, professionally as well as personally. It is estimated that almost 3.8 billion users send nearly 300 billion emails a day! Thus, for Linagora’s open source collaborative platform OpenPaaS, which includes an email system, improving user experience is a priority. With real time assisted writing, users are able to craft richer messages from scratch and have a smoother flow as compared to the static counterpart: complete automated replies.

电子邮件仍然是最大的专业和个人通信形式之一。 据估计,近38亿用户每天发送近3000亿封电子邮件! 因此,对于包含电子邮件系统的Linagora开源协作平台OpenPaaS,改善用户体验是当务之急。 借助实时辅助编写功能,与静态副本相比,用户可以从头开始编写更丰富的消息,并且流程更加顺畅:完全自动答复。

A real-time assisted writing system

实时辅助写作系统

The general pipeline of an assisted writing system relies on an accurate and fast next word prediction model. It is crucial to consider several problems in regards to building an industrial language model that enhances user experience: time on inference, model compression, transfer learning to further personalise suggestions.

辅助书写系统的总体流程依赖于准确而快速的下一个单词预测模型。 在构建可增强用户体验的工业语言模型时,考虑几个问题至关重要:推理时间,模型压缩,转移学习以进一步个性化建议。

At the moment, these issues are addressed by the growing use of Deep Learning techniques for mobile keyboard predictions. Leading companies have already made the switch from statistical n-gram models to machine learning based systems deployed on mobile devices. However, with Deep Learning comes the baggage of extremely large model sizes unfit for on-device prediction. As a result, model compression is key to maintaining accuracy while not using too much space. Furthermore, mobile keyboards are also tasked with learning your personal texting habits in order to make predictions that are suited to your style rather than just a general language model . Let’s take a look at how it’s done!

目前,通过深度学习技术越来越多地用于移动键盘预测来解决这些问题。 领先的公司已经从统计n-gram模型转变为部署在移动设备上的基于机器学习的系统。 但是,随着深度学习的到来,非常大的模型尺寸不适合设备上的预测。 结果,模型压缩是在不占用过多空间的情况下保持准确性的关键。 此外,移动键盘还负责学习您的个人发短信习惯,以便做出适合您的风格的预测,而不仅仅是普通的语言模型。 让我们看看它是如何完成的!

Image for post
Next word predictions in Google’s Gboard
Google Gboard中的下一个单词预测

Some useful training corpora

一些有用的训练语料库

In order to evaluate the different model architecture’s I will use to build my language model, it is crucial to have a solid benchmark evaluation set. For this task, I chose the Penn Tree Bank dataset which tests easily if your model is overfitting. Due to the small vocabulary size (roughly 10,000 unique words!), it is imperative to build a model that is well regularised. In addition to this, Enron’s email corpus was used to train on real email data to test predictions in the context of emails (with a much larger and richer vocabulary size of nearly 39,000 unique words).

为了评估不同的模型体系结构,我将用来构建语言模型,拥有一个可靠的基准评估集至关重要。 对于此任务,我选择了Penn Tree Bank数据集,可以轻松测试模型是否过拟合。 由于词汇量较小(大约10,000个唯一的单词!),因此必须构建一个规范化的模型。 除此之外,还使用了安然的电子邮件语料库来训练真实的电子邮件数据,以测试电子邮件上下文中的预测(词汇量更大,更丰富,包含近39,000个唯一单词)。

My task was to build a bilingual model, in French and English, with intensions of generalising to other languages as well. For this, I also considered several widely available French texts. FrWac is a web archive of the whole .fr domain which is a great corpus to train on a diverse set of French sequences. For those with extensive GPU resources, the entire French wikipedia dump is also available online. With my code, I trained on a couple of short stories from Project Gutenberg (another great resource for textual data in multiple languages!)

我的任务是建立法语和英语双语模型,并具有将其推广到其他语言的意图。 为此,我还考虑了几种广泛使用的法语文本。 FrWac是整个.fr域的网络档案,它是训练各种法语序列的强大语料库。 对于拥有大量GPU资源的用户,还可以在线获取整个法语维基百科转储。 通过我的代码,我训练了一些来自Gutenberg项目的短篇故事(另一种很棒的资源,可提供多种语言的文本数据!)

<
### 回答1: LSTM(长短时记忆网络)是一种适用于序列数据建模的神经网络模型,它能够捕捉序列中的长期依赖关系。多变量序列堆叠式LSTM模型可以用于多个时间序列数据之间的关系建模。本文实现的是一个多分类问题,使用Python编写代码。 在代码实现过程中,首先需要导入必要的库和数据。数据包含多个变量,需要对变量进行归一化处理。然后将训练数据和测试数据拆分,并将数据转换成LSTM模型要求的输入格式。接着搭建LSTM模型,包括堆叠式LSTM层和输出层。训练模型时使用交叉熵损失函数和随机梯度下降优化器。每个epoch结束后计算模型在测试集上的准确率,并保存训练好的模型。 在预测过程中,需要对新数据进行同样的归一化处理,并将其转换成LSTM模型输入格式。使用训练好的模型对新数据进行预测,输出结果为各个分类的概率值。根据概率值选择最终的分类结果,并输出预测结果。 总之,多变量序列堆叠式LSTM模型可以用于多个变量的序列数据建模和多分类问题。使用Python编写代码实现时需注意数据预处理、LSTM模型的搭建和训练、预测过程中的数据处理和结果输出等细节。 ### 回答2: LSTM是循环神经网络(RNN)的一种重要变形,可以对时间序列数据进行建模,如自然语言处理和股票价格预测等。而多变量序列堆叠式LSTM模型是一种可以处理多个变量的神经网络模型,适用于多变量时间序列的建模问题。在多分类问题中,我们要使用LSTM预测模型来预测数据的类别,即将时间序列数据映射为离散的输出结果。 在Python中,可以使用TensorFlow或Keras等深度学习框架实现多变量序列堆叠式LSTM模型多分类问题。首先,需要准备训练数据和测试数据,以及对数据进行预处理和特征工程。接着,可以构建LSTM模型,选择适当的超参数和激活函数,如ReLU或sigmoid函数。在进行训练时,可以使用交叉熵等损失函数和Adam等优化器进行优化。 在实现过程中,需要注意LSTM模型的训练时间较长,需要耐心等待。同时,也要考虑数据的规模和质量对模型的影响,可以通过数据分析和可视化来优化模型效果。最后,需要对模型进行评估和验证,包括计算准确率、精度和召回率等指标,以及绘制ROC曲线和混淆矩阵等图表。 综上所述,LSTM模型是一种适用于多变量时间序列建模和多分类问题的有效方法。在Python中,可以通过深度学习框架实现多变量序列堆叠式LSTM模型多分类,提高模型效果和预测性能。 ### 回答3: LSTM(长短时记忆神经网络)是一种能够处理序列数据的神经网络,可以有效解决传统的RNN(循环神经网络)存在的梯度消失和梯度爆炸问题。在多变量序列的预测中,堆叠式LSTM能够将不同变量作为输入进行模型训练,从而提高预测的准确性。 Python中有很多深度学习的框架可以实现LSTM模型,如Tensorflow、Keras、PyTorch等。下面以Keras实现为例,具体步骤如下: 1.数据预处理,包括数据的归一化、分割训练集和测试集等。 2.构建LSTM模型,以多层堆叠式LSTM为例,代码如下: from keras.models import Sequential from keras.layers import LSTM, Dense model = Sequential() model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1], X_train.shape[2]))) model.add(LSTM(units=50, return_sequences=True)) model.add(LSTM(units=50)) model.add(Dense(units=3, activation='softmax')) 3.模型编译,包括选择损失函数、优化器和评价指标等。 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) 4.模型训练,可以通过fit()函数进行训练,代码如下: history = model.fit(X_train, y_train, epochs=100, batch_size=32, validation_split=0.2) 5.模型预测,使用predict()函数对测试集进行预测,代码如下: y_pred = model.predict(X_test) 6.模型评估,包括准确率、精确率、召回率等指标的计算。 以上是使用Keras实现多变量序列堆叠式LSTM模型多分类的基本步骤,可以根据自己的实际需要进行调整。除了堆叠式LSTM,还有循环堆叠式LSTM和双向LSTM等不同变种的结构可以选择,也可以通过调整模型参数和网络结构等进一步提高预测性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值