⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dependencyevaluator.java

📁 MSTParser是以最大生成树理论为基础的判别式依存句法分析器。它将一科依存树的得分看作是 所有依存关系的得分的总和
💻 JAVA
字号:
package mstparser;import java.io.*;public class DependencyEvaluator {	    public static void evaluate(String act_file, String pred_file) throws IOException {	boolean labeled = false;	BufferedReader act_in = new BufferedReader(new FileReader(act_file));	act_in.readLine(); act_in.readLine(); act_in.readLine();	String l = act_in.readLine();	if(l.trim().length() > 0) labeled = true;	int total = 0; int corr = 0; int corrL = 0;	int numsent = 0; int corrsent = 0; int corrsentL = 0;	int root_act = 0; int root_guess = 0; int root_corr = 0;	act_in = new BufferedReader(new FileReader(act_file));	BufferedReader pred_in = new BufferedReader(new FileReader(pred_file));	act_in.readLine(); String[] pos = act_in.readLine().split("\t");	pred_in.readLine(); pred_in.readLine();	String act_lab = labeled ? act_in.readLine().trim() : "" ; String act_dep = act_in.readLine().trim();	String pred_lab = labeled ? pred_in.readLine().trim() : ""; String pred_dep = pred_in.readLine().trim();	act_in.readLine(); pred_in.readLine();	while(act_dep != null) {	    String[] act_labs = null;	    String[] pred_labs = null;	    if(labeled) {		act_labs = act_lab.split("\t");		pred_labs = pred_lab.split("\t");	    }	    String[] act_deps = act_dep.split("\t");	    String[] pred_deps = pred_dep.split("\t");	    if(act_deps.length != pred_deps.length) System.out.println("Lengths do not match");	    boolean whole = true;	    boolean wholeL = true;	    for(int i = 0; i < act_deps.length; i++) {		if(pred_deps[i].equals(act_deps[i])) {		    corr++;		    if(labeled) {			if(act_labs[i].equals(pred_labs[i])) corrL++;			else wholeL = false;		    }		}		else { whole = false; wholeL = false; }	    }	    total += act_deps.length;	    if(whole) corrsent++;	    if(wholeL) corrsentL++;	    numsent++;							    act_in.readLine(); try {pos = act_in.readLine().split("\t");} catch(Exception e){}	    pred_in.readLine(); pred_in.readLine();	    act_lab = labeled ? act_in.readLine() : ""; act_dep = act_in.readLine();	    pred_lab = labeled ? pred_in.readLine() : ""; pred_dep = pred_in.readLine();	    act_in.readLine(); pred_in.readLine();	}	System.out.println("Tokens: " + total);	System.out.println("Correct: " + corr);	System.out.println("Unlabeled Accuracy: " + ((double)corr/total));	System.out.println("Unlabeled Complete Correct: " + ((double)corrsent/numsent));	if(labeled) {	    System.out.println("Labeled Accuracy: " + ((double)corrL/total));	    System.out.println("Labeled Complete Correct: " + ((double)corrsentL/numsent));	}		    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -