Example #1
0
    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()
Example #2
0
    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()
Example #3
0
    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