Exemplo n.º 1
0
  public void recognition(Result result) {
    List<Term> terms = result.getTerms();
    String end = null;
    String name;

    LinkedList<Term> mergeList = null;

    List<Term> list = new LinkedList<Term>();

    for (Term term : terms) {
      name = term.getName();
      if (end == null) {
        if ((end = ruleMap.get(name)) != null) {
          mergeList = new LinkedList<Term>();
          mergeList.add(term);
        } else {
          list.add(term);
        }
      } else {
        mergeList.add(term);
        if (end.equals(name)) {

          Term ft = mergeList.pollFirst();
          for (Term sub : mergeList) {
            ft.merage(sub);
          }
          ft.setNature(nature);
          list.add(ft);
          mergeList = null;
          end = null;
        }
      }
    }

    if (mergeList != null) {
      for (Term term : list) {
        list.add(term);
      }
    }

    result.setTerms(list);
  }