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

📄 umlscuilist.java

📁 dragontoolkit用于机器学习
💻 JAVA
字号:
package dragon.nlp.ontology.umls;

import dragon.nlp.compare.IndexComparator;
import dragon.util.SortedArray;
import dragon.util.FileUtil;
import java.util.*;
import java.io.*;


/**
 * <p>UMLS concept ID lists</p>
 * <p></p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: IST, Drexel University</p>
 * @author Davis Zhou
 * @version 1.0
 */

public class UmlsCUIList extends SortedArray {
	private static final long serialVersionUID = 1L;

	public static void main(String[] args){
        UmlsCUIList list;

        list=new UmlsCUIList("sir/cui.list");
        System.out.println(list.lookup("C1153267").toString());
    }

    public UmlsCUIList(){
    }

    public UmlsCUIList(String cuiFile) {
        loadCUIList(cuiFile,false);
    }

    public UmlsCUIList(String cuiFile, boolean loadConceptName) {
        loadCUIList(cuiFile,loadConceptName);
    }

    public UmlsCUI cuiAt(int index){
        return (UmlsCUI)get(index);
    }

    public ArrayList getListSortedByIndex(){
        ArrayList list;
        int i;

        list=new ArrayList(size());
        for(i=0;i<size();i++)
            list.add(get(i));
        Collections.sort(list, new IndexComparator());
        return list;
    }

    public boolean add(String cui, String[] stys){
        UmlsCUI cur;

        cur=new UmlsCUI(size(),cui,stys);
        return this.add(cur);
    }

    public UmlsCUI lookup(String cui){
        int pos;

        pos=binarySearch(new UmlsCUI(0,cui,null));
        if(pos<0)
            return null;
        else
            return (UmlsCUI)get(pos);
    }

    public UmlsCUI lookup(UmlsCUI cui){
        int pos;

        pos=binarySearch(cui);
        if(pos<0)
            return null;
        else
            return (UmlsCUI)get(pos);
    }

    public void saveTo(String filename) {
        PrintWriter bw;
        UmlsCUI cur;
        int i,j;

        try {
            System.out.println(new java.util.Date() + " Saving CUI List...");
            bw = FileUtil.getPrintWriter(filename);
            bw.write(size() + "\n");
            for (i = 0; i <size(); i++) {
                cur = (UmlsCUI) get(i);
                bw.write(cur.getIndex() + "\t" + cur.toString() + "\t" + cur.getSTY(0));
                for(j=1;j<cur.getSTYNum();j++)
                    bw.write("_"+cur.getSTY(j));
                if(cur.getName()!=null && cur.getName().length()>0)
                    bw.write("\t"+cur.getName());
                bw.write('\n');
                bw.flush();
            }
            bw.close();
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private boolean loadCUIList(String filename, boolean loadConceptName){
        BufferedReader br;
        String prevSTY, line;
        String[] arrField;
        String[] arrSTY, prevArrSTY;
        int i, total;
        ArrayList list;
        UmlsCUI cur;

        try{
            System.out.println(new java.util.Date() + " Loading CUI List...");
            br=FileUtil.getTextReader(filename);
            line=br.readLine();
            total=Integer.parseInt(line);
            list=new ArrayList(total);
            prevSTY="";
            prevArrSTY=null;

            for(i=0;i<total;i++){
                line=br.readLine();
                arrField=line.split("\t");
                if(prevSTY.equals(arrField[2]))
                    arrSTY=prevArrSTY;
                else
                {
                    arrSTY = arrField[2].split("_");
                    prevSTY = arrField[2];
                    prevArrSTY=arrSTY;
                }
                cur=new UmlsCUI(Integer.parseInt(arrField[0]),arrField[1],arrSTY);
                if(arrField.length>=4 && loadConceptName)
                    cur.setName(arrField[3]);
                list.add(cur);
            }
            br.close();
            Collections.sort(list);
            this.addAll(list);
            return true;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return false;
        }
    }


}

⌨️ 快捷键说明

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