亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dependencydecoder2o.java

?? MSTParser是以最大生成樹理論為基礎的判別式依存句法分析器。它將一科依存樹的得分看作是 所有依存關系的得分的總和
?? JAVA
字號:
package mstparser;import java.io.*;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import gnu.trove.*;import java.text.DecimalFormat;public class DependencyDecoder2O extends DependencyDecoder {    public DependencyDecoder2O(DependencyPipe pipe) {	super(pipe);    }    private void rearrange(double[][][] probs,			   double[][][] probs_trips,			   double[][][] probs_sibs, double[][][][] nt_probs, int[] par, int[] labs) {			int[][] static_types = null;	if(pipe.labeled) {	    static_types = getTypes(nt_probs,par.length);	}	boolean[][] isChild = calcChilds(par);	boolean[][] isCross = null;			while(true) {	    int wh = -1;	    int nPar = -1;	    int nType = -1;	    double max = Double.NEGATIVE_INFINITY;	    int[][] aSibs = new int[par.length][par.length];	    int[][] bSibs = new int[par.length][par.length];	    for(int i = 1; i < par.length; i++) {		for(int j = 0; j < par.length; j++) {		    int oP = par[i];		    par[i] = j;		    int[] sibs = getSibs(i,par);		    aSibs[i][j] = sibs[0]; bSibs[i][j] = sibs[1];		    par[i] = oP;		}	    }	    for(int ch = 1; ch < par.length; ch++) {		// Calculate change of removing edge		int aSib = aSibs[ch][par[ch]]; int bSib = bSibs[ch][par[ch]];		boolean lDir = ch < par[ch];		double change = 0.0 - probs[lDir ? ch : par[ch]][lDir ? par[ch] : ch][lDir ? 1 : 0]		    - probs_trips[par[ch]][aSib][ch] - probs_sibs[aSib][ch][aSib == par[ch] ? 0 : 1]		    - (bSib != ch ? probs_trips[par[ch]][ch][bSib] + probs_sibs[ch][bSib][1] : 0.0)		    - (pipe.labeled ? (nt_probs[ch][labs[ch]][lDir ? 1 : 0][0] + nt_probs[par[ch]][labs[ch]][lDir ? 1 : 0][1]) : 0.0)		    + (bSib != ch ? probs_trips[par[ch]][aSib][bSib] + probs_sibs[aSib][bSib][aSib == par[ch] ? 0 : 1] : 0.0);		for(int pa = 0; pa < par.length; pa++) {		    if(ch == pa || pa == par[ch] || isChild[ch][pa]) continue;		    aSib = aSibs[ch][pa]; bSib = bSibs[ch][pa];		    boolean lDir1 = ch < pa;		    double change1 = 0.0 + probs[lDir1 ? ch : pa][lDir1 ? pa : ch][lDir1 ? 1 : 0]			+ probs_trips[pa][aSib][ch] + probs_sibs[aSib][ch][aSib == pa ? 0 : 1]			+ (bSib != ch ? probs_trips[pa][ch][bSib] + probs_sibs[ch][bSib][1] : 0.0)			+ (pipe.labeled ? (nt_probs[ch][static_types[pa][ch]][lDir1 ? 1 : 0][0] + nt_probs[pa][static_types[pa][ch]][lDir1 ? 1 : 0][1]) : 0.0)			- (bSib != ch ? probs_trips[pa][aSib][bSib] + probs_sibs[aSib][bSib][aSib == pa ? 0 : 1] : 0.0);		    if(max < change+change1) {			max = change+change1; wh = ch; nPar = pa; nType = pipe.labeled ? static_types[pa][ch] : 0;		    }		}	    }	    if(max <= 0.0)		break;	    par[wh] = nPar;	    labs[wh] = nType;	    isChild = calcChilds(par);	    //System.out.println(max + " " + wh + " " + nPar + " " + nType);	}    }	    // same as decode, except return K best    public Object[][] decodeNonProjective(DependencyInstance inst,					  FeatureVector[][][] fvs,					  double[][][] probs,					  FeatureVector[][][] fvs_trips,					  double[][][] probs_trips,					  FeatureVector[][][] fvs_sibs,					  double[][][] probs_sibs,					  FeatureVector[][][][] nt_fvs,					  double[][][][] nt_probs, int K) {	String[] toks = inst.sentence;	String[] pos = inst.pos;	Object[][] orig = decodeProjective(inst,fvs,probs,fvs_trips,probs_trips,fvs_sibs,probs_sibs,nt_fvs,nt_probs,1);	String[] o = ((String)orig[0][1]).split(" ");	int[] par = new int[o.length+1];	int[] labs = new int[o.length+1];	labs[0] = 0;	par[0] = -1;	for(int i = 1; i < par.length; i++) {	    par[i] = Integer.parseInt(o[i-1].split("\\|")[0]);	    labs[i] = pipe.labeled ? Integer.parseInt(o[i-1].split(":")[1]) : 0;	}	rearrange(probs,probs_trips,probs_sibs,nt_probs,par,labs);			String pars = "";	for(int i = 1; i < par.length; i++)	    pars += par[i]+"|"+i+":"+labs[i]+" ";	orig[0][0] = ((DependencyPipe2O)pipe).createFeatureVector(toks,pos,labs,par);	orig[0][1] = pars;			return orig;    }    private boolean[][] calcChilds(int[] par) {	boolean[][] isChild = new boolean[par.length][par.length];	for(int i = 1; i < par.length; i++) {	    int l = par[i];	    while(l != -1) {		isChild[l][i] = true;		l = par[l];	    }	}	return isChild;    }    private int[] getSibs(int ch, int[] par) {	int aSib = par[ch];	if(par[ch] > ch)	    for(int i = ch+1; i < par[ch]; i++) {		if(par[i] == par[ch]) {		    aSib = i; break;		}	    }	else	    for(int i = ch-1; i > par[ch]; i--) {		if(par[i] == par[ch]) {		    aSib = i; break;		}	    }	int bSib = ch;	if(par[ch] < ch)	    for(int i = ch+1; i < par.length; i++) {		if(par[i] == par[ch]) {		    bSib = i; break;		}	    }	else	    for(int i = ch-1; i >=0; i--) {		if(par[i] == par[ch]) {		    bSib = i; break;		}	    }	return new int[]{aSib,bSib};    }		    // same as decode, except return K best    public Object[][] decodeProjective(DependencyInstance inst,				       FeatureVector[][][] fvs,				       double[][][] probs,				       FeatureVector[][][] fvs_trips,				       double[][][] probs_trips,				       FeatureVector[][][] fvs_sibs,				       double[][][] probs_sibs,				       FeatureVector[][][][] nt_fvs,				       double[][][][] nt_probs, int K) {			String[] toks = inst.sentence;	String[] pos = inst.pos;			int[][] static_types = null;	if(pipe.labeled) {	    static_types = getTypes(nt_probs,toks.length);	}	KBestParseForest2O pf = new KBestParseForest2O(0,toks.length-1,inst,K);			for(int s = 0; s < toks.length; s++) {	    pf.add(s,-1,0,0.0,new FeatureVector(-1,-1.0,null));	    pf.add(s,-1,1,0.0,new FeatureVector(-1,-1.0,null));	}			for(int j = 1; j < toks.length; j++) {	    for(int s = 0; s < toks.length && s+j < toks.length; s++) {		int t = s+j;						FeatureVector prodFV_st = fvs[s][t][0];		FeatureVector prodFV_ts = fvs[s][t][1];						double prodProb_st = probs[s][t][0];		double prodProb_ts = probs[s][t][1];						int type1 = pipe.labeled ? static_types[s][t] : 0;		int type2 = pipe.labeled ? static_types[t][s] : 0;				FeatureVector nt_fv_s_01 = nt_fvs[s][type1][0][1];		FeatureVector nt_fv_s_10 = nt_fvs[s][type2][1][0];		FeatureVector nt_fv_t_00 = nt_fvs[t][type1][0][0];		FeatureVector nt_fv_t_11 = nt_fvs[t][type2][1][1];		double nt_prob_s_01 = nt_probs[s][type1][0][1];		double nt_prob_s_10 = nt_probs[s][type2][1][0];		double nt_prob_t_00 = nt_probs[t][type1][0][0];		double nt_prob_t_11 = nt_probs[t][type2][1][1];		double prodProb = 0.0;		if(true) {		    // case when r == s		    ParseForestItem[] b1 = pf.getItems(s,s,0,0);		    ParseForestItem[] c1 = pf.getItems(s+1,t,1,0);		    if(!(b1 == null || c1 == null)) {									FeatureVector prodFV_sst = pf.cat(fvs_trips[s][s][t],fvs_sibs[s][t][0]);			double prodProb_sst = probs_trips[s][s][t]+probs_sibs[s][t][0];									int[][] pairs = pf.getKBestPairs(b1,c1);									for(int k = 0; k < pairs.length; k++) {										    if(pairs[k][0] == -1 || pairs[k][1] == -1)				break;										    int comp1 = pairs[k][0]; int comp2 = pairs[k][1];										    double bc = b1[comp1].prob+c1[comp2].prob;										    // create sibling pair			    // create parent pair: s->t and s->(start,t)			    bc += prodProb_st + prodProb_sst;			    			    FeatureVector fv_fin = pf.cat(prodFV_st,prodFV_sst);			    if(pipe.labeled) {				bc += nt_prob_s_01+nt_prob_t_00;				fv_fin = FeatureVector.cat(nt_fv_s_01,FeatureVector.cat(nt_fv_t_00,fv_fin));			    }			    pf.add(s,s,t,type1,0,1,bc,fv_fin,b1[comp1],c1[comp2]);			}		    }							    // case when r == t		    b1 = pf.getItems(s,t-1,0,0);		    c1 = pf.getItems(t,t,1,0);		    if(!(b1 == null || c1 == null)) {									FeatureVector prodFV_stt = pf.cat(fvs_trips[t][t][s],fvs_sibs[t][s][0]);			double prodProb_stt = probs_trips[t][t][s]+probs_sibs[t][s][0];			int[][] pairs = pf.getKBestPairs(b1,c1);									for(int k = 0; k < pairs.length; k++) {										    if(pairs[k][0] == -1 || pairs[k][1] == -1)				break;										    int comp1 = pairs[k][0]; int comp2 = pairs[k][1];										    double bc = b1[comp1].prob+c1[comp2].prob;										    // create sibling pair			    // create parent pair: s->t and s->(start,t)			    bc += prodProb_ts + prodProb_stt;			    			    FeatureVector fv_fin = pf.cat(prodFV_ts,prodFV_stt);			    if(pipe.labeled) {				bc += nt_prob_t_11+nt_prob_s_10;				fv_fin = FeatureVector.cat(nt_fv_t_11,FeatureVector.cat(nt_fv_s_10,fv_fin));			    }			    pf.add(s,t,t,type2,1,1,bc,fv_fin,b1[comp1],c1[comp2]);			}		    }		}						for(int r = s; r < t; r++) {		    // First case - create sibling		    ParseForestItem[] b1 = pf.getItems(s,r,0,0);		    ParseForestItem[] c1 = pf.getItems(r+1,t,1,0);							    if(!(b1 == null || c1 == null)) {								int[][] pairs = pf.getKBestPairs(b1,c1);									for(int k = 0; k < pairs.length; k++) {										    if(pairs[k][0] == -1 || pairs[k][1] == -1)				break;										    int comp1 = pairs[k][0]; int comp2 = pairs[k][1];										    double bc = b1[comp1].prob+c1[comp2].prob;										    pf.add(s,r,t,-1,0,2,bc,new FeatureVector(-1,-1.0,null),b1[comp1],c1[comp2]);			    pf.add(s,r,t,-1,1,2,bc,new FeatureVector(-1,-1.0,null),b1[comp1],c1[comp2]);			}		    }		}						for(int r = s+1; r < t; r++) {		    // s -> (r,t)		    ParseForestItem[] b1 = pf.getItems(s,r,0,1);		    ParseForestItem[] c1 = pf.getItems(r,t,0,2);							    if(!(b1 == null || c1 == null)) {								int[][] pairs = pf.getKBestPairs(b1,c1);									for(int k = 0; k < pairs.length; k++) {										    if(pairs[k][0] == -1 || pairs[k][1] == -1)				break;										    int comp1 = pairs[k][0]; int comp2 = pairs[k][1];										    double bc = b1[comp1].prob+c1[comp2].prob;			    bc += prodProb_st + probs_trips[s][r][t] + probs_sibs[r][t][1];			    FeatureVector fv_fin = pf.cat(prodFV_st,pf.cat(fvs_trips[s][r][t],fvs_sibs[r][t][1]));			    if(pipe.labeled) {				bc += nt_prob_s_01+nt_prob_t_00;				fv_fin = FeatureVector.cat(nt_fv_s_01,FeatureVector.cat(nt_fv_t_00,fv_fin));			    }			    pf.add(s,r,t,type1,0,1,bc,fv_fin,b1[comp1],c1[comp2]);			}		    }							    // t -> (r,s)		    b1 = pf.getItems(s,r,1,2);		    c1 = pf.getItems(r,t,1,1);							    if(!(b1 == null || c1 == null)) {								int[][] pairs = pf.getKBestPairs(b1,c1);									for(int k = 0; k < pairs.length; k++) {										    if(pairs[k][0] == -1 || pairs[k][1] == -1)				break;										    int comp1 = pairs[k][0]; int comp2 = pairs[k][1];										    double bc = b1[comp1].prob+c1[comp2].prob;			    bc += prodProb_ts + probs_trips[t][r][s] + probs_sibs[r][s][1];			    			    FeatureVector fv_fin = pf.cat(prodFV_ts,pf.cat(fvs_trips[t][r][s],fvs_sibs[r][s][1]));			    if(pipe.labeled) {				bc += nt_prob_t_11+nt_prob_s_10;				fv_fin = FeatureVector.cat(nt_fv_t_11,FeatureVector.cat(nt_fv_s_10,fv_fin));			    }			    pf.add(s,r,t,type2,1,1,bc,fv_fin,b1[comp1],c1[comp2]);			}		    }							}		// Finish off pieces incom + comp -> comp		for(int r = s; r <= t; r++) {		    if(r != s) {			ParseForestItem[] b1 = pf.getItems(s,r,0,1);			ParseForestItem[] c1 = pf.getItems(r,t,0,0);			if(!(b1 == null || c1 == null)) {			    //continue;									    int[][] pairs = pf.getKBestPairs(b1,c1);			    for(int k = 0; k < pairs.length; k++) {												if(pairs[k][0] == -1 || pairs[k][1] == -1)				    break;												int comp1 = pairs[k][0]; int comp2 = pairs[k][1];												double bc = b1[comp1].prob+c1[comp2].prob;												if(!pf.add(s,r,t,-1,0,0,bc,new FeatureVector(-1,-1.0,null),b1[comp1],c1[comp2]))				    break;			    }			}		    }							    if(r != t) {			ParseForestItem[] b1 = pf.getItems(s,r,1,0);			ParseForestItem[] c1 = pf.getItems(r,t,1,1);			if(!(b1 == null || c1 == null)) {			    //continue;			    int[][] pairs = pf.getKBestPairs(b1,c1);			    for(int k = 0; k < pairs.length; k++) {												if(pairs[k][0] == -1 || pairs[k][1] == -1)				    break;												int comp1 = pairs[k][0]; int comp2 = pairs[k][1];												double bc = b1[comp1].prob+c1[comp2].prob;												if(!pf.add(s,r,t,-1,1,0,bc,new FeatureVector(-1,-1.0,null),b1[comp1],c1[comp2]))				    break;			    }			}		    }		}					    }	}	return pf.getBestParses();    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一道本成人在线| 欧美一卡在线观看| 成人精品国产福利| 国产一区二区看久久| 国产综合成人久久大片91| 免播放器亚洲一区| 日本免费新一区视频| 午夜久久久久久久久| 五月天丁香久久| 日韩中文字幕一区二区三区| 视频一区中文字幕| 奇米影视一区二区三区小说| 日韩中文字幕亚洲一区二区va在线| 亚洲高清免费在线| 奇米影视7777精品一区二区| 久久综合狠狠综合久久综合88| 欧美日韩mp4| 欧美日韩亚州综合| 欧美丰满少妇xxxxx高潮对白| 欧美午夜精品一区二区蜜桃| 欧美片网站yy| 日韩欧美国产1| 26uuu国产一区二区三区| 久久嫩草精品久久久久| 久久久久久影视| 国产精品久久久久久久裸模| 18成人在线观看| 亚洲高清免费观看 | 欧美一区二区三区公司| 欧美日本在线观看| 欧美一级日韩免费不卡| 久久久亚洲精华液精华液精华液| 中文字幕 久热精品 视频在线| 亚洲综合免费观看高清在线观看| 中文字幕av一区二区三区高 | 婷婷综合另类小说色区| 色综合久久久久| 欧美区一区二区三区| 337p日本欧洲亚洲大胆精品| 国产精品久久久久精k8| 午夜在线电影亚洲一区| 国产一区二区三区免费在线观看| 北条麻妃国产九九精品视频| 欧美日韩综合色| 久久久www成人免费毛片麻豆| 国产精品久久久久久久岛一牛影视| 一卡二卡三卡日韩欧美| 麻豆国产精品官网| 成人免费看视频| 欧美网站一区二区| 久久久亚洲欧洲日产国码αv| 中文字幕中文乱码欧美一区二区| 亚洲第一综合色| 国产久卡久卡久卡久卡视频精品| 日本大香伊一区二区三区| 日韩三级精品电影久久久| 国产精品久久久久久亚洲毛片| 午夜精品一区二区三区三上悠亚| 国产伦精品一区二区三区免费| 色偷偷久久一区二区三区| 精品国免费一区二区三区| 亚洲黄色性网站| 国产酒店精品激情| 欧美精品在线视频| 国产精品天天看| 日本视频一区二区三区| 99re热这里只有精品视频| 欧美一级免费大片| 亚洲男人电影天堂| 国产麻豆一精品一av一免费| 欧美无乱码久久久免费午夜一区 | 精品日韩成人av| 依依成人精品视频| 国产高清一区日本| 欧美一级黄色录像| 亚洲中国最大av网站| 懂色中文一区二区在线播放| 欧美一级高清片| 亚洲成人综合在线| 91美女在线观看| 久久久久久久久岛国免费| 美女视频一区在线观看| 欧美在线免费视屏| 国产精品久久久久精k8 | 日韩免费在线观看| 亚洲大片免费看| 91国产福利在线| 亚洲欧美另类久久久精品| 国产sm精品调教视频网站| 精品入口麻豆88视频| 青娱乐精品视频| 欧美美女一区二区| 亚洲国产一区视频| 91福利区一区二区三区| 成人免费在线播放视频| 成人激情动漫在线观看| 国产欧美一区二区精品性色超碰| 精品在线一区二区三区| 日韩欧美一二三区| 麻豆精品在线视频| 日韩欧美精品在线| 久久91精品国产91久久小草| 欧美一区二区视频在线观看2020 | 国产a视频精品免费观看| 久久综合久久综合久久| 久久精品免费观看| 日韩免费看的电影| 狠狠色综合播放一区二区| 欧美精品一区男女天堂| 国内外成人在线| 2022国产精品视频| 国产精品一区不卡| 亚洲国产精品v| 波多野结衣视频一区| 国产精品国产三级国产aⅴ无密码| av动漫一区二区| 亚洲欧美一区二区三区国产精品 | 26uuu欧美| 国产精品资源在线看| 日本一区二区电影| 91污在线观看| 亚洲一区二区美女| 在线播放亚洲一区| 免费美女久久99| 久久综合狠狠综合久久激情| 高清不卡在线观看| 最新热久久免费视频| 欧美日韩一区三区四区| 日本aⅴ免费视频一区二区三区 | 中文字幕人成不卡一区| 一本久久综合亚洲鲁鲁五月天| 亚洲一区二区在线观看视频| 69av一区二区三区| 韩国一区二区在线观看| 欧美激情在线一区二区三区| 91视频观看免费| 亚洲国产裸拍裸体视频在线观看乱了| 欧美少妇xxx| 激情av综合网| 亚洲人一二三区| 欧美理论电影在线| 国产呦萝稀缺另类资源| 亚洲丝袜美腿综合| 91精品欧美久久久久久动漫 | 2021中文字幕一区亚洲| caoporen国产精品视频| 午夜a成v人精品| 久久综合丝袜日本网| 色网站国产精品| 久久国产精品99久久久久久老狼 | 亚洲已满18点击进入久久| 日韩欧美国产综合在线一区二区三区| 国产盗摄精品一区二区三区在线 | 国产精品国产a| 在线不卡中文字幕播放| 成人久久18免费网站麻豆 | 亚洲午夜久久久| 欧美精品一区二区三区在线播放| 91丝袜国产在线播放| 免费观看30秒视频久久| 成人免费在线播放视频| 精品国产乱码久久久久久图片| 91色在线porny| 狠狠色丁香婷综合久久| 亚洲国产日韩在线一区模特| 国产亚洲一区二区三区四区| 欧美猛男超大videosgay| 国产福利精品导航| 日韩激情一区二区| 亚洲人成亚洲人成在线观看图片 | 久久久久久久久久久99999| 欧美丝袜自拍制服另类| 成人av小说网| 麻豆精品一区二区综合av| 一区二区三区电影在线播| 久久久久国产精品人| 欧美日韩国产综合一区二区三区| 高清国产一区二区| 精品午夜久久福利影院| 亚洲大型综合色站| 亚洲美女屁股眼交| 中文字幕av资源一区| 精品国产一区二区在线观看| 欧美日韩一区二区电影| 色哟哟一区二区三区| 成人性生交大片| 韩国毛片一区二区三区| 日本不卡免费在线视频| 午夜激情综合网| 亚洲美女少妇撒尿| 18涩涩午夜精品.www| 中文字幕乱码日本亚洲一区二区| 精品福利在线导航| 欧美一区午夜精品| 欧美精品在线观看播放| 欧美无砖砖区免费| 在线亚洲+欧美+日本专区| 91丨九色丨黑人外教| 成人不卡免费av| 国产成人h网站|