public static String _toString(FeatureMetaData[] FEATURES, InputDocument doc, int[] features,
boolean showInfo) {
Vocabulary v = doc.parser.getVocabulary();
String[] ruleNames = doc.parser.getRuleNames();
StringBuilder buf = new StringBuilder();
for (int i=0; i<FEATURES.length; i++) {
if ( FEATURES[i].type.equals(UNUSED) ) continue;
if ( i>0 ) buf.append(" ");
if ( i==INDEX_CUR_TOKEN_TYPE ) {
buf.append("| "); // separate prev from current tokens
}
int displayWidth = FEATURES[i].type.displayWidth;
switch ( FEATURES[i].type ) {
case TOKEN :
String tokenName = v.getDisplayName(features[i]);
String abbrev = StringUtils.abbreviateMiddle(tokenName, "*", displayWidth);
String centered = StringUtils.center(abbrev, displayWidth);
buf.append(String.format("%"+displayWidth+"s", centered));
break;
case RULE :
if ( features[i]>=0 ) {
String ruleName = ruleNames[unrulealt(features[i])[0]];
int ruleAltNum = unrulealt(features[i])[1];
ruleName += ":"+ruleAltNum;
abbrev = StringUtils.abbreviateMiddle(ruleName, "*", displayWidth);
buf.append(String.format("%"+displayWidth+"s", abbrev));
}
else {
buf.append(Tool.sequence(displayWidth, " "));
}
break;
case INT :
case INFO_LINE:
case INFO_CHARPOS:
if ( showInfo ) {
if ( features[i]>=0 ) {
buf.append(String.format("%"+displayWidth+"s", StringUtils.center(String.valueOf(features[i]), displayWidth)));
}
else {
buf.append(Tool.sequence(displayWidth, " "));
}
}
break;
case INFO_FILE:
if ( showInfo ) {
String fname = new File(doc.fileName).getName();
fname = StringUtils.abbreviate(fname, displayWidth);
buf.append(String.format("%"+displayWidth+"s", fname));
}
break;
case BOOL :
if ( features[i]!=-1 ) {
buf.append(features[i] == 1 ? "true " : "false");
}
else {
buf.append(Tool.sequence(displayWidth, " "));
}
break;
default :
System.err.println("NO STRING FOR FEATURE TYPE: "+ FEATURES[i].type);
}
}
return buf.toString();
}
Trainer.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:codebuff
作者:
评论列表
文章目录