我试图用keras做实体关系提取任务。
我的模型看起来像keras的示例代码 imdb_bidirectional_lstm.py
model = Sequential()
model.add(Embedding(max_features, 128, input_length=maxlen))
model.add(Bidirectional(LSTM(64)))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
然而,与imdb分类任务不同,关系与句子中的特定实体相关,并且在一个句子中可能存在多个关系。所以我想在BiLSTM层中得到特定实体字的输出一次,然后将它们连接起来。
例如,有一句话“在巴格达,摄影师死了 美国坦克向巴勒斯坦酒店开火。“这句话有几个关系。所以如果我想得到”摄影师“和”坦克“之间的关系,我需要在biLSTM层获得”摄影师“和”坦克“的输出那么我应该怎样做才能在biLSTM层中获得“cameraman”和“tank”的输出?我已经尝试了图层的输出属性,但似乎不可行。听起来可能令人困惑。简而言之,如何获取lstm层中特定时间步的输出?
任何建议将不胜感激。非常感谢你!
答案 0 :(得分:0)
return_sequences = True参数可以获得所有时间步的输出。然后,您需要编写自定义图层以提取所需的某些步骤的输出。 AFAIK没有直接的方法来实现这一目标。编写这样的自定义图层应该不会太难。