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

📄 flatsegmentwriter.java

📁 dragontoolkit用于机器学习
💻 JAVA
字号:
package dragon.ml.seqmodel.data;

import dragon.util.FileUtil;
import java.io.*;

/**
 * <p>Storing segment information in a flat manner</p>
 * <p></p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: IST, Drexel University</p>
 * @author Davis Zhou
 * @version 1.0
 */

public class FlatSegmentWriter implements DataWriter{
    private PrintWriter out;
    private LabelConverter labelConverter;
    private String tagDelimit; // seperator between tokens and tag number
    public FlatSegmentWriter(String outFile, LabelConverter labelConverter) {
        this.labelConverter=labelConverter;
        out = FileUtil.getPrintWriter(outFile);
        tagDelimit="|";
    }

    public boolean write(Dataset dataset){
        dataset.startScan();
        while(dataset.hasNext())
            write(dataset.next());
        return true;
    }

    public boolean write(DataSequence dataSeq) {
        StringBuffer segment;
        int i, segStart, segEnd;

        try {
            segStart=0;
            while(segStart<dataSeq.length()){
                segEnd=dataSeq.getSegmentEnd(segStart);
                segment=new StringBuffer(dataSeq.getToken(segStart).getContent());
                for(i=segStart+1;i<=segEnd;i++)
                    segment.append(" "+dataSeq.getToken(i).getContent());
                segment.append(tagDelimit);
                segment.append(labelConverter.getExternalLabelString(dataSeq.getOriginalLabel(segStart)));
                out.println(segment.toString());
                segStart=segEnd+1;
            }
            out.println();
            return true;
        }
        catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    public void close(){
        out.close();
    }
}

⌨️ 快捷键说明

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