machine-learning - 如何将树编码为神经网络的输入?

标签 machine-learning nlp neural-network stanford-nlp deep-learning

我有一棵树,特别是一棵解析树,其节点处有标签,叶子处有字符串/单词。我想将这棵树作为输入传递到神经网络中,同时保留其结构。

目前的方法 假设我们有一些单词 w1,w2.....wn 的字典 将解析树中出现的单词编码为 n 维二进制向量,每当解析树中的单词为 wi 时,第 i 个位置就会出现 1

现在树结构怎么样?对于出现在叶子上的 n 个单词,大约有 2^n 个可能的父标签,因此我们不能设置输入单词的最大长度,然后只是暴力枚举所有树。

现在我能想到的就是通过选择叶子的直接父代来近似树。这可以用二进制向量来表示,其维度也等于不同类型标签的数量——我想约为 100。 我的输入是二维的。第一个只是单词的向量表示,第二个是其父标签的向量表示

除非这会丢失句子中的很多结构。有没有标准/更好的方法来解决这个问题?

最佳答案

您需要一个递归神经网络。请参阅此存储库以获取示例实现:https://github.com/erickrf/treernn

递归(非循环)神经网络的原理如图所示。

它学习每片叶子的表示,然后通过父级向上,最终构建整个结构的表示。 enter image description here

关于machine-learning - 如何将树编码为神经网络的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26022866/

相关文章:

python - 模型无法在 tensorflow 中学习

machine-learning - 在进行k-means算法时,如何识别球树中所有包含点都在一个簇中的内部节点?

java - 使用斯坦福 OpenIE 进行子句分割

c++ - GIZA++ 输出缺少 *.ti.final 和 *actual.ti.final 文件

python - TPOT:使用 TPOTRegressor 时出现酸洗错误

image-processing - 用于分类的词袋 - 特征与像素

node.js - Dialog api v2 - 获取应用程序默认凭据时出现意外错误 : Could not load the default credentials

machine-learning - 如何将 .txt 转换为 .idx3-ubyte 格式?

artificial-intelligence - FANN中位失败的目的是什么?

neural-network - 分类器神经网络的最后一层是否同时使用 sigmoid 和 softmax?