标注的Trigger的位置是否与句子中的位置相同

来源:互联网 发布:券商研究报告网站 知乎 编辑:程序博客网 时间:2024/06/11 16:41
package AboutProtein;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class LocRight{public static void main(String args[]){try{File file = new File("F:\\generate jar\\2013_BioEvent");File[] files = file.listFiles();for(int fileId = 0; fileId < files.length; fileId++){String fileName = files[fileId].getName();FileReader frAll = new FileReader(files[fileId]);BufferedReader brAll = new BufferedReader(frAll);FileWriter fw = new FileWriter("F:\\generate jar\\2013BioEvent\\" + fileName);BufferedWriter bw = new BufferedWriter(fw);List<Protein> proAll = new ArrayList<Protein>();List<Protein> proPart = new ArrayList<Protein>();List<Trigger> triList = new ArrayList<Trigger>();//List<Trigger> problem = new ArrayList<Trigger>();List<String> event = new ArrayList<String>();String[] sent = new String[1000];List<String> sentList = new ArrayList<String>();if(fileName.equals("PMC-1134658-00-TIAB.txt")){System.out.println(fileName);}String str;while((str = brAll.readLine()) != null){if(str.length() == 0){for(int tId = 0; tId < triList.size(); tId++){Trigger tr = triList.get(tId);int start = tr.triggerStart;int end = tr.triggerEnd;String name = tr.triggerName;if(start == end){String word = sentList.get(start);if(!word.equals(name)){System.out.println(fileName);System.out.println(name + " " + word);}}else if(start < end){StringBuffer sb = new StringBuffer();for(int j = start; j <= end; j++){if(j == end){sb.append(sentList.get(j));}else{sb.append(sentList.get(j) + " ");}}String word = sb.toString();if(!word.equals(name)){System.out.println(fileName);System.out.println(name + " " + word);}}else {System.out.println("have a problem");}}proAll.clear();proPart.clear();triList.clear();sentList.clear();}else if(str.startsWith("#")){String[] proStr = str.split(" ");StringBuffer proB = new StringBuffer();    for(int prosId = 4; prosId < proStr.length; prosId++){if(prosId == proStr.length - 1){proB.append(proStr[prosId]);}else{proB.append(proStr[prosId] + " ");}}String proName = proB.toString();Protein prot = new Protein();prot.proId = proStr[1];prot.proStart = Integer.parseInt(proStr[2]);prot.proEnd = Integer.parseInt(proStr[3]);prot.proName = proName;proAll.add(prot);}else if(str.startsWith("$")){                        String[] proStr = str.split(" ");StringBuffer proB = new StringBuffer();    for(int prosId = 4; prosId < proStr.length; prosId++){if(prosId == proStr.length - 1){proB.append(proStr[prosId]);}else{proB.append(proStr[prosId] + " ");}}String proName = proB.toString();Protein prot = new Protein();prot.proId = proStr[1];prot.proStart = Integer.parseInt(proStr[2]);prot.proEnd = Integer.parseInt(proStr[3]);prot.proName = proName;proPart.add(prot);}else if(str.startsWith("@")){String[] trit = str.split(" ");StringBuffer triB = new StringBuffer();    for(int prosId = 5; prosId < trit.length; prosId++){if(prosId == trit.length - 1){triB.append(trit[prosId]);}else{triB.append(trit[prosId] + " ");}}String triName = triB.toString();Trigger trig = new Trigger();trig.triggerId = trit[1];trig.triggerType = trit[2];trig.triggerStart = Integer.parseInt(trit[3]);trig.triggerEnd = Integer.parseInt(trit[4]);trig.triggerName = triName;triList.add(trig);}else if(str.startsWith("%")){event.add(str);}else{sent = str.split(" ");for(int j = 0; j < sent.length; j++){sentList.add(sent[j]);}}}brAll.close();frAll.close();}}catch(IOException io){io.printStackTrace();}}}

0 0