2015-02-11 22 views
0

我想从clueweb09语料库中读取术语,并根据创建的数据集here找到其位置以检查该术语是否为实体。他们声称他们根据以下方式计算位置: **“用于计算注释偏移量的零(0)位置是HTTP头*的开头,这是WARC文档头后的第一个字节。 我通过调用term.getBytes().length函数计算每个术语的长度并求和所有位置以找出实体的位置。不幸的是,我的位置比报告的位置少了大约400个字节。我通过根据以下代码读取每个warcfile文件来计算位置。在ClueWeb09语料库中查找术语的位置

ArrayList<Integer> pos = new ArrayList<Integer>(); 
    int position=-1; 
    String text; 
    try{ 
    FileReader fileReader = new FileReader("05"); 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 

    while(true){ 
     String line= bufferedReader.readLine(); 
     if(line==null) 
      break; 
     else 
     { 
      int index=line.indexOf(word); 
      if(index==-1) 
       position=position+line.getBytes().length; 
      else{ 
        int poss= position +index; 
        pos.add(poss); 
        position=position+line.getBytes().length; 
      } 
     } 
    } 
    bufferedReader.close(); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 

您能告诉我什么是问题吗?

回答

0

要查找Clueweb数据集术语在字节中的位置,我使用了this code,它们实现了此数据集的注释版本herelemur.cw.ann.DetectEncoding类根据其位置返回与clueweb数据集不匹配的注释。我改变这个类和lemur.cw.ann.Matcher类,根据字节偏移来计算Clueweb术语的位置。