def __init__(self, config): ''' LSTM+Aspect ''' super(AspectSent, self).__init__() self.config = config input_dim = config.l_hidden_size kernel_num = config.l_hidden_size self.conv = nn.Conv1d(input_dim, kernel_num, 3, padding=1) #self.conv = nn.Conv1d(input_dim, kernel_num, 3, dilation=2, padding=2) self.bilstm = biLSTM(config) self.feat2tri = nn.Linear(kernel_num, 2+2) self.inter_crf = LinearChainCrf(2+2) self.feat2label = nn.Linear(kernel_num, 3) self.loss = nn.NLLLoss() self.tanh = nn.Tanh() self.dropout = nn.Dropout(config.dropout2) #Modified by Richard Sun self.cat_layer = SimpleCat(config) self.cat_layer.load_vector()
def __init__(self, config): ''' LSTM+Aspect ''' super(AspectSent, self).__init__() self.config = config self.input_dim = config.l_hidden_size # + config.pos_dim kernel_num = config.l_hidden_size # + config.pos_dim reduced_size = int(config.l_hidden_size / 4) self.conv = nn.Conv1d(self.input_dim, kernel_num, 3, padding=1) # not used self.bilstm = biLSTM(config) self.feat2tri = nn.Linear(reduced_size, 2 + 2) self.inter_crf = LinearChainCrf(2 + 2) self.h1linear = nn.Linear(self.input_dim, reduced_size) self.feat2tri2 = nn.Linear(reduced_size, 2 + 2) self.inter_crf2 = LinearChainCrf(2 + 2) self.h2linear = nn.Linear(self.input_dim, reduced_size) self.feat2tri3 = nn.Linear(reduced_size, 2 + 2) self.inter_crf3 = LinearChainCrf(2 + 2) self.h3linear = nn.Linear(self.input_dim, reduced_size) self.feat2tri4 = nn.Linear(reduced_size, 2 + 2) self.inter_crf4 = LinearChainCrf(2 + 2) self.h4linear = nn.Linear(self.input_dim, reduced_size) self.feat2label = nn.Linear(kernel_num, 3) self.feat2label2 = nn.Linear(self.input_dim * 4, 3) # gcn - not used for current model self.W = nn.ModuleList() self.W.append(nn.Linear(config.l_hidden_size, config.l_hidden_size)) self.W.append(nn.Linear(config.l_hidden_size, config.l_hidden_size)) self.W.append(nn.Linear(200, 100)) # cnn - not used for current model self.filters = [3] self.convs = nn.ModuleList([ nn.Conv1d(in_channels=1, out_channels=config.l_hidden_size, kernel_size=(k, config.l_hidden_size + 2), padding=1) for k in self.filters ]) self.loss = nn.NLLLoss() self.tanh = nn.Tanh() self.dropout = nn.Dropout(config.dropout2) self.dropout2 = nn.Dropout(config.dropout) self.cat_layer = SimpleCat(config) self.cat_layer.load_vector() self.sigmoid = nn.Sigmoid()
def __init__(self, config): super(AspectSent, self).__init__() self.config = config self.cat_layer = SimpleCat(config) self.lstm = MLSTM(config) self.feat2tri = nn.Linear(config.l_hidden_size, 2) self.inter_crf = LinearCRF(config) self.feat2label = nn.Linear(config.l_hidden_size, 3) self.cri = nn.CrossEntropyLoss() self.cat_layer.load_vector() if not config.if_update_embed: self.cat_layer.word_embed.weight.requires_grad = False