def gen_context_features(self, eobj): sentid = eobj.sentid tokenid = eobj.head N = 2 wveclist = np.array([]) poslst = [] maxtokens = self.numtokens[sentid - 1] for i in range(tokenid - N, tokenid)+range(tokenid + 1, tokenid + 1 + N): if i < 1 or i > maxtokens: posi = get_pos_feat('') wveclist = np.concatenate((wveclist,get_word2vec_feat(self.w2vmodel,'')),axis=0) else: posi = get_pos_feat(self.wordfeatures[(sentid, i)][2]) wveclist = np.concatenate((wveclist,get_word2vec_feat(self.w2vmodel,self.wordfeatures[(sentid, i)][1])),axis=0) poslst += posi return np.concatenate((np.array(poslst),wveclist),axis=0)
def gen_context_features(self, eobj): sentid = eobj.sentid tokenid = eobj.head N = 2 wveclist = np.array([]) poslst = [] maxtokens = self.numtokens[sentid - 1] for i in range(tokenid - N, tokenid) + range(tokenid + 1, tokenid + 1 + N): if i < 1 or i > maxtokens: posi = get_pos_feat('') wveclist = np.concatenate( (wveclist, get_word2vec_feat(self.w2vmodel, '')), axis=0) else: posi = get_pos_feat(self.wordfeatures[(sentid, i)][2]) wveclist = np.concatenate( (wveclist, get_word2vec_feat(self.w2vmodel, self.wordfeatures[(sentid, i)][1])), axis=0) poslst += posi return np.concatenate((np.array(poslst), wveclist), axis=0)
def gen_dependency_features(self,eobj): depgraph = self.dependgraphs[eobj.sentid][0] deplabels = self.dependgraphs[eobj.sentid][1] hwid = eobj.head deprellabel = '' dephw = '' deppos = '' for x in depgraph.GetNI(hwid).GetInEdges(): deprellabel = deplabels[(x,hwid)] if x != 0: #In case x depends on root, then word features are not defined dephw = self.wordfeatures[(eobj.sentid,x)][1] deppos = self.wordfeatures[(eobj.sentid,x)][2] break #return(deprellabel,dephw,deppos) f1_deplabel = np.array(get_dependency_rellabel(deprellabel)) f2_dephw = get_word2vec_feat(self.w2vmodel,dephw) f3_deppos = np.array(get_pos_feat(deppos)) return np.concatenate((f1_deplabel, f2_dephw, f3_deppos), axis = 0)
def gen_dependency_features(self, eobj): depgraph = self.dependgraphs[eobj.sentid][0] deplabels = self.dependgraphs[eobj.sentid][1] hwid = eobj.head deprellabel = '' dephw = '' deppos = '' for x in depgraph.GetNI(hwid).GetInEdges(): deprellabel = deplabels[(x, hwid)] if x != 0: #In case x depends on root, then word features are not defined dephw = self.wordfeatures[(eobj.sentid, x)][1] deppos = self.wordfeatures[(eobj.sentid, x)][2] break #return(deprellabel,dephw,deppos) f1_deplabel = np.array(get_dependency_rellabel(deprellabel)) f2_dephw = get_word2vec_feat(self.w2vmodel, dephw) f3_deppos = np.array(get_pos_feat(deppos)) return np.concatenate((f1_deplabel, f2_dephw, f3_deppos), axis=0)
def gen_lexical_features(self, eobj): (word,lemma,pos) = self.wordfeatures[(eobj.sentid,eobj.head)] f1 = get_word2vec_feat(self.w2vmodel,word) f2 = get_word2vec_feat(self.w2vmodel,lemma) f3 = np.array([self.parsetrees[eobj.sentid].get_depth(eobj.head)]) return np.concatenate((f1,f2,f3), axis=0)
def gen_lexical_features(self, eobj): (word, lemma, pos) = self.wordfeatures[(eobj.sentid, eobj.head)] f1 = get_word2vec_feat(self.w2vmodel, word) f2 = get_word2vec_feat(self.w2vmodel, lemma) f3 = np.array([self.parsetrees[eobj.sentid].get_depth(eobj.head)]) return np.concatenate((f1, f2, f3), axis=0)