📄 umlscuilist.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 + -