Trainer.java 文件源码

java
阅读 31 收藏 0 点赞 0 评论 0

项目:codebuff 作者:
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();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号