使用Python进行序列到序列建模

我正在尝试制作一个使用序列到序列模型来回应用户输入的聊天机器人。问题在于输入给模型的序列几乎永远不会相同。输入序列是一个单词列表。我已经创建了一个词汇表,将这个序列中的每个单词映射到其独特的ID上,然而,输入仍然是可变的,不是固定的,所以我不能简单地使用序列到序列模型。我了解到可以使用编码器将单词序列映射到一个固定的向量表示,然后使用解码器将该向量映射回一个序列。

我的问题是如何将单词序列编码为一个固定的向量?有没有什么技术可以用于这个目的?


回答:

将单词序列映射到向量表示可以通过循环神经网络(RNN)来实现。你可以看看这个介绍:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

TensorFlow工具包中有一个教程,介绍了这种序列到序列映射架构,并提供了示例代码:https://www.tensorflow.org/versions/r0.11/tutorials/index.html

然而,在开始使用RNN之前,我建议先学习神经网络的基础知识:http://deeplearning.net/software/theano/tutorial/#basics

Bengio的深度学习书籍:http://www.deeplearningbook.org/涵盖了很多关于RNN的材料,不过其中涉及了相当多的数学内容。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注