Esempio n. 1
0
  public static void main(String[] args) throws IOException {
    Parser p = new Parser();
    p.parseAll();

    PrintWriter pw = new PrintWriter(new File(fname));
    AnswerPrinter ap = new AnswerPrinter(5, pw);

    int k = 0;
    ProgressTracker pt = new ProgressTracker(p.questions.size());
    Thread t = new Thread(pt);
    t.start();
    MLQuestionClassifier classify = new MLQuestionClassifier("train_5500.label.txt");
    WikiFilter wikiFilter = new WikiFilter();
    BaselineFilter baselineFilter = new BaselineFilter();
    for (int i : p.questions.keySet()) {
      Question q = p.questions.get(i);

      System.out.println("******CLASSIFYING QUESTION********");
      classify.classifyQuestion(q); // writes to q
      System.out.println("******RETRIEVING DOCUMENTS********");
      DocumentSet d =
          (new BaselineDocumentRetriever(p.raw_documents, p.raw_word_counts, p.raw_stem_counts))
              .getDocuments(q);
      System.out.println("******WIKI FILTER********");
      ArrayList<Answer> as = wikiFilter.filter(q, d);
      System.out.println("******NER FILTER********");
      ArrayList<Answer> nerFilter = baselineFilter.filter(as, q);
      System.out.println("******EXTRACTING ANSWERS********");
      ArrayList<Answer> finals = (new BaselineAnswerExtractor()).extractAnswers(q, nerFilter);

      if (finals.size() < 1) continue;
      System.out.println("Question: " + q.getQuestion() + "\nAnswer: " + finals.get(0).answer);

      k++;
      pt.updateCompletion(k);
      ap.printAnswers(q, finals);
      if (k > 2) break;
    }

    pw.flush();
    pw.close();
  }
Esempio n. 2
0
  /**
   * Apply all the given filters and rules to this
   *
   * @return
   * @throws UnableToInitializeEntityException
   * @throws UnableToListBaselinesException
   */
  public BaselineList apply()
      throws UnableToInitializeEntityException, UnableToListBaselinesException {

    /* Printing info for debug */
    logger.fine(" --- Get baselines information --- ");
    logger.fine("Component: " + component.getNormalizedName());
    logger.fine("Stream   : " + stream.getNormalizedName());
    logger.fine("Level    : " + level);
    logger.fine("Limit    : " + limit);
    logger.fine("Filters  : " + filters);
    logger.fine("Multisite: " + multisitePolling);
    logger.finest("Requiring: " + required);

    if (stream.hasPostedDelivery()) {
      if (multisitePolling) {
        this.addAll(stream.getPostedBaselines(component, level));
      }
    } else {
      this.addAll(_get());
    }

    logger.fine("Pre filter steps");
    for (BaselineFilter filter : filters) {
      filter.preFilter(this);
    }

    if (required.size() > 0) {
      for (Baseline b : required) {
        if (!this.contains(b)) {
          this.add(b);
        }
      }
    }

    /* Sort the baselines */
    if (sorter != null) {
      Collections.sort(this, sorter);
    }

    logger.fine(" --- Bare retrieval --- ");
    logger.fine("Baselines: " + this);

    /* Do the filtering */
    int pruned = 0;
    for (BaselineFilter filter : filters) {
      logger.fine("Filter: " + filter.getName());
      pruned += filter.filter(this);
      logger.fine("Baselines: " + this);
    }

    /* Load em? */
    if (load) {
      Iterator<Baseline> it = this.iterator();
      while (it.hasNext()) {
        Baseline baseline = it.next();
        try {
          baseline.load();
        } catch (Exception e) {
          logger.warning(
              "[ClearCase] Unable to load " + baseline.getNormalizedName() + ": " + e.getMessage());
          it.remove();
          pruned++;
          continue;
          /* Just continue */
        }
      }
    }

    if (pruned > 0) {
      logger.config("[ClearCase] Pruned " + pruned + " baselines");
    }

    /* Limit? 0 = unlimited */
    if (limit > 0 && this.size() > 0) {
      BaselineList n = new BaselineList();
      n.addAll(this.subList(0, limit));
      logger.fine("Final list of baselines: " + n);
      return n;
    } else {
      logger.fine("Final list of baselines: " + this);
      return this;
    }
  }
Esempio n. 3
0
  /**
   * Apply a single filter to the {@link BaselineList} after the list has been generated.
   *
   * @param filter
   * @return
   */
  public BaselineList applyFilter(BaselineFilter filter) {
    logger.fine("Filter: " + filter.getName());
    filter.filter(this);

    return this;
  }