span-parser

span parser

span parser 源码剖析

最近在学习基于转移的句法分析,学习span parser,着重学习pycnn的使用。

LSTM类:
初始化一个LSTM类,仅仅初始化参数,并没有具体实现相关的具体算法。
State类:
包含一个LSTM单元,并且实现了网络的计算过程。

struct data: ?
label data: ?

PharseTree类:
_parse函数,解析一句话Tree
将line -> tree
Parser.py
gold_actions(tree): 得到tree的gold actions

parser的一些参数设置

word dim: 50 tag dim: 20
lstm units: 200
hidden units: 200
batch: 10
dropout: 0.5
unknow param: 0.8375?
alpha: 1.0

pycnn的使用细节

  • model.add_parameters(…)
  • parameters.load_array(np.random.uniform(-0.01, 0.01, self.W_i.shape()))
  • pycnn.logistic(self.W_i * x + self.b_i)
  • g = pycnn.tanh(self.W_c * x + self.b_c)
  • c = pycnn.cwise_multiply(f, self.c) + pycnn.cwise_multiply(i, g)
  • pycnn.AdadeltaTrainer(self.model, lam=0, eps=1e-7, rho=0.99)
  • model.add_lookup_parameters(‘word-embed’, (word_count, word_dims))
  • model[‘word-embed’].init_from_array(np.random.uniform(-0.01, 0.01, self.model[‘word-embed’].shape()),)
  • activation = pycnn.rectify
  • W1_struct = pycnn.parameter(self.model[‘struct-hidden-W’])

  • wordvec = pycnn.lookup(self.model[‘word-embed’], w)

  • vec = pycnn.dropout(vec, self.droprate)
<% if (theme.google_analytics){ %> <% } %>