首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中的序列序列建模

python中的序列序列建模
EN

Stack Overflow用户
提问于 2016-11-11 01:19:00
回答 2查看 947关注 0票数 4

我正在尝试制作一个聊天机器人,它使用序列序列模型来响应用户的输入。问题是,给模型的输入序列几乎永远不会相同。输入序列是一个单词列表。我已经创建了一个词汇表,将这个序列中的每个单词映射到它自己的唯一id,但是,输入仍然是可变的,而且不是固定的,所以我不能仅仅使用序列来进行序列模型。我知道,可以使用编码器将单词序列映射到固定的向量表示,然后将该向量映射到序列。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-12 12:00:50

将一个词序列映射到一个向量表示可以用递归神经网络来完成。您可以看看下面的介绍: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的材料,但是它涉及到相当多的数学。

票数 1
EN

Stack Overflow用户

发布于 2018-03-26 10:15:04

在将数据传递给序列建模器以使其固定长度之前,您应该将数据填充到固定长度。

代码语言:javascript
运行
复制
from keras.preprocessing.sequence import pad_sequence
X = pad_sequences(X, maxlen=100, dtype='float32', padding='pre', truncating='pre', value=0.0)

因此,如果你有一个数据点m(样本数),seq_len(可变序列长度),f(特征数).这将使用静态seq_len为100来填充数据。它将截断较大的序列和垫较小的与零在开始。还有其他更复杂的技术来标准化序列长度,但这是一个简单的技术。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40539758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档