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)