code: public static List<Word> recognize(List<Word> words){
          int len = words.size();
          if(len < 2){
              return words;
          }
          if(LOGGER.isDebugEnabled()) {
              LOGGER.debug("人名识别：" + words);
          }
          List<List<Word>> select = new ArrayList<>();
          List<Word> result = new ArrayList<>();
          for(int i=0; i<len-1; i++){
              String word = words.get(i).getText();
              if(isSurname(word)){
                  result.addAll(recognizePersonName(words.subList(i, words.size())));
                  select.add(result);
                  result = new ArrayList<>(words.subList(0, i+1));
              }else{
                  result.add(new Word(word));
              }
          }
          if(select.isEmpty()){
              return words;
          }
          if(select.size()==1){
              return select.get(0);
          }
          return selectBest(select);
      }
docs: 对分词结果进行处理，识别人名
  @param words 待识别分词结果
  @return 识别后的分词结果